使用docker的方式启动keepalived做高可用
镜像地址:docker pull zhangnan30/keepalived-amd64:2.0.20
启动脚本:
docker run \ --name keepalived \ --restart=always \ --cap-add=NET_ADMIN --cap-add=NET_RAW --net=host \ -v /etc/localtime:/etc/localtime \ -v /root/keepalived/keepalived.conf/:/usr/local/etc/keepalived/keepalived.conf \ -v /root/keepalived/check_haproxy:/root/keepalived/check_haproxy \ -d zhangnan30/keepalived-amd64:2.0.20
示例配置文件:
global_defs { script_user root root } vrrp_script chk_haproxy { script "/root/keepalived/check_haproxy" interval 2 timeout 3 weight -2 fall 3 } vrrp_instance VI_HAPROXY { state MASTER interface ens3 virtual_router_id 201 priority 60 advert_int 1 track_interface { ens3 } authentication { auth_type PASS auth_pass haproxy } virtual_ipaddress { 172.22.15.251 } track_script { chk_haproxy } unicast_src_ip 172.22.15.212 unicast_peer { 172.22.15.211 } }
示例健康检查:
#!/bin/bash ports=22 arr=$(echo $ports|tr "," "\n") for x in $arr; do nc -vz localhost $x if [ $? -eq 0 ]; then echo "succeed" else kill all keepalived exit 1 fi done