温馨提示×

centos docker怎样集群部署

小樊
33
2026-09-14 22:03:45
栏目: 智能运维

CentOS 上使用 Docker 做集群部署,常见方案有三种,按使用频率从高到低:

  1. Docker Swarm(官方原生,最简单)
  2. Kubernetes(K8s,生产级,最复杂)
  3. docker-compose + 多机(非真正集群,适合小型)

下面我以 Docker Swarm(最推荐新手) 为主讲,最后给你 K8s 简要方案


一、环境准备(CentOS)

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

# 启动 Docker
systemctl enable --now docker

2. 主机规划示例

角色 IP
manager 192.168.1.10
worker1 192.168.1.11
worker2 192.168.1.12

二、Docker Swarm 集群部署

1. 初始化管理节点(manager)

docker swarm init --advertise-addr 192.168.1.10

输出中会包含:

docker swarm join --token SWMTKN-... 192.168.1.10:2377

2. worker 节点加入

在 worker 节点执行:

docker swarm join --token SWMTKN-... 192.168.1.10:2377

3. 查看节点

docker node ls

三、部署服务(集群模式)

1. 启动一个 Nginx 服务

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

2. 查看服务

docker service ls
docker service ps web

3. 扩容 / 缩容

docker service scale web=5

四、使用 stack(推荐生产)

docker-stack.yml

version: "3"
services:
  web:
    image: nginx
    ports:
      - "80:80"
    deploy:
      replicas: 3
      restart_policy:
        condition: on-failure

部署

docker stack deploy -c docker-stack.yml myapp

查看

docker stack ps myapp

五、数据 & 网络建议

  • 数据持久化:用 NFS / Ceph / 云盘
  • 网络:Swarm 默认 overlay 网络
  • 端口必须开放:
    • 2377(集群管理)
    • 7946(节点通信)
    • 4789(overlay 网络)

六、Kubernetes 简要方案(生产级)

如果你要真正企业生产,用:

  • kubeadm + CentOS
  • 或 k3s(轻量 K8s,非常适合 CentOS)

k3s 示例(极简)

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

# worker
curl -sfL https://get.k3s.io | K3S_URL=https://MASTER:6443 \
  K3S_TOKEN=xxx sh -

七、如何选择?

场景 推荐
学习 / 小项目 Docker Swarm
中小企业 Docker Swarm / k3s
大型生产 Kubernetes

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

  • 几台服务器
  • 跑什么应用(Java / Web / 数据库)
  • 是否要高可用

我可以直接帮你写 完整部署方案 + yml 文件

0