Kubernetes集群添加节点执行kubeadm join出现超时错误如何解决?
错误含义说明
本次返回的信息包含两类内容:
- 第一类是配置警告:检测到Docker使用的cgroup驱动为
cgroupfs,Kubernetes官方推荐使用systemd作为cgroup驱动,该警告不会直接导致本次节点加入失败,但属于不规范配置,后续运行可能出现稳定性问题,需要调整。 - 第二类是致命错误:节点加入的预检查阶段无法完成APIServer身份校验,待加入节点请求集群
cluster-info配置时连接超时,核心原因是待加入节点与集群控制面的6443端口网络不通,导致流程直接终止。
排查步骤
- 校验APIServer地址准确性:确认
kubeadm join命令中填写的控制面IP地址正确,无拼写错误,是集群控制面节点的可访问IP。 - 排查网络连通性:在待加入节点执行
nc -zv 159.65.40.41 6443或者telnet 159.65.40.41 6443,检查6443端口是否可达:- 若端口不通,首先检查控制面节点的防火墙、安全组规则,是否放开了6443端口的入站权限,允许待加入节点的IP访问。
- 其次检查待加入节点的本地出站规则,是否限制了6443端口的访问请求。
- 若为跨网络部署场景,需要排查两端网络链路是否存在阻隔,比如跨VPC未开通对等连接、公网IP被封禁、运营商端口限制等问题。
- 检查控制面服务状态:登录集群控制面节点,执行
systemctl status kube-apiserver确认APIServer服务正常运行,无异常崩溃情况。 - 校验join参数合法性:确认使用的
kubeadm join命令中token、CA证书哈希等参数有效,token默认有效期为24小时,若已过期需要在控制面执行kubeadm token create --print-join-command生成新的加入命令。
解决方法
- 先解决网络连通问题,确保待加入节点可以正常访问控制面的6443端口。
- 调整Docker cgroup驱动配置,消除警告:编辑Docker配置文件
/etc/docker/daemon.json,添加配置项"exec-opts": ["native.cgroupdriver=systemd"],保存后执行systemctl daemon-reload && systemctl restart docker重启Docker服务生效。 - 所有预检查条件满足后,重新执行
kubeadm join命令即可完成节点加入。
内容的提问来源于stack exchange,提问作者user3877654
相关产品推荐
相关产品推荐

