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

基础安装k3s后执行kubectl get node无节点资源的原因咨询

k3s安装后执行get node返回No resources found的可能原因及排查方案

可能原因

  • 安装时误加--disable-agent参数:k3s server节点安装时如果指定该参数,仅会部署控制平面核心组件,不会启动当前节点的kubelet代理服务,也就没有节点资源会注册到集群。该场景下控制平面的静态Pod运行不受影响,因此cluster-info查询结果正常,属于该问题最高发的诱因。
  • CentOS 7系统环境不兼容:
    • 防火墙或SELinux拦截:firewalld默认规则会拦截kubelet与apiserver 6443端口的通信,SELinux强制模式也会阻断k3s组件的权限调用,最终导致kubelet无法完成节点注册流程。
    • cgroup配置不匹配:CentOS 7默认的cgroup版本、驱动配置与k3s默认适配的cgroup驱动不兼容,会直接导致kubelet启动失败。
  • kubelet启动异常:节点磁盘空间不足、kubelet默认10250端口被其他进程占用、节点主机名不符合DNS规范(包含下划线、大写字母、特殊符号等)都会导致kubelet启动失败,无法向apiserver注册节点。
  • 注册证书异常:kubelet用于向apiserver认证的注册证书生成失败、权限配置错误,会导致注册请求被apiserver直接拒绝,节点无法加入集群。

排查操作步骤

  1. 检查k3s启动参数:执行cat /etc/systemd/system/k3s.service | grep ExecStart查看启动命令中是否存在--disable-agent参数,如有则删除该参数后执行systemctl daemon-reload && systemctl restart k3s重启服务即可。
  2. 查看k3s运行日志定位错误:执行journalctl -u k3s.service -f --since 1h过滤近1小时的服务运行日志,搜索kubelet、register相关的报错信息即可定位具体故障点。
  3. 校验系统基础配置:
    • 执行systemctl status firewalld确认防火墙状态,测试环境可直接执行systemctl stop firewalld && systemctl disable firewalld永久关闭防火墙。
    • 执行getenforce确认SELinux状态,返回Enforcing时可执行setenforce 0临时关闭,修改/etc/selinux/config文件中SELINUX=disabled实现永久关闭。
  4. 校验主机名合法性:执行hostname确认主机名仅包含小写字母、数字、横杠和点,不符合要求可执行hostnamectl set-hostname <合法主机名>修改后重启k3s服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:06:00