在 CentOS 上使用 Docker 做集群部署,最常见、官方推荐的方式是 Docker Swarm(简单、原生)或 Kubernetes(生产级、复杂)。下面我分别说明,并给你可操作的步骤。
CentOS 7/8,建议:
# 关闭防火墙(测试环境)
systemctl stop firewalld
systemctl disable firewalld
# 或放行端口
# TCP 2377(集群管理)
# TCP/UDP 7946(节点通信)
# UDP 4789(overlay 网络)
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
docker swarm init --advertise-addr <manager_ip>
输出类似:
docker swarm join --token SWMTKN-1-xxx <manager_ip>:2377
在 worker 节点执行:
docker swarm join --token SWMTKN-1-xxx <manager_ip>:2377
docker node ls
docker service create --name nginx --replicas 3 -p 80:80 nginx
docker service ls
docker service ps nginx
docker service scale nginx=5
✅ 适合:
curl -sfL https://get.k3s.io | sh -
curl -sfL https://get.k3s.io | K3S_URL=https://<master_ip>:6443 \
K3S_TOKEN=<token> sh -
token 在 master 的
/var/lib/rancher/k3s/server/node-token
kubectl get nodes
yum install -y docker kubelet kubeadm kubectl
systemctl enable --now docker kubelet
kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubeadm join <master_ip>:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx
| 场景 | 推荐 |
|---|---|
| 快速部署、简单 | Docker Swarm |
| 生产、复杂微服务 | Kubernetes |
| 边缘 / 低资源 | k3s |
| 学习用途 | Swarm → K8s |
setenforce 0
yum install -y ntp
systemctl enable --now ntpd
如果你愿意,可以告诉我:
我可以直接帮你写 完整部署脚本。