【问题标题】:Kubernetes dashboard doesn't show the consumed CPU and memory by podsKubernetes 仪表板不显示 pod 消耗的 CPU 和内存
【发布时间】:2019-05-14 16:21:13
【问题描述】:

我成功连接到 Kubernetes 仪表板,我可以看到我所有的deploymentstatefulsetspods 等。但是决定 CPU 和内存量的图表由 pod 使用,不存在。

所有的豆荚:

kube-system   coredns-576cbf47c7-cj8qv                1/1     Running   33         67d
kube-system   coredns-576cbf47c7-qh9hm                1/1     Running   34         67d
kube-system   etcd-master                             1/1     Running   15         67d
kube-system   heapster-684777c4cb-qt6f5               1/1     Running   0          134m
kube-system   kube-apiserver-master                   1/1     Running   23         67d
kube-system   kube-controller-manager-master          1/1     Running   15         67d
kube-system   kube-proxy-bs5k9                        1/1     Running   13         67d
kube-system   kube-proxy-fjp8b                        1/1     Running   13         67d
kube-system   kube-scheduler-master                   1/1     Running   15         67d
kube-system   kubernetes-dashboard-77fd78f978-cnhsc   1/1     Running   0          71m
kube-system   metrics-server-5cbbc84f8c-vz77c         1/1     Running   0          71m
kube-system   monitoring-influxdb-5c5bf4949d-jqr9d    1/1     Running   0          133m
kube-system   weave-net-fl972                         2/2     Running   77         67d
kube-system   weave-net-gh96b                         2/2     Running   34         67d

有来自仪表板 pod 的日志:

2018/12/16 08:43:54 Starting overwatch
2018/12/16 08:43:54 Using in-cluster config to connect to apiserver
2018/12/16 08:43:54 Using service account token for csrf signing
2018/12/16 08:43:54 No request provided. Skipping authorization
2018/12/16 08:43:54 Successful initial request to the apiserver, version: v1.12.1
2018/12/16 08:43:54 Generating JWE encryption key
2018/12/16 08:43:54 New synchronizer has been registered: kubernetes-dashboard-key-holder-kube-system. Starting
2018/12/16 08:43:54 Starting secret synchronizer for kubernetes-dashboard-key-holder in namespace kube-system
2018/12/16 08:43:55 Initializing JWE encryption key from synchronized object
2018/12/16 08:43:55 Creating in-cluster Heapster client
2018/12/16 08:43:55 Successful request to heapster
2018/12/16 08:43:55 Auto-generating certificates
2018/12/16 08:43:55 Successfully created certificates
2018/12/16 08:43:55 Serving securely on HTTPS port: 8443
2018/12/16 08:44:19 Getting application global configuration
2018/12/16 08:44:19 Application configuration {"serverTime":1544949859551}
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 GET /api/v1/settings/global request from 10.32.0.1:53200: {}
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.32.0.1:53200: {}
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 GET /api/v1/systembanner request from 10.32.0.1:53200: {}
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 GET /api/v1/login/status request from 10.32.0.1:53200: {}
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 GET /api/v1/rbac/status request from 10.32.0.1:53200: {}
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/token request from 10.32.0.1:53200: {}
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 POST /api/v1/token/refresh request from 10.32.0.1:53200: { contents hidden }
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Incoming HTTP/2.0 GET /api/v1/overview/default?filterBy=&itemsPerPage=10&name=&page=1&sortBy=d,creationTimestamp request from 10.32.0.1:53200: {}
2018/12/16 08:44:20 Getting config category
2018/12/16 08:44:20 Getting discovery and load balancing category
2018/12/16 08:44:20 Getting lists of all workloads
2018/12/16 08:44:20 No metric client provided. Skipping metrics.
2018/12/16 08:44:20 No metric client provided. Skipping metrics.
2018/12/16 08:44:20 No metric client provided. Skipping metrics.
2018/12/16 08:44:20 No metric client provided. Skipping metrics.
2018/12/16 08:44:20 No metric client provided. Skipping metrics.
2018/12/16 08:44:20 No metric client provided. Skipping metrics.
2018/12/16 08:44:20 No metric client provided. Skipping metrics.
2018/12/16 08:44:20 Getting pod metrics
2018/12/16 08:44:20 [2018-12-16T08:44:20Z] Outcoming response to 10.32.0.1:53200 with 200 status code
2018/12/16 08:44:24 Getting application global configuration
2018/12/16 08:44:24 Application configuration {"serverTime":1544949864040}

上面写着:

Creating in-cluster Heapster client
Successful request to heapster

所以 heapster 正确连接到 kubernetes 仪表板。 我用kubeadm version=v1.12.1

当我在主节点中执行kubectl top node 以获取 cpu 和内存使用情况时,它会显示已使用的 cpu 和内存量。 当我想通过终端访问 heapster 时:

curl -L http://heapster-pod-ip:heapster-service-port/api/v1/model/metrics/

它返回:

curl: (7) Failed to connect to 10.40.0.63 port 80: Connection refused

metric-service pod 的日志:

I1216 12:05:24.783577       1 serving.go:273] Generated self-signed cert (apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
[restful] 2018/12/16 12:05:25 log.go:33: [restful/swagger] listing is available at https://:443/swaggerapi
[restful] 2018/12/16 12:05:25 log.go:33: [restful/swagger] https://:443/swaggerui/ is mapped to folder /swagger-ui/
I1216 12:05:25.802972       1 serve.go:96] Serving securely on [::]:44

3

有什么想法吗?

【问题讨论】:

  • 你能提供更多细节吗?仪表板图像版本、日志...?
  • @wrogrammer 请检查编辑的东西。

标签: kubernetes kubeadm kubernetes-dashboard


【解决方案1】:

Heapster 已停用,您可能需要按照步骤here 修改您的 heapster 安装。

【讨论】:

    【解决方案2】:

    引用来自 Kubernetes Dashboard 的README.MD

    Heapster 必须在集群中运行以获取指标和图表 可用。在集成指南中了解更多信息。

    为了查看图表,您需要部署 grafana.yamlheapster.yamlinfluxdb.yamlheapster-rbac.yaml

    然后运行

    kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
    

    您将能够看到 pod 和部署的图表。

    希望对你有用

    【讨论】:

    • 我部署了所有这些,但仍然一无所获! heapster工作正常!有什么想法吗?
    【解决方案3】:

    这是一个悬而未决的问题,截至本文发布时尚未解决。 https://github.com/kubernetes/dashboard/issues/4145

    我们知道,我们在指标方面存在一些问题 修复了。我们会处理它们。

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 2017-12-19
      • 1970-01-01
      • 2020-12-02
      相关资源
      最近更新 更多