keepalived部署
1、下载地址
源码包下载地址:
https://www.keepalived.org/download.html
2、安装
rpm安装:
yum -y install keepalived
源码安装:
下载编译工具
yum -y install gcc-c++
编译安装,注意,需要先安装openssl
./configure \
--prefix=/keepalived/keepalived/
make && make install
3、配置keepalived的配置文件
ip | 角色 |
192.168.88.132 | master |
192.168.88.133 | backup |
vim /keepalived/keepalived/etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-f /keepalived/keepalived/etc/keepalived/keepalived.conf -D -S 0" 换成keepalived.conf文件的地址
配置Keepalived文件
global_defs { router_id 1 ##服务器标识号,主备不一致即可 } ##健康检查脚本 vrrp_script chk_nginx { script "/keepalived/keepalived/scripts/nginx_status.sh" ##状态检查脚本 interval 2 ##检查频率,秒,注意,这个值的设置要大于脚本的执行时间,否则会报错 weight -5 ##服务宕掉时,将设置的本机权重(priority的值)减5 fall 3 ##失败3次 } vrrp_instance VI_1 { state MASTER ##指定主备节点,MASTER为主节点,BACKUP为备节点 interface eth0 ##网卡名称 virtual_router_id 51 ##虚拟路由编号,主备一致 priority 100 ##优先级,MASTER节点设置要高于BACKUP节点 authentication { ##密钥认证,指定 auth_type PASS auth_pass 123456 } ##组播配置 mcast_src_ip 192.168.88.132 ##组播的心跳源IP,即本机IP ##单播配置 unicast_src_ip 192.168.88.132 ##单播的心跳源IP,即本机IP unicast_peer { 192.168.88.133 ##单播的目标地址,即BACKUP节点地址,BACKUP有多台就配置多个地址 } ##vip配置 virtual_ipaddress { 192.168.88.101/24 ##vip } track_script { chk_nginx ##引用脚本,名称要与vrrp_script中设定的名称对上 } }
单播:在同一网络范围内,只对指定的节点发送信息,进行通信的方式
组播:在同一网络范围内,对所有的符合一定条件的节点发送信息,进行通信的方式
针对同一集群节点的通信,设置为组播,如果同一网络范围内,有多个keepalived集群的话,可能会导致各集群内的通信混乱。有些云服务器的vip,也会设置禁止组播,只能使用单播
因此,为了防止集群的通信混乱,最好设置为单播
健康状态检查脚本,以nginx为例
#!/bin/bash nginxnum=`ps -ef | grep 'nginx: master' | grep -v 'grep' | wc -l` if [ "$nginxnum" -eq 0 ];then service keepalived stop fi
复制配置文件到备节点:192.168.88.133,进行如下修改:
router_id 2
state BACKUP
priority 99
mcast_src_ip 192.168.88.133
启动keepalived
systemctl start keepalived
查看vip已存在:
4、测试keepalived
关闭192.168.88.132的nginx
发现Vip已经切换到192.168.88.133上
访问:http://192.168.88.101:18080
开启192.168.88.132的nginx及keepalived