1. 安装keepalived软件包
yum install -y keepalived psmisc
2.keepalived master节点配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| [root@kubernets-master ~]# cp /etc/keepalived/keepalived.conf{,.bak} [root@kubernets-master ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { root@localhost } notification_email_from root@localhost smtp_server 127.0.0.1 smtp_connect_timeout 3 router_id LVS_HAPROXY } vrrp_script chk_managerdown { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weigth -10 fall 2 rise 1 } vrrp_script chk_haproxy { script "killall -0 haproxy" interval 1 weight -5 fall 2 rise 1 } vrrp_instance VI_1 { state MASTER interface eno16777728 virtual_router_id 21 priority 100 advert_int 1 garp_master_delay 1 authentication { auth_type PASS auth_pass TTYCPass } virtual_ipaddress { 172.16.111.111 } track_script { chk_managerdown chk_haproxy } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault" }
|
3.配置notify通知切换脚本
[root@kubernets-master ~]# vim /etc/keepalived/notify.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #/bin/bash vip=172.16.111.111 contact='root@localhost' notify(){ mailsubject="`hostname` to be $1: $vip floating" mainbody="`date '+%F %H:%M:%S'`:vrrp transition,`hostname` changed to be $1" echo $mailbody | mail -s "$mailsubject" $contact } case "$1" in master) notify master #/etc/rc.d/init.d/haproxy start /usr/bin/systemctl start haproxy exit 0 ;; backup) notify backup #/etc/rc.d/init.d/haproxy stop /usr/bin/systemctl stop haproxy exit 0 ;; fault) notify fault /usr/bin/systemctl stop haproxy exit 0 ;; *) echo 'Usage: `basename $0` {master|backup|fault}' exit 1 ;; esac
|
4.拷贝master节点配置文件、脚本到backup节点
scp /etc/keepalived/{keepalived.conf,notify.sh} root@172.16.111.100:/etc/keepalived/
5.keepalived backup节点配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| [root@docker-etcd-01 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { lianjie@sharelinux.com root@localhost } notification_email_from root@localhost smtp_server 127.0.0.1 smtp_connect_timeout 3 router_id LVS_HAPROXY } vrrp_script chk_managerdown { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weigth -10 fall 2 rise 1 } vrrp_script chk_haproxy { script "killall -0 haproxy" interval 1 weight -5 fall 2 rise 1 } vrrp_instance VI_1 { state BACKUP interface eno16777728 virtual_router_id 21 priority 99 advert_int 1 garp_master_delay 1 authentication { auth_type PASS auth_pass TTYCPass } virtual_ipaddress { 172.16.111.111 } track_script { chk_managerdown chk_haproxy } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault" }
|
6.防火墙允许组播规则
iptables -I INPUT 5 -s 172.16.111.0/24 -d 224.0.0.18 -j ACCEPT
iptables -nvL –line
7.安装、配置postfix服务
yum install -y postfix mail
systemctl start postfix
echo ‘Test Body.’ | mail -s ‘Test Sub’ root@localhost
8.开启keepalived服务
systemctl start keepalived
9.验证
10.参考