如何查看Kubernetes集群中哪个Pod占用CPU最高?
-
下载Metrics Server的部署文件:
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
- 编辑下载的
components.yaml
文件,以便Metrics Server可以与kubelet进行安全通信。
spec: containers: - args: - --cert-dir=/tmp - --secure-port=4443 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname - --kubelet-use-node-status-port - --metric-resolution=15s - --kubelet-insecure-tls #取消安全认证 image: registry.aliyuncs.com/k8sxio/metrics-server:v0.5.0 #修改镜像地址,方便下载 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3
3、使用kubectl命令将Metrics Server部署到集群中:
kubectl apply -f components.yaml
4、等待部署完成后,可以使用以下命令来检查Metrics Server的状态:
kubectl get deployment metrics-server -n kube-system
部署完成后,就可以使用
kubectl top pod 命令来查看Pod的资源使用情况了。
kubectl top pod --sort-by=cpu -A # 跟进cpu排序
如果报错:
1018 09:38:20.818715 1 server.go:188] "Failed probe" probe="metric-storage-ready" err="not metrics to serve" I1018 09:38:30.817510 1 server.go:188] "Failed probe" probe="metric-storage-ready" err="not metrics to serve" E1018 09:38:34.637375 1 scraper.go:139] "Failed to scrape node" err="GET \"https://172.16.200.102:10250/stats/summary?only_cpu_and_memory=true\": bad status code \"403 Forbidden\"" node="k8s-master" E1018 09:38:34.645875 1 scraper.go:139] "Failed to scrape node" err="GET \"https://172.16.200.98:10250/stats/summary?only_cpu_and_memory=true\": bad status code \"403 Forbidden\"" node="k8s-node1"
那大概是image镜像版本问题
后来我改为: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.2
成功运行了!