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

求助:Kubernetes主节点无法查看到已执行加入操作的工作节点

搞定Kubernetes工作节点加入后主节点认不出来的问题

先瞅瞅你贴的join命令输出,有俩警告提示,咱们就从这俩点开始排查:

1. 先把Swap彻底禁用了

虽然你用--ignore-preflight-errors=swap跳过了检查,但Kubernetes天生就不待见开着Swap的节点,这很可能就是主节点识别不到它的关键原因。得这么处理:

  • 临时禁用:直接跑命令 swapoff -a
  • 永久禁用:编辑/etc/fstab文件,把带swap的那一行注释掉(加个#开头),这样重启机器后Swap也不会自动开启

2. 补上缺失的crictl工具

crictl是Kubernetes和容器运行时沟通的必备工具,缺了它节点和主节点的通信肯定会出问题。安装方法很简单:

  • 先确认你的容器运行时(比如containerd)已经装好了且在正常运行
  • 用包管理器安装就行:Debian/Ubuntu系跑apt install cri-tools,CentOS/RHEL系跑yum install cri-tools;要是包管理器里找不到,直接下载对应的二进制文件放到系统PATH目录(比如/usr/bin)里也能行

3. 检查节点和主节点的网络通不通

得确保工作节点能正常连到主节点的6443端口(这是Kubernetes API的端口):

  • 在工作节点上跑 telnet 10.16.70.174 6443 或者 nc -zv 10.16.70.174 6443,看看能不能连通
  • 如果连不上,检查主节点的防火墙规则,得把6443端口对外开放,同时也要确认俩节点之间没有网络ACL之类的限制挡着

4. 重置后重新执行join命令

把上面的问题都解决后,先在工作节点重置kubeadm:kubeadm reset,然后重新执行join命令。要是之前的token过期了,就在主节点跑kubeadm token create --print-join-command生成新的join命令就行

5. 查日志找线索

要是还是不行,就去看日志找问题:

  • 在工作节点看kubelet的实时日志:journalctl -u kubelet -f,看看有没有报错信息
  • 在主节点看kube-apiserver的日志,排查下是不是节点注册的时候出了啥岔子

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:28:26