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

    浏览量

    6634
  • CLI
    CLI
    +关注

    关注

    1

    文章

    80

    浏览量

    8965
  • kubernetes
    +关注

    关注

    0

    文章

    256

    浏览量

    9405

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言的printf基本用法介绍

    中使用频率最高的一个函数一点也不为过,每个C语言程序员都应该掌握 printf 的用法,这是最基本的技能。 不过 printf 的用法比较灵活,也比较复杂,初学者知识储备不足,不能一下子掌握,目前
    发表于 11-12 07:04

    飞凌嵌入式ElfBoard-Vim编辑器之GCC编译器的安装

    apt-get install build-essential 也可以通过简单的命令安装gcc: elf@ubuntu:~$ sudo apt install gcc GCC的编译选项 GCC的基本用法是:gcc [选项] 文件名
    发表于 10-15 08:44

    一步步教你正确的电磁流量计安装

    看似微小的失误,却会直接导致系统运行异常。今天简单出一期电磁流量计安装“避坑”指南,帮你从根源避开这些坑。 首先了解一下电磁流量计,电磁流量计是应用法拉第电磁感应定律,根据导电流体通过外夹磁场时感生的电动势来
    的头像 发表于 09-06 10:38 3265次阅读
    一步步教你正确的电磁流量计<b class='flag-5'>安装</b>

    【HZ-T536开发板免费体验】Docker 环境安装及应用

    ; /dev/null 安装 Docker 引擎: sudo apt update 更新失败,继续 sudo apt install docker-ce docker-ce-cli
    发表于 09-01 17:59

    【RA4E2开发板评测】1、开发板开箱与环境搭建,rfp-cli.exe命令行烧录

    软件 安装后打开 出错 查看安后目录有rfp-cli.exe命令行工具 MODE CONFIG**配置成sci boot模式 连接带自己USB-com接口tx,rx到usb *找到编译后hex文件
    发表于 08-26 09:44

    是否可以通过 CLI 在 Linux 上通过 Nu-Link 对 M2354 MCU 进行编程?

    是否可以通过 CLI 在 Linux 上通过 Nu-Link 对 M2354 MCU 进行编程? 我正在尝试从运行 armbian 最小版本的基于 arm 的 PC 对 M2354 MCU 进行编程,而无需 GUI。
    发表于 08-18 08:10

    请问IR600 CLI 如何保存配置?

    IR600 CLI 如何保存配置?
    发表于 08-06 07:51

    【RA-Eco-RA6M4开发板评测】2、移植FreeRTOS_CLI和添加自定义指令

    FreeRTOS提供多种软件组件为用户提供不同的功能,这里介绍如何移植其中的FreeRTOS-CLI命令行工具到RA6M4开发板上。 1、工程配置 参考下面的帖子中创建工程的过程,初始化开发板的串口
    发表于 07-23 11:34

    【RA4L1-SENSOR】4、移植FreeRTOS-CLI

    FreeRTOS提供有不同的组件为用户提供不同的功能,本文移植其中的FreeRTOS-CLI命令行工具到RA4L1-Sensor开发板上。 1、工程配置 参考下面的帖子中创建工程的过程,创建
    发表于 06-26 22:30

    【幸狐Omni3576边缘计算套件试用体验】Redis最新8.0.2版本源码安装及性能测试

    可执行程序都安装了,安装目录为/usr/local/bin,可以用which redis-cli命令验证: 三、运行Redis基准测试 3.1 查看redis-server用法 初次
    发表于 06-03 01:28

    UIAbility组件基本用法说明

    UIAbility组件基本用法 UIAbility组件的基本用法包括:指定UIAbility的启动页面以及获取UIAbility的上下文UIAbilityContext。 指定UIAbility
    发表于 05-16 06:32

    同样的代码在官方开发板上运行正常,在自己板子上就跑不起来,怎么办?

    下载Blinky程序去点亮它,Blinky程序所在SDK目录为:SDK安装目录examplesperipheralblinky。如果你的板子没有LED,但有UART的话,可以下载CLI代码去进行
    的头像 发表于 05-12 15:26 574次阅读
    同样的代码在官方开发板上运行正常,在自己板子上就跑不起来,怎么办?

    harmony OS NEXT-Navagation基本用法

    # Navagation基本用法 > Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,其内部默认包含了标题栏,内容栏和公工具栏,其中内容区默认首页显示导航内容
    的头像 发表于 04-27 17:39 691次阅读

    如何将ENWF9408AVEF Wi-Fi模块添加到1064EVK wifi_cli SDK项目中?

    如何将 松下 ENWF9408AVEF (NXP 88W8977) Wi-Fi 模块添加到 1064EVK wifi_cli SDK 项目中? 使用不同的 88W8977 定义初始化失败
    发表于 04-02 07:50

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

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