1. 程式人生 > 其它 >keepalived三節點部署文件

keepalived三節點部署文件

部署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