Iguazio/mlrun环境中Pod无CPU/Memory指标问题排查求助
Iguazio/mlrun中Pod无监控指标问题排查与解决
问题现象
使用igztop查看运行中Pod时,发现名为xxxxxxxxxxxxxxx7445dfc774-m6vd9的Pod的CPU(m)和MEMORY(Mi)值为空;同时Grafana中也无法查看该Pod的CPU、内存、I/O等性能指标。igztop输出如下:
[ jist @ iguazio-system 07:41:43 ]->(0) ~ $ igztop -s cpu +--------------------------------------------------------------+--------+------------+-----------+---------+-------------+-------------+ | NAME | CPU(m) | MEMORY(Mi) | NODE | STATUS | MLRun Proj. | MLRun Owner | +--------------------------------------------------------------+--------+------------+-----------+---------+-------------+-------------+ | xxxxxxxxxxxxxxxx7445dfc774-m6vd9 | | | k8s-node3 | Running | | | | xxxxxx-jupyter-55b565cc78-7bjfn | 27 | 480 | k8s-node1 | Running | | | | nuclio-xxxxxxxxxxxxxxxxxxxxxxxxxx-756fcb7f74-h6ttk | 15 | 246 | k8s-node3 | Running | | | | mlrun-db-7bc6bcf796-64nz7 | 13 | 717 | k8s-node2 | Running | | | | xxxx-jupyter-c4cccdbd8-slhlx | 10 | 79 | k8s-node1 | Running | | | | v3io-webapi-scj4h | 8 | 1817 | k8s-node2 | Running | | | | v3io-webapi-56g4d | 8 | 1827 | k8s-node1 | Running | | | | spark-worker-8d877878c-ts2t7 | 8 | 431 | k8s-node1 | Running | | | | provazio-controller-644f5784bf-htcdk | 8 | 34 | k8s-node1 | Running | | |
根因分析
- Pod未配置资源请求/限制(
resources.requests/resources.limits),导致监控组件无法识别并采集其资源使用数据; - 目标节点(k8s-node3)上的监控采集组件(如node-exporter、kube-state-metrics)运行异常,无法抓取Pod的指标;
- Pod的标签/注解缺失,导致Prometheus等监控组件的抓取规则无法匹配到该Pod,进而无法完成指标采集;
- 节点kubelet服务异常,未能正常上报Pod的资源使用数据到监控系统。
无需重启节点的解决方法
方法1:补全Pod的资源配置
- 查看目标Pod的当前资源配置:
kubectl describe pod xxxxxxxxxxxxxxxx7445dfc774-m6vd9 -n <Pod所在命名空间> - 若未配置
resources.requests和resources.limits,编辑Pod对应的Deployment/StatefulSet,添加资源配置示例:spec: containers: - name: <容器名称> resources: requests: cpu: "100m" memory: "256Mi" limits: cpu: "500m" memory: "512Mi" - 应用配置更新,触发Pod滚动重启:
kubectl apply -f <更新后的配置文件>
方法2:修复节点监控采集组件
- 查看目标节点上的监控组件Pod状态:
kubectl get pods -n monitoring -o wide | grep k8s-node3 - 若发现node-exporter或kube-state-metrics Pod异常(如CrashLoopBackOff),删除异常Pod让控制器自动重建:
kubectl delete pod <异常Pod名称> -n monitoring - 检查Prometheus抓取配置,确保包含目标Pod所在命名空间的规则:
若规则缺失,更新Prometheus配置并重启Prometheus Pod。kubectl get configmap prometheus-server -n monitoring -o yaml | grep -A 10 -B 5 <目标命名空间>
方法3:重启目标节点的kubelet服务
- 远程登录目标节点k8s-node3:
ssh k8s-node3 - 重启kubelet服务(无需重启节点):
sudo systemctl restart kubelet - 等待5-10分钟后,重新通过
igztop和Grafana验证指标是否恢复。
内容的提问来源于stack exchange,提问作者JIST
相关产品推荐
相关产品推荐

