0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kube-capacity CLI的安装与用法

马哥Linux运维 来源:云原生CTO 作者:charts 2022-07-03 15:30 次阅读

使用 Kube-capacity CLI 查看 Kubernetes 资源请求、限制和利用率

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

2894ac30-f947-11ec-ba43-dac502259ad0.png  

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

#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

包括 Pod

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

28bd1bca-f947-11ec-ba43-dac502259ad0.png

包括利用率

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

2894ac30-f947-11ec-ba43-dac502259ad0.png

包括 Pod 和利用率

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

28f83d5e-f947-11ec-ba43-dac502259ad0.png

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

排序

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

290efd00-f947-11ec-ba43-dac502259ad0.png

显示 Pod 计数

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

291c98ca-f947-11ec-ba43-dac502259ad0.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将以表格格式提供输出。要以JSONYAML格式查看此数据,可以使用输出标志。以下是一些示例命令:

kube-capacity--pods--outputjson
kube-capacity--pods--containers--util--outputyaml

支持的标志

29347706-f947-11ec-ba43-dac502259ad0.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
    CLI
    +关注

    关注

    1

    文章

    79

    浏览量

    8541
  • kubernetes
    +关注

    关注

    0

    文章

    224

    浏览量

    8713

原文标题:使用 Kube-capacity CLI 查看 Kubernetes 资源请求、限制和利用率

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DAC7562的CLR引脚怎么用法?可以悬空吗?

    DAC7562的CLR引脚怎么用法?可以悬空吗?能不能详细解释一下?谢谢
    发表于 12-17 08:16

    Linux lsof命令的基本用法

    在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof 命令的基本用法,本文中 demo 的演示环境为 ubuntu 18.04。
    的头像 发表于 10-23 11:52 245次阅读
    Linux lsof命令的基本<b class='flag-5'>用法</b>

    Sn74hc245具体的用法是什么?

    Sn74hc245是缓冲器,但是具体的用法不会
    发表于 09-10 07:32

    请问IR600 CLI如何保存配置?

    请问IR600 CLI如何保存配置?
    发表于 07-25 07:53

    CYW43455使用wpa_cli status和wl status后,会显示不同的频率,为什么?

    你好 IFX, 测试执行 STA 是CYW43455 。 AP 频道 =165 安装无线网络 加入接入点(使用wl join 或 wpa_cli) 通过\"wl status
    发表于 07-05 07:02

    ESP32-C3-DecKitM-1板子运行esp-rainmaker的switch例程,cli provision失败的原因?

    ESP32-C3-DecKitM-1板子运行esp-rainmaker的switch例程,cli provision 失败,显示如下: C:Espressifesp-rainmakercli&
    发表于 06-26 08:11

    ESP-IDF Extension for Visual Studio Code安装错误怎么解决?

    pip._internal.cli.main import main as _main# isort:skip # noqa File "C
    发表于 06-07 07:10

    鸿蒙Ability Kit(程序框架服务)【UIAbility组件基本用法

    UIAbility组件的基本用法包括:指定UIAbility的启动页面以及获取UIAbility的上下文[UIAbilityContext]。
    的头像 发表于 06-06 11:02 469次阅读
    鸿蒙Ability Kit(程序框架服务)【UIAbility组件基本<b class='flag-5'>用法</b>】

    深度解析Istio Proxy边车容器的功能与能力

    在创建Pod的请求到达Kube-apiserver后,首先进行认证鉴权,然后在准入控制阶段 kube-apiserver以REST的方式同步调用sidecar-injector webhook服务进行init容器与istio-proxy容器的注入,最后将Pod对象持久化存
    发表于 03-04 09:43 1565次阅读
    深度解析Istio Proxy边车容器的功能与能力

    如何使用CLI在JTAG链上选择要写入的PSoC6?

    你好, 我想在同一个COOLDIM_PRG_BOARD上安装两个 PSoC6 ,并将它们放在 JTAG 菊花链中的MULTICH_CONNECT_PCB中以写入闪存 ROM。 借助
    发表于 03-04 07:26

    AWTK 开源串口屏开发(10) - 告警信息的高级用法

    告警信息是串口屏常用的功能,之前我们介绍了告警信息的基本用法,实现了告警信息的显示和管理。本文介绍一下实现查询告警信息和查看告警信息详情的方法。1.功能之前我们介绍了告警信息的基本用法,实现了告警
    的头像 发表于 02-24 08:23 307次阅读
    AWTK 开源串口屏开发(10) - 告警信息的高级<b class='flag-5'>用法</b>

    可以使用CLI命令同时使用多个miniprog4(例如,3~4)对多个CCG7x设备进行编程吗?

    我有一个关于使用带有 miniprog4 的 CLI 命令编程 CCG7x 的问题。 我们可以使用 CLI 命令同时使用多个 miniprog4(例如,3~4)对多个 CCG7x 设备进行编程吗? 如果是,你能否详细告诉我如何使用 CL
    发表于 02-22 06:30

    法拉电容放电保护原理是什么?如何正常使用法拉电容?

    法拉电容放电保护原理是什么?如何正常使用法拉电容? 法拉电容放电保护原理是指通过合理的设计和配置,保护法拉电容在放电过程中不受损坏的一种威廉希尔官方网站 手段。法拉电容是一种具有高能量密度和长寿命的电容器
    的头像 发表于 02-02 11:34 1865次阅读

    单片机定时器的用法

    本章以CW32通用定时器为例介绍单片机定时器的用法
    的头像 发表于 01-04 10:37 1396次阅读
    单片机定时器的<b class='flag-5'>用法</b>

    split在python中的用法

    split在python中的用法 split()是Python中一个非常常用的字符串函数,它能够根据指定的分隔符将一个字符串分割成多个子字符串,并返回一个包含这些子字符串的列表。本文将详细介绍
    的头像 发表于 12-25 15:12 2019次阅读