阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Kube-capacity CLI 查看 Kubernetes技巧

88次阅读
没有评论

共计 2656 个字符,预计需要花费 7 分钟才能阅读完成。

导读 Kube-capacity 是一个简单而强大的 CLI,它提供了 Kubernetes 集群中资源请求、限制和利用率的概览。它将输出的最佳部分结合 kubectl top 到 kubectl describe 一个易于使用的集中于集群资源的 CLI 中。

Kube-capacity CLI 查看 Kubernetes 技巧

不过像这样的工具确实好用一些,比如我想看这个 kube-system 下有哪些 pod 有没有设置 request 和 limit 的时候,实际上,我需要输入一段很长的命令才能列出,而且需要一些调试, 这看起来不是特别方便。

# kubectl get pod -n kube-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
NAME NAMESPACE PHASE Request-cpu Request-memory Limit-cpu Limit-memory
calico-kube-controllers-7d4c6544cc-g6x6q kube-system Running <none> <none> <none> <none>
calico-node-4fjn8 kube-system Running 250m <none> <none> <none>
calico-node-7nbpj kube-system Running 250m <none> <none> <none>
calico-node-qvdlr kube-system Running 250m <none> <none> <none>
coredns-7977f69688-4nz9q kube-system Running 100m 70Mi <none> 170Mi
coredns-7977f69688-frkt5 kube-system Running 100m 70Mi <none> 170Mi
etcd-k8s-master1 kube-system Running 100m 100Mi <none> <none>
etcd-k8s-master2 kube-system Running 100m 100Mi <none> <none>
etcd-k8s-master3 kube-system Running 100m 100Mi <none> <none>
kube-apiserver-k8s-master1 kube-system Running 250m <none> <none> <none>

那么这个工具实际上解决的问题就是帮助我们快速查看概览整个集群和 pod 的资源配置情况。

安装

Go 二进制文件由 GoReleaser 随每个版本自动构建。这些可以在此项目的 GitHub 发布页面上访问。

  • https://github.com/goreleaser/goreleaser
  •  https://github.com/robscott/kube-capacity/releases
Homebrew

这个项目可以用 Homebrew 安装:

brew tap robscott/tap
brew install robscott/tap/kube-capacity
Krew

这个项目可以用 Krew 安装:

kubectl krew install resource-capacity
用法

默认情况下,kube-capacity 将输出一个节点列表,其中包含 CPU 和内存资源请求的总数以及在它们上运行的所有 pod 的限制。对于具有多个节点的集群,第一行还将包括集群范围的总数。该输出将如下所示:

Kube-capacity CLI 查看 Kubernetes 技巧

包括 Pod

对于更详细的输出,kube-capacity 可以在输出中包含 pod。当 - p 或 –pods 被传递给 kube-capacity 时,它将包含如下所示的特定于 pod 的输出

Kube-capacity CLI 查看 Kubernetes 技巧

包括利用率

为了帮助了解资源利用率与配置的请求和限制的比较,kube-capacity 可以在输出中包含利用率指标。请务必注意,此输出依赖于集群中的 metrics-server 正常运行。当 - u 或 –util 被传递给 kube-capacity 时,它将包含如下所示的资源利用率信息:

Kube-capacity CLI 查看 Kubernetes 技巧

包括 Pod 和利用率

对于更详细的输出,kube-capacity 可以在输出中包含 pod 和资源利用率。当 –util 和 –pods 传递给 kube-capacity 时,它将产生如下所示的宽输出:

Kube-capacity CLI 查看 Kubernetes 技巧

值得注意的是,来自 pod 的利用率数字可能不会与总节点利用率相加。与节点和集群级别数字代表 pod 值总和的请求和限制数字不同,节点指标直接来自指标服务器,并且可能包括其他形式的资源利用率。

排序

要突出显示具有最高指标的节点、pod 和容器,您可以按各种列进行排序:

Kube-capacity CLI 查看 Kubernetes 技巧

显示 Pod 计数

要显示每个节点和整个集群的 pod 数量,可以通过 –pod-count 参数:

Kube-capacity CLI 查看 Kubernetes 技巧

按标签过滤

对于更高级的使用,kube-capacity 还支持按 pod、命名空间和 / 或节点标签进行过滤。以下示例展示了如何使用这些过滤器:

kube-capacity --pod-labels app=nginx kube-capacity --namespace 默认 kube-capacity --namespace-labels team=api kube-capacity --node-labels kubernetes.io/role=node
JSON 和 YAML 输出

默认情况下,kube-capacity 将以表格格式提供输出。要以 JSON 或 YAML 格式查看此数据,可以使用输出标志。以下是一些示例命令:

kube-capacity --pods --output json kube-capacity --pods --containers --util --output yaml

支持的标志

Kube-capacity CLI 查看 Kubernetes 技巧

先决条件

任何请求集群利用率的命令都依赖于集群上运行的 metrics-server。如果尚未安装,您可以使用官方 helm chart 进行安装。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2656字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中