在工作中需要使用 keepalived 的场景其实还是很多的,因此提供一种基于 docker compose 的方式一键部署 keepalived 方式。目标是,无脑直接使用,3 分钟内完成搭建。
对于依赖的 docker image 我会尽量的跟随官方同步的进行更新,因此有需要的,特别是运维的同事可以收藏一下。
dockerhub: https://hub.docker.com/r/galtjay/keepalived
github: https://github.com/galtjay/keepalived-docker-compose
项目中包含两个文件夹 backup-compose 及 master-compose,分别用于在 master 节点和 backup 节点执行。
简单进行配置即可一键启动:
- 修改 chk_svc.sh 中的端口,修改成你需要守护的端口,默认为 443。同时请 chmod +x chk_svc.sh, 赋予脚本执行权限。
- 请修改 keepalived.conf.master 及 keepalived.conf.backup 中网卡名称,默认为 ens33,修改 interface,将网卡名称和你本机的业务网卡匹配。
- 按需修改 keepalived.conf.master 及 keepalived.conf.backup 中 auth_pass 密码。
修改完成之后,直接 docker-compose up - d 即可。
如遇到错误,docker logs -f 就可以看到输出的日志。
假如不想使用 compose 运行,直接 docker run,可参考:docker run -d --name ka --network host -v /home/keepalived/keepalived.conf:/etc/keepalived/keepalived.conf --cap-add=NET_ADMIN --cap-add=NET_BROADCAST --cap-add=NET_RAW galtjay/keepalived:latest
其中网络权限的部分,可以直接使用 docker run --privileged,进行替换。假如想要使用 kubernetes 运行 keepalived 容器,参考如下:apiVersion: v1
kind: Pod
metadata:
name: xxx
spec:
containers:
- name: keepalived
image: galtjay/keepalived:latest
securityContext:
capabilities:
add: ["NET_ADMIN", "NET_BROADCAST", "NET_RAW"]
其中 securityContext 部分,可以直接使用 privileged 替换。
正文完
发表至: 开源脚本
2024-02-26