keepalived三節點部署文件
阿新 • • 發佈:2022-03-30
部署keepalived負載均衡
下載並解壓keepalived(所有節點操作):
wget -P /opt/tempData http://www.keepalived.org/software/keepalived-2.2.4.tar.gz
tar -zxf /opt/tempData/keepalived-2.2.4.tar.gz -C /opt/tempData
編譯(所有節點操作):
cd /opt/tempData/keepalived-2.2.4 && ./configure --prefix=/opt/keepalived && make && make install cp /opt/keepalived/sbin/keepalived /usr/local/bin/ cp /opt/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
systemd管理keepalived(所有節點操作):
cat > /usr/lib/systemd/system/keepalived.service << EOF [Unit] Description=LVS and VRRP High Availability Monitor After=syslog.target network-online.target [Service] Type=forking PIDFile=/var/run/keepalived.pid KillMode=process EnvironmentFile=-/etc/sysconfig/keepalived ExecStart=/usr/local/bin/keepalived \$KEEPALIVED_OPTIONS ExecReload=/bin/kill -HUP \$MAINPID [Install] WantedBy=multi-user.target EOF
配置keepalived主節點(k8s-master1節點操作):
mkdir /etc/keepalived cat > /etc/keepalived/keepalived.conf << EOF global_defs { notification_email { [email protected] [email protected] [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id SERVICE script_user root enable_script_security } vrrp_script check_nginx { script "/etc/keepalived/check_nginx.sh" } vrrp_instance VI_1 { state MASTER # 主 interface eth0 # 修改為實際網絡卡名 virtual_router_id 20 # VRRP 路由 ID例項,每個例項是唯一的 priority 100 # 優先順序,備伺服器設定比100小,且均不相同 advert_int 1 # 指定VRRP 心跳包通告間隔時間,預設1秒 authentication { auth_type PASS auth_pass 1111 } # 虛擬IP virtual_ipaddress { 192.168.0.7/16 # vip及子網 } track_script { check_nginx } } EOF cat > /etc/keepalived/check_nginx.sh << EOF #!/bin/bash count=\$(ps -ef |grep nginx | grep sbin | egrep -cv "grep|\$\$") if [ "\$count" -eq 0 ];then systemctl stop keepalived fi EOF chmod a+x /etc/keepalived/check_nginx.sh
配置keepalived從節點(k8s-master2節點操作):
mkdir /etc/keepalived
cat > /etc/keepalived/keepalived.conf << EOF
global_defs {
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id SERVICE
script_user root
enable_script_security
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
}
vrrp_instance VI_1 {
state BACKUP # 備
interface eth0 # 修改為實際網絡卡名
virtual_router_id 20 # VRRP 路由 ID例項,每個例項是唯一的
priority 80 # 優先順序
advert_int 1 # 指定VRRP 心跳包通告間隔時間,預設1秒
authentication {
auth_type PASS
auth_pass 1111
}
# 虛擬IP
virtual_ipaddress {
192.168.0.7/16 # vip及子網
}
track_script {
check_nginx
}
}
EOF
cat > /etc/keepalived/check_nginx.sh << EOF
#!/bin/bash
count=\$(ps -ef |grep nginx | grep sbin | egrep -cv "grep|\$\$")
if [ "\$count" -eq 0 ];then
systemctl stop keepalived
fi
EOF
chmod a+x /etc/keepalived/check_nginx.sh
配置keepalived從節點(k8s-master3節點操作):
mkdir /etc/keepalived
cat > /etc/keepalived/keepalived.conf << EOF
global_defs {
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id SERVICE
script_user root
enable_script_security
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
}
vrrp_instance VI_1 {
state BACKUP # 備
interface eth0 # 修改為實際網絡卡名
virtual_router_id 20 # VRRP 路由 ID例項,每個例項是唯一的
priority 70 # 優先順序
advert_int 1 # 指定VRRP 心跳包通告間隔時間,預設1秒
authentication {
auth_type PASS
auth_pass 1111
}
# 虛擬IP
virtual_ipaddress {
192.168.0.7/16 # vip及子網
}
track_script {
check_nginx
}
}
EOF
cat > /etc/keepalived/check_nginx.sh << EOF
#!/bin/bash
count=\$(ps -ef |grep nginx | grep sbin | egrep -cv "grep|\$\$")
if [ "\$count" -eq 0 ];then
systemctl stop keepalived
fi
EOF
chmod a+x /etc/keepalived/check_nginx.sh
啟動keepalived主節點(k8s-master1)、keepalived從節點(k8s-master2,k8s-master3):
systemctl daemon-reload
systemctl enable keepalived
systemctl restart keepalived