虚拟机上简单的keepalive环境配置实验

377次阅读
3 条评论

共计 2200 个字符,预计需要花费 6 分钟才能阅读完成。

首先准备两台虚拟机

构架方式为
其中没有后端使用两台虚拟机安装 nginx 和 keepalived

master {nginx + keepalived 192.168.110.171} – [vrrp192.168.1.138] – backup{{nginx + keepalived 192.168.110.172}

需要关闭防火墙 selinux
两台服务器安装
yum install -y nginx
yum install -y keepalived

keeplves_master 服务器上的 keepalived.conf 配置
global_defs {
router_id keeplves_master #hostname
}
vrrp_script chk_nginx {
script “/etc/keepalived/check.sh” #检测 nginx 的脚本
interval 5 #每 2 秒检测一次
weight -20 #如果某一个 nginx 宕机 则权重减 20
}
vrrp_instance VI_1 {
state MASTER #状态 MASTER BACKUP
interface ens33 #绑定的网卡
virtual_router_id 51 #虚拟路由的 ID 号, 两个节点设置必须一样
mcast_src_ip 192.168.110.171 #本机的 IP
priority 90
advert_int 1
# 设置验证信息,两个节点必须一致
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟 IP,两个节点设置必须一样。
virtual_ipaddress {
192.168.1.138
}
# nginx 存活状态检测脚本
track_script {
chk_nginx
}
}

keeplves_backup 服务器上的 keepalived.conf 配置
global_defs {
router_id keeplves_backup #hostname
}
vrrp_script chk_nginx {
script “/etc/keepalived/check.sh” #检测 nginx 的脚本
interval 2 #每 2 秒检测一次
weight -20 #如果某一个 nginx 宕机 则权重减 20
}
vrrp_instance VI_1 {
state BACKUP #状态 MASTER BACKUP
interface ens33 #绑定的网卡
virtual_router_id 51
mcast_src_ip 192.168.1.172
priority 40
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.138
}

track_script {
chk_nginx
}
}

nginx 状态检测脚本简单写法
#!/bin/bash
A=`ps -C nginx –no-header | wc -l`
if [$A -eq 0];then
systemctl stop nginx #尝试重新启动 nginx
sleep 2 #睡眠 2 秒
if [`ps -C nginx –no-header | wc -l` -eq 0];then
systemctl stop keepalived
#killall keepalived #启动失败,将 keepalived 服务杀死。将 vip 漂移到其它备份节点
fi
fi

遇到的问题
报错信息
May 22 14:43:49 keeplves_master Keepalived_vrrp[42456]: Sending gratuitous ARP on ens33 for 192.168.1.138
May 22 14:43:49 keeplves_master Keepalived_vrrp[42456]: Sending gratuitous ARP on ens33 for 192.168.1.138
May 22 14:43:49 keeplves_master Keepalived_vrrp[42456]: Sending gratuitous ARP on ens33 for 192.168.1.138
☉interval4:每 4s 检测一次,这里要大于监控脚本执行的时间,监控脚本会执行超时,☉keepalived 会发送 SIGTERM 信号结束监控脚本的执行。

启动 nginx keepalived

查看虚拟 IP 是否绑定 192.168.1.138 如果有这个 IP 则绑定成功
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:cc:7a:77 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.171/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33
valid_lft 84406sec preferred_lft 84406sec
inet 192.168.1.138/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::279c:6292:4838:c6f6/64 scope link noprefixroute
valid_lft forever preferred_lft forever

停掉 nginx 测试
看是否会把虚拟 IP 主动切换到 backup 上
如果切换到了证明成功
实验结束
不适用于生产环境

正文完
 0
yx
版权声明:本站原创文章,由 yx 于2018-05-22发表,共计2200字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(3 条评论)
验证码
2018-05-22 15:34:19 回复

WordPress不知道两行空格证明解决!感觉臃肿,有什么其他Python博客系统推荐么?

     中国湖南省长沙市电信
kkk
2020-07-21 16:26:31 回复

你这个虚拟ip是怎么设置的

     中国浙江省杭州市电信
    dada
    2020-09-29 18:49:30 回复

    ip addr 就可以看啊

         中国湖南省长沙市电信