Kubernetes 仪表板不显示 CPU 和内存使用情况

Posted

技术标签:

【中文标题】Kubernetes 仪表板不显示 CPU 和内存使用情况【英文标题】:Kubernetes Dashboard does not show CPU and Memory Usage 【发布时间】:2022-01-15 23:06:28 【问题描述】:

我的 Kubernetes 仪表板有问题。 我实际上使用了托管 Kubernetes 服务 AKS,并使用以下设置创建了一个 Kubernetes 集群:

Kubernetes-版本 1.20.9 1 个工作节点,大小为 Standard_DS2_v2

自动配置 corednscorednsautoscaleromsagent-rstunnelfront指标服务器

之后我为我的服务应用了三个部署,都部署成功了。

现在,我想访问 Kubernetes 仪表板。我使用了https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard 上描述的指令。

之后我调用 kubectl proxy 以通过 url 访问仪表板:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.

在我使用我的 kubeconfig-File 登录到 Kubernetes 仪表板后,我得到以下输出,并且 cpu 也没有显示内存使用情况。

当我执行 kubectl describe kubernetes-dashboard pod 时,我得到以下信息:

来自 pod 的日志如下:

Internal error occurred: No metric client provided. Skipping metrics.
2021/12/11 19:23:04 [2021-12-11T19:23:04Z] Outcoming response to 127.0.0.1:43392 with 200 status code
2021/12/11 19:23:04 Internal error occurred: No metric client provided. Skipping metrics.
2021/12/11 19:23:04 [2021-12-11T19:23:04Z] Outcoming response to 127.0.0.1:43392 with 200 status code
2021/12/11 19:23:04 Internal error occurred: No metric client provided. Skipping metrics.

【问题讨论】:

你还需要安装metrics-server。 kubernetes集群在AKS启动时已经安装,AKS上安装的metrics-server是:mcr.microsoft.com/oss/kubernetes/metrics-server:v0.3.6 你能验证它的工作原理吗?如果您的集群中有 HPA,当您 describe 它时,如果指标服务器无法正常运行,它也会显示指标错误 我有一个用于部署的 HPA。当我调用 kubectl describe hpa ... 或当我调用 kubectl ***节点时,我可以看到指标。我想知道,为什么它会输出这个错误并且没有显示cpu和内存使用情况 看来您现在还需要仪表板指标刮板。上次我使用 k8s 仪表板时不需要这个,但现在看起来需要它:github.com/kubernetes-sigs/dashboard-metrics-scraper 【参考方案1】:

... I used the instruction which is described on https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard.

仪表板需要一种方法来“缓存”从指标服务器收集的一个小窗口指标。那里提供的说明没有启用此功能。您可以运行以下命令来安装/升级启用了指标抓取工具的 kubernetes-dashboard:

helm upgrade -i kubernetes-dashboard/kubernetes-dashboard --name my-release \  
--set=service.externalPort=8080,resources.limits.cpu=200m,metricsScraper.enabled=true

【讨论】:

非常感谢您的回答。它帮助我解决了这个问题。我做了以下步骤:1) helm repo add kubernetes-dashboard kubernetes.github.io/dashboard, 2) helm install my-release kubernetes-dashboard/kubernetes-dashboard --set=service.externalPort=8080,resources.limits.cpu=200m,metricsScraper .enabled=true, 3) pod-name=kubectl get pods -n default -l "app.kubernetes.io/name=kubernetes-dashboard,app.kubernetes.io/instance=my-release" -o jsonpath=" .items[0].metadata.name" 和 4) kubectl -n default port-forward "pod-name" 8443:8443 现在我可以看到 cpu 和内存使用情况了

以上是关于Kubernetes 仪表板不显示 CPU 和内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章

显示未经授权的 Kubernetes 仪表板

Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况

如何从我在 Google Cloud Platform 上的部署中删除 Kubernetes 仪表板资源?

iOS 调试工具

Kubernetes Pod 驱逐详解

调试工具