温馨提示×

centos docker如何集群

小樊
43
2026-10-26 07:39:57
栏目: 智能运维

在 CentOS 上使用 Docker 集群,通常有两种主流方案:


一、使用 Docker Swarm(官方原生集群,最简单)

1️⃣ 环境准备(所有节点)

# 关闭防火墙(或放行端口)
systemctl stop firewalld
systemctl disable firewalld

# 安装 Docker
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker

2️⃣ 初始化 Swarm(Manager 节点)

docker swarm init --advertise-addr <manager_ip>

输出中会有:

docker swarm join --token xxx <manager_ip>:2377

3️⃣ 加入 Worker 节点

在 worker 节点执行:

docker swarm join --token <token> <manager_ip>:2377

4️⃣ 查看集群节点

docker node ls

5️⃣ 部署服务

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

✅ 适合:快速搭建、中小规模集群


二、使用 Kubernetes(生产级集群,更强大)

方案选择

  • kubeadm(官方推荐)
  • 或使用 k3s(轻量,适合 CentOS 服务器)

方式 A:kubeadm(标准 K8s)

1️⃣ 所有节点

# 关闭 swap
swapoff -a
sed -i '/swap/d' /etc/fstab

# 安装 docker
# (同上)

# 安装 kubeadm
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
EOF

yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet

2️⃣ Master 初始化

kubeadm init --apiserver-advertise-address=<master_ip>

3️⃣ Worker 加入

kubeadm join <master_ip>:6443 --token xxx --discovery-token-ca-cert-hash xxx

4️⃣ 配置 kubectl

mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config

✅ 适合:生产环境、大规模集群


方式 B:k3s(极简 K8s)

# Master
curl -sfL https://get.k3s.io | sh -

# Worker
curl -sfL https://get.k3s.io | K3S_URL=https://<master_ip>:6443 K3S_TOKEN=xxx sh -

三、对比建议

方案 难度 适用场景
Docker Swarm ⭐ 快速、简单集群
Kubernetes ⭐⭐⭐ 生产、复杂业务
k3s ⭐⭐ 轻量 K8s

四、常见问题

  • 端口未开放:Swarm 需 2377、7946、4789
  • 节点无法加入:检查防火墙、IP 可达
  • CentOS 8 已停止维护:建议 CentOS 7 或 Rocky/AlmaLinux

如果你愿意,我可以:

  • 给你 一步到位脚本
  • 帮你 规划几台服务器怎么分角色
  • 教你 如何用 compose 管理 Swarm 服务

你现在是 学习 / 测试 / 生产?几台机器?

0 踩