我有一个在Kubernetes(Azure AKS)中运行的应用程序,其中每个Pod包含两个容器。我还设置了Grafana,以显示各种度量标准,其中一些来自Prometheus。我正在尝试解决一个单独的问题,在这样做时,我注意到某些指标似乎在数据源之间不匹配。

例如,kube_deployment_status_replicas_available返回值30,而kubectl -n XXXXXXXX get pod列出100个都在运行,而kube_deployment_status_replicas_unavailable返回值0。此外,如果我使用kubectl进行部署,我会看到期望值。

$ kubectl get deployment XXXXXXXX
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
XXXXXXXX   100       100       100          100         49d

同一集群中还有其他所有值正确关联的应用程序(命名空间),因此我不确定故障可能出在哪里,或者不确定是否有办法确定哪个值正确。任何指导将不胜感激。谢谢

最佳答案

基于获得kube_deployment_status_replicas_available指标,我假设您已从Prometheus中从kube-state-metrics抓取指标。听起来它的部署有些古怪。它可能是:

  • 缓存的指标数据
  • 和/或根本无法从kube-apiserver
  • 中提取当前指标

    我会:
  • 检查kube-state-metrics正在运行的版本,并查看它是否与K8s版本兼容。
  • 重新启动kube-state-metrics Pane 。
  • 检查日志kubectl logs kube-state-metrics`
  • 检查Prometheus日志
  • 如果看不到任何内容,请尝试使用--log.level=debug标志启动Prometheus。

  • 希望能帮助到你。

    08-28 04:02