Ubuntu Docker集群怎么搭建
导读:Ubuntu Docker 集群搭建指南 一、方案选型与准备 方案对比 Docker Swarm:Docker 原生编排,命令与 Docker CLI 一致,适合快速上线与中小规模集群。 Kubernetes:生态完备、可扩展性强,适合...
Ubuntu Docker 集群搭建指南
一、方案选型与准备
- 方案对比
- Docker Swarm:Docker 原生编排,命令与 Docker CLI 一致,适合快速上线与中小规模集群。
- Kubernetes:生态完备、可扩展性强,适合复杂有状态应用与大规模生产环境。
- 节点规划
- 建议至少 3 台 Ubuntu 服务器(可 1 管理节点 + 2 工作节点,或 3 管理节点实现管理高可用)。
- 各节点间网络互通,开放端口:2377/TCP(集群管理)、7946/TCP 与 UDP(节点通信)、4789/UDP(覆盖网络 VXLAN)。
- 基础环境
- 每台机器安装 Docker Engine 19.03+,设置唯一 hostname,并配置 /etc/hosts 或 DNS 解析。
- 时间同步(如 chrony/ntp),关闭不必要的防火墙规则(仅放通上述端口)。
二、快速搭建 Docker Swarm 集群
- 步骤 1 初始化管理节点
- 在管理节点执行(将 <
MANAGER_IP>
替换为管理节点内网 IP):
- docker swarm init --advertise-addr < MANAGER_IP>
- 初始化成功后,控制台会输出加入命令,包含 worker 与 manager 的 token。
- 在管理节点执行(将 <
MANAGER_IP>
替换为管理节点内网 IP):
- 步骤 2 加入工作节点与管理节点
- 工作节点加入:
- docker swarm join --token < WORKER_TOKEN> < MANAGER_IP> :2377
- 添加更多管理节点(实现管理高可用):
- 在管理节点获取命令:docker swarm join-token manager
- 在目标管理节点执行输出的 join 命令。
- 工作节点加入:
- 步骤 3 验证集群状态
- 查看节点:docker node ls(应看到各节点状态为 Ready,管理节点有 Leader/Reachable 标识)
- 查看 Swarm 信息:docker info | grep -i swarm
- 步骤 4 部署示例服务(Nginx)
- 创建覆盖网络:docker network create --driver overlay --attachable my-overlay
- 部署服务:
- docker service create --name nginx --replicas 3 --publish published=8080,target=80 --network my-overlay nginx:latest
- 验证:
- docker service ls、docker service ps nginx
- 浏览器访问任一节点 IP 的 8080 端口,应看到 Nginx 欢迎页(Swarm 内置路由网格对外暴露端口)。
三、高可用与服务运维要点
- 服务高可用
- 自动重启:docker service update --restart-condition any --restart-delay 5s --restart-max-attempts 3
- 滚动更新:docker service update --update-parallelism 2 --update-delay 10s --image nginx:1.25
- 健康检查:docker service update --health-cmd “curl -f http://localhost || exit 1” --health-interval 5s --health-retries 3 --health-timeout 2s
- 节点维护
- 排空节点(维护前):docker node update --availability drain
- 恢复节点:docker node update --availability active
- 配置与备份
- 定期备份 Swarm 的 Raft 数据(在管理节点执行),确保管理节点故障时可恢复集群元数据。
四、安全加固与网络注意
- 加固建议
- 启用 TLS 加密管理通道,限制管理端口 2377 的访问来源,仅允许内网或跳板机访问。
- 定期轮换证书,最小化节点间与对外暴露面。
- 网络要点
- 确保 7946/TCP/UDP 与 4789/UDP 未被防火墙拦截,否则节点发现与覆盖网络将异常。
- 对外暴露建议使用 Swarm 的路由网格(如 8080:80),由集群自动负载到后端任务。
五、进阶 Kubernetes 方案简述
- 若需更强的生态与调度能力,可在 Ubuntu 上用 kubeadm 部署 Kubernetes(示例):
- 初始化主节点:sudo kubeadm init --apiserver-advertise-address=< MASTER_IP>
- 加入工作节点:sudo kubeadm join < MASTER_IP> : --token --discovery-token-ca-cert-hash sha256:
- 部署应用可用 Deployment/Service 资源对象进行扩缩与暴露。
- 高可用与组件
- 多 Master 场景常配合 HAProxy + Keepalived 提供 VIP,结合 kubelet/kubeadm 完成控制面高可用与证书管理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Docker集群怎么搭建
本文地址: https://pptw.com/jishu/775568.html
