使用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

  

 

posted @ 2023-04-20 15:21  ZANAN  阅读(109)  评论(0编辑  收藏  举报