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自动配置 coredns、corednsautoscaler、omsagent-rs、tunnelfront 和指标服务器。
之后我为我的服务应用了三个部署,都部署成功了。
现在,我想访问 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 和内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章
Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况