在 CentOS 上使用 Docker 做集群,常见方案有 Docker Swarm 和 Kubernetes。下面我分别说明,并给你可操作的步骤(以 CentOS 7/8 为例)。
| 方案 | 适合场景 | 难度 |
|---|---|---|
| Docker Swarm | 简单集群、快速部署 | ⭐⭐ |
| Kubernetes | 生产级、复杂应用 | ⭐⭐⭐⭐ |
/etc/hosts 或 DNS)# 放行端口(Swarm 必需)
firewall-cmd --add-port=2377/tcp --permanent
firewall-cmd --add-port=7946/tcp --permanent
firewall-cmd --add-port=7946/udp --permanent
firewall-cmd --add-port=4789/udp --permanent
firewall-cmd --reload
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 <管理节点IP>
输出类似:
docker swarm join --token SWMTKN-1-xxx <管理节点IP>:2377
在 工作节点 执行:
docker swarm join --token <token> <管理节点IP>:2377
docker node ls
docker service create --replicas 3 -p 80:80 --name web nginx
# 关闭 swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
# 设置主机名
hostnamectl set-hostname master
hostnamectl set-hostname node1
# 配置 hosts
cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node1
EOF
yum install -y containerd
systemctl enable --now containerd
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
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet
kubeadm init --pod-network-cidr=10.244.0.0/16
kubeadm join <master-ip>:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果你愿意,可以告诉我:
我可以直接给你 一套完整部署脚本。