赞
踩
往期精彩:
kubectl top
是一个用于查看 Kubernetes
集群中资源使用情况的命令。它可以显示节点或Pod的CPU、内存和存储的使用情况。该命令要求正确配置Metrics Server
并在服务器上工作。
Metrics Server
是 Kubernetes
内置自动缩放管道的可扩展、高效的容器资源指标来源。Metrics Server
从 Kubelets
收集资源指标,并通过 Metrics API
在 Kubernetes apiserver
中公开它们,以供 Horizontal Pod Autoscaler
和Vertical Pod Autoscaler
使用。Metrics API
也可以通过访问kubectl top
,从而更容易调试自动缩放管道。
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
kubelet-insecure-tls
,如下 containers:
- args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-insecure-tls
image: registry.aliyuncs.com/google_containers/metrics-server:v0.7.0
imagePullPolicy: IfNotPresent
kubectl apply -f components.yaml
命令部署。成功后如下图,这样就可以通过kubectl top
命令查看节点和pod的资源情况。详细的用法可以通过kebectl top pod|node -h
。 以下列举工作中常用的命令:
kubectl top nodes
kubectl top nodes k8s-node1
kubectl top pods -A
-A 是列举所有命名空间的pod,默认是default名空间
kubectl top pods -A --sort-by=cpu
sort-by: 支持两个参数 cpu和memory
kubectl top pod -l k8s-app=kube-dns -A
切换 k8s 集群环境:
kubectl config use-context k8s
Task:
找出标签是name=cpu-user
的Pod,并过滤出使用CPU
最高的 Pod,然后把它的名字写在已经存在的/opt/KUTR00401/KUTR00401.txt
文件里(注意他没有说指定namespace,所以需要使用-A
指定所有 namespace)。
我先在K8S环境新建了两个Pod模拟高CPU的应用,如下图:
解题思路:
#切换集群
kubectl config use-context k8s
# 通过管道符,一条命令把结果保存到文件中
kubectl top pod -l name=cpu-user \
--sort-by=cpu --no-headers=true -A \
| head -n 1 | awk '{print $2}' >> \
/opt/KUTR00401/KUTR00401.txt
- -A:列出所有的命名空间的Pod
- –no-headers=true:返回的结果没有表头,如下图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。