【问题标题】:How to get the resource usage of a pod in Kubernetes?如何获取 Kubernetes 中 Pod 的资源使用情况?
【发布时间】:2019-01-09 11:36:39
【问题描述】:

我们如何通过命令行获取 Kubernetes 上每个 pod 的真实资源使用情况(不是资源请求)? 不推荐使用 Heapster。 同时,Metrics-server 仍然不支持kubectl top pod

  1. Heapster -

    我使用以下命令部署了 Heapster

    $ heapster/deploy/kube.sh start
    kubectl get pods --all-namespaces
    NAMESPACE     NAME                                                           READY     STATUS    RESTARTS   AGE
    kube-system   calico-node-hlcbl                                              2/2       Running   0          39m
    kube-system   calico-node-m8jl2                                              2/2       Running   0          35m
    kube-system   coredns-78fcdf6894-bl94w                                       1/1       Running   0          39m
    kube-system   coredns-78fcdf6894-fwx95                                       1/1       Running   0          39m
    kube-system   etcd-ctl.kube.yarnrm-pg0.utah.cloudlab.us                      1/1       Running   0          39m
    kube-system   heapster-84c9bc48c4-qzt8x                                      1/1       Running   0          15s
    kube-system   kube-apiserver-ctl.kube.yarnrm-pg0.utah.cloudlab.us            1/1       Running   0          39m
    kube-system   kube-controller-manager-ctl.kube.yarnrm-pg0.utah.cloudlab.us   1/1       Running   0          38m
    kube-system   kube-proxy-nj9f8                                               1/1       Running   0          35m
    kube-system   kube-proxy-zvr2b                                               1/1       Running   0          39m
    kube-system   kube-scheduler-ctl.kube.yarnrm-pg0.utah.cloudlab.us            1/1       Running   0          39m
    kube-system   monitoring-grafana-555545f477-jldmz                            1/1       Running   0          15s
    kube-system   monitoring-influxdb-848b9b66f6-k2k4f                           1/1       Running   0          15s
    

    我在使用kubectl top时遇到如下错误。

    $ kubectl top pods
    Error from server (ServiceUnavailable): the server is currently unable to handle the request (get services http:heapster:)
    $ kubectl top nodes
    Error from server (ServiceUnavailable): the server is currently unable to handle the request (get services http:heapster:)
    
  2. 指标服务器:

    metrics-server 不支持 kubectl top Resource Metrics API

如果有人已经解决了同样的问题,请帮助我。 谢谢。

【问题讨论】:

标签: kubernetes heapster


【解决方案1】:

来自服务器的错误(ServiceUnavailable):服务器当前无法处理请求(获取服务 http:heapster:)

听起来 heapster 部署只是忘记为heapster 安装Service;我希望这会让你摆脱那个错误,但不知道它是否真的会导致kubectl top pods开始工作:

kubectl create -f /dev/stdin <<SVC
apiVersion: v1
kind: Service
metadata:
  name: heapster
  namespace: kube-system
spec:
  selector:
    whatever-label: is-on-heapster-pods
  ports:
  - name: http
    port: 80
    targetPort: whatever-is-heapster-is-listening-on
SVC

【讨论】:

  • 我也有同样的问题。当我运行命令时,它会显示The Service "heapster" is invalid: spec.ports[0].targetPort: Invalid value: "whatever-is-heapster-is-listening-on": must be no more than 15 characters
  • 嘿,在那种情况下,我很高兴我为我的 example 选择了一个完全非法的 example 值;我不知道您的 heapster Pod 上的标签是什么,也不知道这些 Pod 正在侦听哪个端口。我想我应该完全省略值,而是留下 cmets
  • 谢谢@MatthewLDaniel。我没有再遇到这个问题,但是用最新的 Kuberntes 和最新的 Heapster 得到了另一个问题。 kubectl top pod --namespace=kube-system W0813 13:48:08.426536 27831 top_pod.go:263] 指标不适用于 pod kube-system/calico-node-8d5d4,年龄:38m1.426522624s 错误:指标不适用于 pod kube-system/calico-node-8d5d4,年龄:38m1.426522624s。在这种情况下,“印花布”是否会导致问题?如果可以,可以用哪一种来代替印花布?
  • 在这种情况下,是“calico”导致了问题吗?不,我有充分的理由相信,由于 heapster 已被弃用,它不再收集这些指标。当然,你可以在你的大量涌入中四处寻找,看看它是否有任何实际数据,只是没有被kubectl top 浮出水面,或者是否——正如他们所承诺的——他们正在迁移到 metrics-server 和不在乎 heapster 是否工作。
  • 我也相信 Kubernetes 将使用导致“指标不可用”的指标服务器。谢谢马修。
猜你喜欢
  • 2018-11-27
  • 2019-03-16
  • 2020-11-27
  • 2020-02-10
  • 2019-03-03
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多