热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

KubecapacityCLI查看Kubernetes技巧

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

不过像这样的工具确实好用一些,比如我想看这个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 calico-node-4fjn8 kube-system Running 250m calico-node-7nbpj kube-system Running 250m calico-node-qvdlr kube-system Running 250m coredns-7977f69688-4nz9q kube-system Running 100m 70Mi 170Mi coredns-7977f69688-frkt5 kube-system Running 100m 70Mi 170Mi etcd-k8s-master1 kube-system Running 100m 100Mi etcd-k8s-master2 kube-system Running 100m 100Mi etcd-k8s-master3 kube-system Running 100m 100Mi kube-apiserver-k8s-master1 kube-system Running 250m

那么这个工具实际上解决的问题就是帮助我们快速查看概览整个集群和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 的限制。对于具有多个节点的集群,第一行还将包括集群范围的总数。该输出将如下所示:

包括 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-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

支持的标志

先决条件

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


推荐阅读
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文探讨了如何在 Spring MVC 框架下,通过自定义注解和拦截器机制来实现细粒度的权限管理功能。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文总结了软件工程课程M1和M2阶段的个人收获,包括项目开发中的技术学习、团队协作及管理经验。同时,对《构建之法》一书中的相关问题进行了理解和分析。 ... [详细]
  • Ubuntu 14.04 系统安装后网卡名称修改方法
    本文介绍了在安装 Ubuntu 14.04 Server 版本后,如何将默认的网卡名称从非 eth 格式修改为传统的 eth 格式,并提供了详细的步骤和示例。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • kubernetes官网关于nodelocaldns缓存的介绍 ... [详细]
  • k8s之Service介绍
    1、Service是什么?​Service是一种k8s集群中访问pod的一种策略。k8s中的pod具有生命周期,且不可复活。每个pod有着自己的IP地址,pod的销毁与创建都会创新 ... [详细]
  • k8snamespace配置cpu最大和最小限额
    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。问:如何为namespace配置最大和最小限额&#x ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
author-avatar
_流星_123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有