温馨提示×

ubuntu docker如何做集群

小樊
53
2026-09-07 10:09:36
栏目: 智能运维

在 Ubuntu 上使用 Docker 做“集群”,通常有三种常见路线,取决于你的需求:


一、Docker 官方方案:Docker Swarm(最简单)

适合:中小规模、快速搭建、原生支持

1. 准备环境

  • 多台 Ubuntu(如 3 台)
  • 每台都安装 Docker
sudo apt update
sudo apt install docker.io -y
sudo systemctl enable --now docker

2. 初始化 Swarm(管理节点)

docker swarm init --advertise-addr <管理节点IP>

输出中会包含 worker 加入命令。

3. 工作节点加入

在 worker 节点执行:

docker swarm join --token <token> <管理节点IP>:2377

4. 部署服务

docker service create --replicas 3 --name web -p 80:80 nginx

✅ 优点:简单、原生、自带负载均衡
❌ 缺点:功能不如 Kubernetes 强


二、生产级方案:Kubernetes(最常用)

适合:生产环境、大规模、复杂应用

方式一:kubeadm(官方)

# 所有节点
sudo apt install docker.io -y
sudo apt install kubeadm kubelet kubectl -y

# 主节点
sudo kubeadm init --pod-network-cidr=10.244.0.0/16

# 配置 kubectl
mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config

# 安装网络插件(如 Flannel)
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

# worker 节点加入
kubeadm join <master-ip>:6443 --token xxx --discovery-token-ca-cert-hash xxx

方式二:轻量方案(单机/测试)

  • k3s(非常推荐)
curl -sfL https://get.k3s.io | sh

一行命令即可跑起 Kubernetes。


三、编排工具方案(开发/测试)

Docker Compose + 多机(不推荐生产)

  • Compose 本身不支持跨主机
  • 可配合:
    • Docker Context
    • 或 SSH 手动部署

四、方案对比

方案 难度 规模 生产推荐
Docker Swarm ⭐ 中 ✅
Kubernetes ⭐⭐⭐ 大 ✅✅✅
k3s ⭐⭐ 小中 ✅✅
Compose ⭐ 单机 ❌

五、常见坑提醒

  • 防火墙要放行端口(2377 / 6443 / 8472 等)
  • 时间同步(NTP)
  • 主机名不能重复
  • 生产环境不建议用 root 跑 Docker

如果你愿意,可以告诉我:

  • 是 学习 / 测试 / 生产
  • 几台机器
  • 是否已有 Kubernetes 经验

我可以给你一步一步可直接复制执行的命令。

0 踩