在 CentOS 上使用 Docker 做集群部署,常见方案有三种,按使用频率从高到低:
下面我以 Docker Swarm(最推荐新手) 为主讲,最后给你 K8s 简要方案。
# 关闭防火墙(或放行端口)
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
| 角色 | IP |
|---|---|
| manager | 192.168.1.10 |
| worker1 | 192.168.1.11 |
| worker2 | 192.168.1.12 |
docker swarm init --advertise-addr 192.168.1.10
输出中会包含:
docker swarm join --token SWMTKN-... 192.168.1.10:2377
在 worker 节点执行:
docker swarm join --token SWMTKN-... 192.168.1.10:2377
docker node ls
docker service create \
--name web \
--replicas 3 \
-p 80:80 \
nginx
docker service ls
docker service ps web
docker service scale web=5
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
如果你要真正企业生产,用:
# 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 |
如果你愿意,可以告诉我:
我可以直接帮你写 完整部署方案 + yml 文件。