keepalived high
##keepalived 官网
#keepalived 中文文档
#keepalived 下载
#
#逻辑图
https://s2.运维网.com/wyfs02/M00/92/44/wKioL1j9wh6SzBC3AAASzy8Cet4206.png
主机名keeoalived角色ip地址Storage_1Master 192.168.174.137
Vip:192.168.174.100
Storage_2Backup192.168.174.138 #均关闭防火墙和selinux
下载软件 编译安装
# wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
#tar -xf keepalived-1.3.5.tar.gz
#cd keepalived-1.3.5
# ./configure --prefix=/usr/local/keepalived
# make && make install# wget
#同理
或者yum 安装 (系统镜像内有)
# yum install -y keepalived# yum install -y keepalived
本文采用的是yum安装
nginx安装
#前面的文章已经安装过很多次了,这里就不再重复
#开启nginx
# /usr/local/nginx/sbin/nginxhttps://s2.运维网.com/wyfs02/M02/92/4A/wKioL1j997qBtNZLAABqSqBFuZI269.png
# /usr/local/nginx/sbin/nginxhttps://s5.运维网.com/wyfs02/M01/92/4A/wKioL1j999GhXM00AABsJclAVeM277.png
#修改keepalived配置文件(Master节点)
# vim /etc/keepalived/keepalived.conf
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
test@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.01
smtp_connect_timeout 30
router_id Stroage_1
}
vrrp_script chk_nginx { #脚本
script "/opt/chk_nginx_status.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 51
priority 150 #优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.174.100/24
}
track_script {
chk_nginx
}
}
编写检查nginx状态的脚本
# vim /opt/chk_nginx_status.sh
# cat /opt/chk_nginx_status.sh
#!/bin/bash
if [ `netstat -lntup | grep "nginx: master" |wc -l` -eq 0 ]
then
systemctl stop keepalived #如果nginx挂掉,就关闭keepalived
fi
# chmod +x /opt/chk_nginx_status.sh
#修改keepalived配置文件(Backup节点)
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
test@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.01
smtp_connect_timeout 30
router_id Stroage_2 #在同一个局域网内唯一
}
vrrp_instance VI_1 { #实例名称
state BACKUP #角色
interface eno16777736 #接口
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.174.100/24 #vip
}
}
#开启服务
# systemctl start keepalived.service# systemctl start keepalived.service
#测试
https://s5.运维网.com/wyfs02/M01/92/4B/wKiom1j9-FqD8osoAABn6-xo-ew823.png
#查看ip(vip出现在master上)
# ip addr show eno16777736
2: eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:87:00:97 brd ff:ff:ff:ff:ff:ff
inet 192.168.174.137/24 brd 192.168.174.255 scope global dynamic eno16777736
valid_lft 1684sec preferred_lft 1684sec
inet 192.168.174.100/24 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe87:97/64 scope link
valid_lft forever preferred_lft forever
## ip addr show eno16777736
2: eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:78:f4:d9 brd ff:ff:ff:ff:ff:ff
inet 192.168.174.138/24 brd 192.168.174.255 scope global dynamic eno16777736
valid_lft 1595sec preferred_lft 1595sec
inet6 fe80::20c:29ff:fe78:f4d9/64 scope link
valid_lft forever preferred_lft forever
#
#测试
#关闭主上的nginx
# /usr/local/nginx/sbin/nginx -s quit
#主上的vip不见了
# ip addr show eno16777736
2: eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:87:00:97 brd ff:ff:ff:ff:ff:ff
inet 192.168.174.137/24 brd 192.168.174.255 scope global dynamic eno16777736
valid_lft 1326sec preferred_lft 1326sec
inet6 fe80::20c:29ff:fe87:97/64 scope link
valid_lft forever preferred_lft forever
#备上出现了vip
# ip addr show eno16777736
2: eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:78:f4:d9 brd ff:ff:ff:ff:ff:ff
inet 192.168.174.138/24 brd 192.168.174.255 scope global dynamic eno16777736
valid_lft 1397sec preferred_lft 1397sec
inet 192.168.174.100/24 scope global secondary eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe78:f4d9/64 scope link
valid_lft forever preferred_lft forever
#访问测试
https://s4.运维网.com/wyfs02/M02/92/4B/wKiom1j9-K3gMHaiAABvAjBncaw817.png
#vip成功漂移
页:
[1]