You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microk8s节点加入失败:待加入节点主机名无法解析为对应IP,拒绝加入(400)

解决MicroK8s Join Worker节点时主机名无法解析的400错误

遇到这个“待加入节点的主机名无法解析为对应IP,拒绝加入(400)”的报错别慌,这本质是集群控制节点和待加入的worker节点之间无法通过主机名正确解析到对方的IP地址,下面是几个实操有效的解决办法:

方法1:手动配置/etc/hosts主机名映射

这是最直接的解决方案,强制让两个节点互相识别对方的主机名和IP:

  • 在控制节点上执行以下命令获取自身IP和主机名:
    # 获取控制节点IP
    hostname -I
    # 获取控制节点主机名
    hostname
    
  • 在worker节点上同样执行上述命令,拿到它的IP和主机名。
  • 编辑控制节点的/etc/hosts文件,添加worker节点的IP和主机名映射:
    sudo nano /etc/hosts
    # 在文件末尾添加一行,替换成实际的worker IP和主机名
    192.168.1.101 k8s-worker-01
    
  • 编辑worker节点的/etc/hosts文件,添加控制节点的IP和主机名映射:
    sudo nano /etc/hosts
    # 在文件末尾添加一行,替换成实际的控制节点IP和主机名
    192.168.1.100 k8s-master-01
    
  • 保存退出后,重新在worker节点执行microk8s join命令即可。

方法2:用IP生成join命令,绕开主机名解析

如果不想修改hosts文件,可以让控制节点直接生成基于IP的join命令:

  • 在控制节点执行:
    # 替换成你的控制节点实际IP
    microk8s add-node --advertise-address 192.168.1.100
    
  • 此时生成的join命令会包含控制节点的IP而非主机名,比如类似这样:
    microk8s join 192.168.1.100:25000/abcdef123456 --worker
    
  • 在worker节点执行这个带IP的join命令,就能避免主机名解析问题。

方法3:检查节点间DNS解析与连通性

如果上面的方法没解决,先排查基础网络问题:

  • 在控制节点ping worker节点的主机名,看是否能返回正确的IP:
    ping k8s-worker-01 -c 3
    
  • 在worker节点ping控制节点的主机名,同样验证解析是否正常。
  • 如果ping不通,说明DNS配置有问题,要么修复集群的DNS服务,要么回到方法1用hosts映射兜底。

方法4:确认防火墙规则未阻断通信

有时候防火墙导致的通信异常也可能被误报为解析错误,临时关闭防火墙测试:

  • 控制节点和worker节点都执行(以ufw为例):
    sudo ufw disable
    
  • 测试join命令是否成功,成功后再重新配置防火墙规则,开放MicroK8s所需的端口(比如25000、16443等)。

内容的提问来源于stack exchange,提问作者nobody1879

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 14:08:12