Kubernetes 集群节点初始化与配置同步文档
·
Kubernetes 集群节点初始化与配置同步文档
目的
将 master 节点的 Docker 配置 (daemon.json) 与 Kubernetes admin 配置 (admin.conf) 同步到所有 worker 节点,并保证 Docker cgroup driver、镜像加速、私有仓库及 kubectl 配置一致。
前提条件
- Master 节点已完成 kubeadm 初始化
- Worker 节点可以通过 SSH 登录
- 使用 root 用户或有 sudo 权限的用户
节点列表
node1, node2, node3, node4
步骤一:同步 Docker 配置
1️⃣ 确认 master 节点 Docker 配置
cat /etc/docker/daemon.json
示例内容:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors":["https://docker.1ms.run"],
"insecure-registries": ["192.168.31.151:5000"]
}
确保配置正确。
2️⃣ 在每个节点创建 /etc/docker 目录
ssh root@node1 "mkdir -p /etc/docker"
ssh root@node2 "mkdir -p /etc/docker"
ssh root@node3 "mkdir -p /etc/docker"
ssh root@node4 "mkdir -p /etc/docker"
-p参数保证目录不存在时自动创建。
3️⃣ 将 daemon.json 复制到每个节点
scp /etc/docker/daemon.json root@node1:/etc/docker/daemon.json
scp /etc/docker/daemon.json root@node2:/etc/docker/daemon.json
scp /etc/docker/daemon.json root@node3:/etc/docker/daemon.json
scp /etc/docker/daemon.json root@node4:/etc/docker/daemon.json
4️⃣ 修改权限为 root
ssh root@node1 "chown root:root /etc/docker/daemon.json"
ssh root@node2 "chown root:root /etc/docker/daemon.json"
ssh root@node3 "chown root:root /etc/docker/daemon.json"
ssh root@node4 "chown root:root /etc/docker/daemon.json"
5️⃣ 重载 systemd 并重启 Docker
ssh root@node1 "systemctl daemon-reload && systemctl restart docker"
ssh root@node2 "systemctl daemon-reload && systemctl restart docker"
ssh root@node3 "systemctl daemon-reload && systemctl restart docker"
ssh root@node4 "systemctl daemon-reload && systemctl restart docker"
6️⃣ 检查 Docker 配置是否生效
ssh root@node1 "docker info | grep -i cgroup"
ssh root@node2 "docker info | grep -i cgroup"
ssh root@node3 "docker info | grep -i cgroup"
ssh root@node4 "docker info | grep -i cgroup"
输出应为:
Cgroup Driver: systemd
同时镜像加速和私有仓库配置已生效。
步骤二:同步 Kubernetes admin.conf
1️⃣ 在每个节点创建 .kube 目录
ssh root@node1 "mkdir -p $HOME/.kube"
ssh root@node2 "mkdir -p $HOME/.kube"
ssh root@node3 "mkdir -p $HOME/.kube"
ssh root@node4 "mkdir -p $HOME/.kube"
2️⃣ 复制 master 的 admin.conf 到各节点
scp /etc/kubernetes/admin.conf root@node1:~/.kube/config
scp /etc/kubernetes/admin.conf root@node2:~/.kube/config
scp /etc/kubernetes/admin.conf root@node3:~/.kube/config
scp /etc/kubernetes/admin.conf root@node4:~/.kube/config
3️⃣ 修改文件权限(确保 kubectl 可以访问)
ssh root@node1 "chown $(id -u):$(id -g) $HOME/.kube/config"
ssh root@node2 "chown $(id -u):$(id -g) $HOME/.kube/config"
ssh root@node3 "chown $(id -u):$(id -g) $HOME/.kube/config"
ssh root@node4 "chown $(id -u):$(id -g) $HOME/.kube/config"
4️⃣ 测试 kubectl
在任意节点执行:
kubectl get nodes
应能正确列出所有 master 和 worker 节点。
步骤三:可选批量循环命令
如果希望一次循环完成所有节点操作:
for node in node1 node2 node3 node4; do
echo "===== 配置 Docker 和 kubeconfig on $node ====="
ssh root@$node "mkdir -p /etc/docker /root/.kube"
scp /etc/docker/daemon.json root@$node:/etc/docker/daemon.json
scp /etc/kubernetes/admin.conf root@$node:~/.kube/config
ssh root@$node "chown root:root /etc/docker/daemon.json && chown $(id -u):$(id -g) ~/.kube/config"
ssh root@$node "systemctl daemon-reload && systemctl restart docker"
ssh root@$node "docker info | grep -i cgroup"
done
✅ 完成后:
- 所有节点 Docker 配置一致(systemd cgroup driver + 镜像加速 + 私有仓库)
- 所有节点可使用 kubectl 访问 master API server
更多推荐


所有评论(0)