首页/云/Kubernetes 速查/kubeadm join 添加节点
集群运维与排障54 条

kubeadm join 添加节点

新节点先装好容器运行时与 kubelet、kubeadm,再用 join 命令接入集群;token 过期可直接重新生成,不必重装节点。

Kubernetes 速查云更新于 2026-10-13

kubeadm join 做什么

kubeadm join 把一台已经装好容器运行时、kubelet、kubeadm 的机器接入现有集群。新节点用控制面签发的 bootstrap token 证明加入资格,再用 CA 证书哈希校验它连上的确实是本集群的控制面,随后自动写入 kubelet 配置、创建必要目录并注册到集群。加入成功后节点会先处于 NotReady,等 CNI 插件就绪并完成容器网络初始化后转为 Ready。

基本信息

适用平台kubeadm 自建集群,Linux 节点
前置条件容器运行时可用、kubelet 与 kubeadm 已安装、关闭 swap、主机名与 hosts 正确
认证方式bootstrap token + CA 证书哈希双校验
token 有效期默认 24 小时,过期可重新生成
加入后状态先 NotReady,CNI 就绪后自动转 Ready

典型使用场景

  • 集群扩容:新节点接入后承载业务副本,扩大可调度余量
  • 节点替换:旧机器下线,用新机器以相同角色重新加入
  • 边缘或分支机房:以相同流程批量接入多台节点
  • 角色变更:把原先的工作节点重建后以带标签的方式重新加入
  • 演练与重建:节点配置损坏时放弃原地修复,重新 join 更省时

第一步:在控制面生成加入命令

第一步:在控制面生成加入命令
kubeadm token create --print-join-command          # 一条命令拿到 token 与 CA 哈希,最省事
kubeadm token list                                 # 查看现有 token 与剩余有效期
# 已有 token 时单独取 CA 哈希
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex

第二步:在新节点执行

第二步:在新节点执行
kubeadm join 10.0.0.10:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:<哈希>        # 注意续行符,整条命令一次性粘贴
systemctl status kubelet --no-pager                    # 加入失败时先看 kubelet 服务状态
journalctl -u kubelet -n 100 --no-pager                # 配置或运行时问题在这里留原文

常见失败对照

报错原因处理
token is not valid / unknown tokentoken 过期或已被删除控制面重新 create,无需重装节点
certificate has expired or is not yet valid节点时钟偏差过大校准时间同步后重试
failed to get sandbox image容器运行时未就绪或镜像缺失确认运行时服务正常并预拉取基础镜像
节点显示 NotReadyCNI 未部署或未就绪检查网络插件 DaemonSet 是否在全部节点运行
加入成功但 kubelet 反复重启swap 未关闭、cgroup 驱动不匹配按 kubelet 日志修正系统配置
kubelet 与容器运行时的 cgroup 驱动必须一致(systemd 对 systemd 或 cgroupfs 对 cgroupfs)。这个不一致不会让 join 失败,但会让节点起来一小会儿后开始报错,属于最容易被忽略的检查项。
批量扩容时不要并发执行所有节点的 join:镜像拉取与控制面注册会集中冲击网络和 apiserver。分批进行,并确认每批节点都已 Ready、CNI 正常后再继续。

易错点

  • token 过期就重装节点:token 默认 24 小时有效,重新生成远比重装省事,也不会破坏节点上的运行时与镜像缓存
  • 只用 token 不做 CA 哈希校验:连到伪造控制面的风险落地,命令行加入时务必带上哈希参数
  • join 显示成功就认为节点可用:NotReady 才是常态起点,CNI 未就绪的节点无法承载业务
  • 节点系统时间偏差大:TLS 证书有效期校验会直接失败,报错指向证书而非时间,容易排错方向跑偏

数据来源与参考

  • Kubernetes 官方文档 · 使用 kubeadm 创建集群
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌