使用 Kube-capacity CLI 查看 Kubernetes 资源请求、限制和利用率
Kube-capacity
是一个简单而强大的CLI
,它提供了Kubernetes
集群中资源请求、限制和利用率的概览。它将输出的最佳部分结合kubectl top
到kubectl describe
一个易于使用的集中于集群资源的CLI
中。
![2894ac30-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpeASz9qAAEeBt0Wz18835.png)
不过像这样的工具确实好用一些,比如我想看这个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
的限制。对于具有多个节点的集群,第一行还将包括集群范围的总数。该输出将如下所示:
![28a71c30-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpeAQroSAAEwgb5U7fY327.png)
包括 Pod
对于更详细的输出,kube-capacity
可以在输出中包含pod
。当-p
或--pods
被传递给kube-capacity
时,它将包含如下所示的特定于pod
的输出
![28bd1bca-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpeAQ79OAAHVOAV_HkM551.png)
包括利用率
为了帮助了解资源利用率与配置的请求和限制的比较,kube-capacity
可以在输出中包含利用率指标。请务必注意,此输出依赖于集群中的metrics-server
正常运行。当-u
或--util
被传递给kube-capacity
时,它将包含如下所示的资源利用率信息:
![2894ac30-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpeASz9qAAEeBt0Wz18835.png)
包括 Pod 和利用率
对于更详细的输出,kube-capacity
可以在输出中包含pod
和资源利用率。当--util
和--pods
传递给kube-capacity
时,它将产生如下所示的宽输出:
![28f83d5e-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpiAMUSHAAG4IqPLn34652.png)
值得注意的是,来自pod
的利用率数字可能不会与总节点利用率相加。与节点和集群级别数字代表pod
值总和的请求和限制数字不同,节点指标直接来自指标服务器,并且可能包括其他形式的资源利用率。
排序
要突出显示具有最高指标的节点、pod
和容器,您可以按各种列进行排序:
![290efd00-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpiAfoT7AAETSBErr9o940.png)
显示 Pod 计数
要显示每个节点和整个集群的pod
数量,可以通过--pod-count
参数:
![291c98ca-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpiAZAeEAAEskKXHLSs723.png)
按标签过滤
对于更高级的使用,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
支持的标志
![29347706-f947-11ec-ba43-dac502259ad0.png](https://file1.elecfans.com//web2/M00/95/8F/wKgZomTnBpiASxomAAIvlqjifmQ673.png)
先决条件
任何请求集群利用率的命令都依赖于集群上运行的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浏览量
6500 -
CLI
+关注
关注
1文章
79浏览量
8541 -
kubernetes
+关注
关注
0文章
224浏览量
8713
原文标题:使用 Kube-capacity CLI 查看 Kubernetes 资源请求、限制和利用率
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
Linux lsof命令的基本用法
![Linux lsof命令的基本<b class='flag-5'>用法</b>](https://file1.elecfans.com/web1/M00/F3/7F/wKgaoWcYc2mAFw5cAAA4fI5XmGk856.png)
CYW43455使用wpa_cli status和wl status后,会显示不同的频率,为什么?
ESP32-C3-DecKitM-1板子运行esp-rainmaker的switch例程,cli provision失败的原因?
ESP-IDF Extension for Visual Studio Code安装错误怎么解决?
鸿蒙Ability Kit(程序框架服务)【UIAbility组件基本用法】
![鸿蒙Ability Kit(程序框架服务)【UIAbility组件基本<b class='flag-5'>用法</b>】](https://file1.elecfans.com/web2/M00/EC/1E/wKgZomZhJtuAGvhjAACAmnpjgBM543.png)
深度解析Istio Proxy边车容器的功能与能力
![深度解析Istio Proxy边车容器的功能与能力](https://file1.elecfans.com/web2/M00/C2/76/wKgZomXlKIaAUNPIAAAbLTUpB6o222.png)
如何使用CLI在JTAG链上选择要写入的PSoC6?
AWTK 开源串口屏开发(10) - 告警信息的高级用法
![AWTK 开源串口屏开发(10) - 告警信息的高级<b class='flag-5'>用法</b>](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
评论