求助: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
相关产品推荐
相关产品推荐

