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

k3s集群Metrics server无法采集工作节点指标问题求助

问题定位与解决方案

从日志报错connect: no route to host可直接定位核心根因:集群网络连通性异常,主节点/metrics-server无法访问工作节点192.168.1.106的10250端口(kubelet默认指标端口),进而导致kubectl top命令拿不到工作节点指标、仪表盘访问metrics服务超时。

定位步骤

  • 验证物理层连通性:在主节点执行ping 192.168.1.106,如果ping不通先排查物理网络、IP冲突、路由器ACL配置问题
  • 验证端口连通性:在主节点执行nc -zv 192.168.1.106 10250,如果不通优先排查工作节点防火墙配置
  • 验证容器网络连通性:在主节点执行kubectl run -it --rm busybox --image=busybox:1.28 -- ping 10.42.1.11(metrics-server的PodIP),如果不通说明flannel(k3s默认CNI)跨节点网络故障

解决方案

场景1:工作节点防火墙拦截请求

树莓派默认的iptables/ufw会拦截k3s所需端口,在工作节点执行以下命令放通端口:

# 放通kubelet指标端口、flannel VXLAN通信端口
iptables -I INPUT -p tcp --dport 10250 -j ACCEPT
iptables -I INPUT -p udp --dport 8472 -j ACCEPT
# 若开启ufw则执行以下命令
ufw allow 10250/tcp
ufw allow 8472/udp

操作完成后在主节点重新测试10250端口连通性,确认正常后等待2分钟再执行kubectl top nodes验证指标返回。

场景2:主机名解析异常

metrics-server默认通过主机名访问kubelet,若主节点无法解析k3s-node-01的IP也会触发报错,在主节点/etc/hosts添加映射即可:

192.168.1.106 k3s-node-01

同时在工作节点/etc/hosts添加主节点映射:

192.168.1.113 k3s-master

场景3:flannel网卡绑定错误

如果跨节点Pod网络不通,说明flannel绑定了错误的网卡,重新部署k3s agent并指定物理网卡IP即可:

# 卸载原有agent
/usr/local/bin/k3s-agent-uninstall.sh
# 重新部署agent,指定node-ip参数
curl -sfL https://get.k3s.io | \
K3S_URL=https://192.168.1.113:6443 \
K3S_TOKEN=<master-token> \
INSTALL_K3S_EXEC='agent --node-ip 192.168.1.106' sh -

场景4:metrics-server配置参数缺失

若以上配置都正常,修改k3s内置的metrics-server配置,添加跳过TLS校验、优先用IP访问kubelet的参数:
编辑主节点上的/var/lib/rancher/k3s/server/manifests/metrics-server.yaml,在容器的args字段下添加两行:

- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,ExternalIP

保存后k3s会自动重新部署metrics-server,等待5分钟后验证仪表盘和top命令即可恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:57:00