使用 Kube-capacity CLI 查看 Kubernetes 資源請求、限制和利用率
Kube-capacity
是一個簡單而強大的CLI
,它提供了Kubernetes
集群中資源請求、限制和利用率的概覽。它將輸出的最佳部分結合kubectl top
到kubectl describe
一個易于使用的集中于集群資源的CLI
中。
不過像這樣的工具確實好用一些,比如我想看這個kube-system
下有哪些pod
有沒有設置request
和limit
的時候,實際上,我需要輸入一段很長的命令才能列出,而且需要一些調試,這看起來不是特別方便
#kubectlgetpod-nkube-system-o=custom-columns=NAME:.metadata.name,NAMESPACE:.metadata.namespace,PHASE:.status.phase,Request-cpu:.spec.containers[0].resources.requests.cpu,Request-memory:.spec.containers[0].resources.requests.memory,Limit-cpu:.spec.containers[0].resources.limits.cpu,Limit-memory:.spec.containers[0].resources.limits.memory
NAMENAMESPACEPHASERequest-cpuRequest-memoryLimit-cpuLimit-memory
calico-kube-controllers-7d4c6544cc-g6x6qkube-systemRunning
calico-node-4fjn8kube-systemRunning250m
calico-node-7nbpjkube-systemRunning250m
calico-node-qvdlrkube-systemRunning250m
coredns-7977f69688-4nz9qkube-systemRunning100m70Mi170Mi
coredns-7977f69688-frkt5kube-systemRunning100m70Mi170Mi
etcd-k8s-master1kube-systemRunning100m100Mi
etcd-k8s-master2kube-systemRunning100m100Mi
etcd-k8s-master3kube-systemRunning100m100Mi
kube-apiserver-k8s-master1kube-systemRunning250m
那么這個工具實際上解決的問題就是幫助我們快速查看概覽整個集群和pod
的資源配置情況
安裝
Go
二進制文件由GoReleaser
隨每個版本自動構建。這些可以在此項目的GitHub
發布頁面上訪問。
https://github.com/goreleaser/goreleaser
https://github.com/robscott/kube-capacity/releases
Homebrew
這個項目可以用Homebrew
安裝:
brewtaprobscott/tap
brewinstallrobscott/tap/kube-capacity
Krew
這個項目可以用Krew
安裝:
kubectlkrewinstallresource-capacity
用法
默認情況下,kube-capacity
將輸出一個節點列表,其中包含CPU
和內存資源請求的總數以及在它們上運行的所有pod
的限制。對于具有多個節點的集群,第一行還將包括集群范圍的總數。該輸出將如下所示:
包括 Pod
對于更詳細的輸出,kube-capacity
可以在輸出中包含pod
。當-p
或--pods
被傳遞給kube-capacity
時,它將包含如下所示的特定于pod
的輸出
包括利用率
為了幫助了解資源利用率與配置的請求和限制的比較,kube-capacity
可以在輸出中包含利用率指標。請務必注意,此輸出依賴于集群中的metrics-server
正常運行。當-u
或--util
被傳遞給kube-capacity
時,它將包含如下所示的資源利用率信息:
包括 Pod 和利用率
對于更詳細的輸出,kube-capacity
可以在輸出中包含pod
和資源利用率。當--util
和--pods
傳遞給kube-capacity
時,它將產生如下所示的寬輸出:
值得注意的是,來自pod
的利用率數字可能不會與總節點利用率相加。與節點和集群級別數字代表pod
值總和的請求和限制數字不同,節點指標直接來自指標服務器,并且可能包括其他形式的資源利用率。
排序
要突出顯示具有最高指標的節點、pod
和容器,您可以按各種列進行排序:
顯示 Pod 計數
要顯示每個節點和整個集群的pod
數量,可以通過--pod-count
參數:
按標簽過濾
對于更高級的使用,kube-capacity
還支持按pod
、命名空間和/或節點標簽進行過濾。以下示例展示了如何使用這些過濾器:
kube-capacity--pod-labelsapp=nginx
kube-capacity--namespace默認
kube-capacity--namespace-labelsteam=api
kube-capacity--node-labelskubernetes.io/role=node
JSON 和 YAML 輸出
默認情況下,kube-capacity
將以表格格式提供輸出。要以JSON
或YAML
格式查看此數據,可以使用輸出標志。以下是一些示例命令:
kube-capacity--pods--outputjson
kube-capacity--pods--containers--util--outputyaml
支持的標志
先決條件
任何請求集群利用率的命令都依賴于集群上運行的metrics-server
。如果尚未安裝,您可以使用官方helm chart
進行安裝。
https://github.com/helm/charts/tree/master/stable/metrics-server
https://github.com/kubernetes-incubator/metrics-server
原文標題:使用 Kube-capacity CLI 查看 Kubernetes 資源請求、限制和利用率
文章出處:【微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
-
Capacity
+關注
關注
0文章
2瀏覽量
6497 -
CLI
+關注
關注
1文章
79瀏覽量
8530 -
kubernetes
+關注
關注
0文章
223瀏覽量
8696
原文標題:使用 Kube-capacity CLI 查看 Kubernetes 資源請求、限制和利用率
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論