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

Kubernetes Metrics Server无法采集Django API Pod指标的原因排查

问题描述

我部署了Django API和Celery两个应用,执行获取Pod资源消耗的命令时,仅能返回Celery Pod的指标,无法获取Django API Pod的指标。相同配置在另一个集群可正常运行,Kubernetes Server Version: v1.22.5。

Pod指标截图

编辑:补充Metrics Server日志

I0824 13:28:05.498602       1 serving.go:342] Generated self-signed cert (apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
I0824 13:28:06.269888       1 requestheader_controller.go:169] Starting RequestHeaderAuthRequestController
I0824 13:28:06.269917       1 shared_informer.go:240] Waiting for caches to sync for RequestHeaderAuthRequestController
I0824 13:28:06.269966       1 configmap_cafile_content.go:201] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::client-ca-file"
I0824 13:28:06.269981       1 shared_informer.go:240] Waiting for caches to sync for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
I0824 13:28:06.270005       1 configmap_cafile_content.go:201] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file"
I0824 13:28:06.270025       1 shared_informer.go:240] Waiting for caches to sync for client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file
I0824 13:28:06.270512       1 secure_serving.go:266] Serving securely on [::]:8443
I0824 13:28:06.270577       1 dynamic_serving_content.go:131] "Starting controller" name="serving-cert::apiserver.local.config/certificates/apiserver.crt::apiserver.local.config/certificates/apiserver.key"
I0824 13:28:06.270593       1 tlsconfig.go:240] "Starting DynamicServingCertificateController"
W0824 13:28:06.270852       1 shared_informer.go:372] The sharedIndexInformer has started, run more than once is not allowed
I0824 13:28:06.277601       1 server.go:187] "Failed probe" probe="metric-storage-ready" err="no metrics to serve"
I0824 13:28:06.371038       1 shared_informer.go:247] Caches are synced for client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file 
I0824 13:28:06.371093       1 shared_informer.go:247] Caches are synced for RequestHeaderAuthRequestController 
I0824 13:28:06.371932       1 shared_informer.go:247] Caches are synced for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
潜在原因分析
  • Django API Pod未配置资源请求/限制:Metrics Server默认仅采集配置了resources.requests或resources.limits的Pod指标,若Django API Pod未设置资源配额,可能不会被纳入采集范围。
  • Metrics Server存在标签选择器限制:检查Metrics Server的部署配置,是否存在仅采集特定标签Pod的规则,比如Celery Pod携带了匹配的标签,而Django API Pod未携带。
  • 节点kubelet指标访问异常:Django API所在节点的kubelet指标端口(默认10250)可能未开放,或Metrics Server无法访问该节点的kubelet。可通过执行kubectl get --raw "/api/v1/nodes/<节点名称>/proxy/metrics/resource"测试节点指标是否能正常返回。
  • Metrics Server版本兼容性问题:尽管集群版本为v1.22.5,但当前集群的Metrics Server版本若与正常集群不一致,可能存在兼容性问题导致部分Pod采集失败。
  • Django API Pod状态异常:若Django API Pod处于Pending、CrashLoopBackOff等非Running/Ready状态,Metrics Server不会采集其资源指标,需确认Pod状态是否正常。
  • RBAC权限覆盖不全:Metrics Server的ServiceAccount权限可能未覆盖Django API所在的命名空间,检查ClusterRole和ClusterRoleBinding是否包含所有需要采集的命名空间权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:33:24