如何在Kubernetes中获取Pod的资源使用情况?

Tan*_* Le 7 kubernetes heapster

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

  1. 堆-

    我使用以下命令部署了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
    
    Run Code Online (Sandbox Code Playgroud)

    使用时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:)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 指标服务器:

    metrics-server不支持kubectl top Resource Metrics API

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

mda*_*iel 2

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

听起来好像堆部署只是忘记安装Servicefor heapster; 我希望这会让你克服这个错误,但不知道它是否真的会导致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
Run Code Online (Sandbox Code Playgroud)