二进制搭建k8s集群——部署多master
#部署keepalived服务
yum install keepalived -y
#修改keepalived配置文件
vim /etc/keepalived/
! Configuration File for keepalived
global_defs {
# 接收邮件地址
notification_email {
acassen@
failover@
sysadmin@
}
# 邮件发送地址
notification_email_from @
smtp_server 127.0.0.1 #修改为本机回环地址
smtp_connect_timeout 30
router_id LB01 #lb01节点的为LB01,lb02节点的为LB02
}
#添加一个周期性执行的脚本
vrrp_script check_nginx {
script "/etc/nginx/check_nginx.sh" #指定检查nginx存活的脚本路径
}
vrrp_instance VI_1 {
state MASTER #lb01节点的为 MASTER,lb02节点的为 BACKUP
interface ens33 #指定网卡名称 ens33
virtual_router_id 51 #指定vrid,两个节点要一致
priority 100 #设置优先级,lb01节点的为 100,lb02节点的为 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.44.100/24 #指定 VIP,需要与之前证书中认证的地址一致
}
track_script { #追踪脚本
check_nginx #指定vrrp_script配置的脚本
}
}
#创建nginx状态检查脚本
vim /etc/nginx/check_nginx.sh
#!/bin/bash
#egrep -cv "grep|$$" 用于过滤掉包含grep 或者 $$ 表示的当前Shell进程ID
count=$(ps -ef | grep nginx | egrep -cv "grep|$$")
if [ "$count" -eq 0 ];then
systemctl stop keepalived
fi
chmod +x /etc/nginx/check_nginx.sh #为脚本增加执行权限
#启动keepalived服务(一定要先启动了nginx服务,再启动keepalived服务)
systemctl start keepalived
systemctl enable keepalived
ip addr #查看主节点的VIP是否生成
#---------------- 3、关闭主节点的nginx服务,模拟故障,测试keepalived-----------------------
#关闭主节点lb01的Nginx服务,模拟宕机,观察VIP是否漂移到备节点
systemctl stop nginx
ip addr
systemctl status keepalived #此时keepalived被脚本杀掉了
#备节点查看是否生成了VIP
ip addr #此时VIP漂移到备节点lb02
#恢复主节点
systemctl start nginx #先启动nginx
systemctl start keepalived #再启动keepalived
ip addr