添加 Linux worker 节点
此页面介绍了如何向 kubeadm 集群添加 Linux 工作节点。
准备工作
- 每个加入的工作节点都已安装了 安装 kubeadm 中所需的组件,例如 kubeadm、kubelet 和容器运行时。
- 一个由
kubeadm init
创建并按照文档 使用 kubeadm 创建集群 中的步骤运行的 kubeadm 集群。 - 你需要节点的超级用户权限。
添加 Linux worker 节点
要向集群添加新的 Linux 工作节点,请对每台机器执行以下操作:
- 使用 SSH 或其他方法连接到机器。
- 运行
kubeadm init
输出的命令。例如:
sudo kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
kubeadm join 的附加信息
注意
要为<control-plane-host>:<control-plane-port>
指定 IPv6 元组,IPv6 地址必须用方括号括起来,例如:[2001:db8::101]:2073
。如果你没有令牌,可以在控制平面节点上运行以下命令获取:
# Run this on a control plane node
sudo kubeadm token list
输出类似于:
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
8ewj1p.9r9hcjoqgajrj4gi 23h 2018-06-12T02:51:28Z authentication, The default bootstrap system:
signing token generated by bootstrappers:
'kubeadm init'. kubeadm:
default-node-token
默认情况下,节点加入令牌在 24 小时后过期。如果你在当前令牌过期后将节点加入集群,可以在控制平面节点上运行以下命令创建一个新令牌:
# Run this on a control plane node
sudo kubeadm token create
输出类似于:
5didvk.d09sbcov8ph2amjw
要打印一个 kubeadm join 命令,同时生成一个新令牌,你可以使用:
sudo kubeadm token create --print-join-command
如果你没有 --discovery-token-ca-cert-hash
的值,可以在控制平面节点上运行以下命令获取:
# Run this on a control plane node
sudo cat /etc/kubernetes/pki/ca.crt | openssl x509 -pubkey | openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'
输出类似于:
8cb2de97839780a412b93877f8507ad6c94f73add17d5d7058e91741c9d5ec78
kubeadm join
命令的输出应该类似于:
[preflight] Running pre-flight checks
... (log output of join workflow) ...
Node join complete:
* Certificate signing request sent to control-plane and response
received.
* Kubelet informed of new secure connection details.
Run 'kubectl get nodes' on control-plane to see this machine join.
几秒钟后,你应该在 kubectl get nodes
的输出中看到此节点。(例如,在控制平面节点上运行 kubectl
)。
注意
由于集群节点通常是按顺序初始化的,CoreDNS Pods 很可能都运行在第一个控制平面节点上。为了提供更高的可用性,请在至少一个新节点加入后,使用kubectl -n kube-system rollout restart deployment coredns
命令重新平衡 CoreDNS Pods。下一步
- 查看如何添加 Windows 工作节点。
上次修改时间:2025 年 8 月 23 日晚上 9:50 PST:chore(kubeadm):改进 add-linux-nodes 文档 (050a7273c6)