往期精彩:
- 提升CKA考試勝算:一文帶你全面了解RBAC權(quán)限控制!
kubectl top
是一個用于查看 Kubernetes
集群中資源使用情況的命令。它可以顯示節(jié)點(diǎn)或Pod的CPU、內(nèi)存和存儲的使用情況。該命令要求正確配置Metrics Server
并在服務(wù)器上工作。
什么是Metrics Server
Metrics Server
是 Kubernetes
內(nèi)置自動縮放管道的可擴(kuò)展、高效的容器資源指標(biāo)來源。Metrics Server
從 Kubelets
收集資源指標(biāo),并通過 Metrics API
在 Kubernetes apiserver
中公開它們,以供 Horizontal Pod Autoscaler
和Vertical Pod Autoscaler
使用。Metrics API
也可以通過訪問kubectl top
,從而更容易調(diào)試自動縮放管道。
安裝Metrics Server
- 先到Metrics Server項(xiàng)目地址,查詢對應(yīng)版本支持那個K8S版本。如下圖:
- 由于我安裝的k8S版本是1.28.2,所以,需要下載上圖的1.21+的版本。執(zhí)行如下的命令:
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
- 修改components.yaml配置文件,把鏡像的地址修改阿里云鏡像,并添加一個參數(shù)
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
- 執(zhí)行
kubectl apply -f components.yaml
命令部署。成功后如下圖,這樣就可以通過kubectl top
命令查看節(jié)點(diǎn)和pod的資源情況。
kubectl top基本用法
詳細(xì)的用法可以通過kebectl top pod|node -h
。 以下列舉工作中常用的命令:
- 查看集群中所有節(jié)點(diǎn)資源使用情況:
kubectl top nodes
- 查看集群中某個節(jié)點(diǎn)資源使用情況
kubectl top nodes k8s-node1
- 查詢集群中所有Pod資源使用情況:
kubectl top pods -A
-A 是列舉所有命名空間的pod,默認(rèn)是default名空間
- 查詢集群中所有Pod資源情況,并安裝CPU利用進(jìn)行排序:
kubectl top pods -A --sort-by=cpu
sort-by: 支持兩個參數(shù) cpu和memory
- 通過lebel值查詢Pod資源情況
kubectl top pod -l k8s-app=kube-dns -A
CKA真題
切換 k8s 集群環(huán)境:
kubectl config use-context k8s
Task:
找出標(biāo)簽是name=cpu-user
的Pod,并過濾出使用CPU
最高的 Pod,然后把它的名字寫在已經(jīng)存在的/opt/KUTR00401/KUTR00401.txt
文件里(注意他沒有說指定namespace,所以需要使用-A
指定所有 namespace)。
我先在K8S環(huán)境新建了兩個Pod模擬高CPU的應(yīng)用,如下圖:
文章來源:http://www.zghlxwxcb.cn/news/detail-826687.html
解題思路:文章來源地址http://www.zghlxwxcb.cn/news/detail-826687.html
#切換集群
kubectl config use-context k8s
# 通過管道符,一條命令把結(jié)果保存到文件中
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:返回的結(jié)果沒有表頭,如下圖
![]()
到了這里,關(guān)于揭秘高效運(yùn)維:如何用kubectl top命令實(shí)時監(jiān)控K8s資源使用情況?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!