当前位置: 首页 > news >正文

Kubernetes:通过 kubectl 插件 ketall 查看所有APi对象资源

写在前面


  • 分享一个查看集群所有资源的小工具
  • 博文内容涉及:
    • 下载安装
    • 常用命令 Demo
  • 理解不足小伙伴帮忙指正

出其东门,有女如云。虽则如云,匪我思存。缟衣綦巾,聊乐我员。——《郑风·出其东门》


分享一个查看集群所有资源的小工具,正常如果我们要删除集群,需要删除集群的所有 API 资源,需要获取当前命名空间所有的资源,通过命令行的方式可以实现,但是往往不是很简单的命令就可以实现。今天分享的 kubectl 插件可以很方便的获取到当前所有的资源。

如果看一些常见的 API 资源,可以通过下面的命令获取

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-helm-create]
└─$kubectl get all -A

如果获取当前集群。命名空间所有的资源,可以通过下面的命令获取

┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-helm-create]
└─$kubectl api-resources --verbs=list --namespaced -o name   | xargs -n1 -I{} bash -c "echo @@@  {}   @@@  && kubectl get {} -A  && echo ---"

但是上面的命令相关还是很繁琐的,通过 ketall 我们可以很方便

下载安装

如果集群安装了 krew ,并且可以科学上网,可以通过下面的方式

┌──[root@vms81.liruilongs.github.io]-[/etc/kubernetes]
└─$kubectl krew install get-all

如果没有,可以找一台可以科学上网的机器,通过下面的方式获取二进制文件

┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$wget https://github.com/corneliusweig/ketall/releases/download/v1.3.8/ketall-amd64-linux.tar.gz

解压配置为 kubectl 插件

┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$tar -zxvf ketall-amd64-linux.tar.gz
LICENSE
ketall-amd64-linux
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$mv ketall-amd64-linux kubectl-ketall
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$mv kubectl-ketall  /usr/local/bin/
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl ketall version
v1.3.8

使用的话,直接通过 kubectl ketall 的方式使用,也可以单独使用。当前命令为查看集群所有资源

┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl ketall | head -n 10
W0109 10:40:25.597346   21774 warnings.go:70] v1 ComponentStatus is deprecated in v1.19+
W0109 10:40:26.020194   21774 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
NAME                                                                                                               NAMESPACE                   AGE
componentstatus/scheduler                                                                                                                      <unknown>
componentstatus/controller-manager                                                                                                             <unknown>
componentstatus/etcd-0                                                                                                                         <unknown>
configmap/awx-demo-awx-configmap                                                                                   awx                         85d
configmap/awx-operator                                                                                             awx                         85d
configmap/awx-operator-awx-manager-config                                                                          awx                         85d
configmap/kube-root-ca.crt                                                                                         awx                         85d
configmap/kube-root-ca.crt                                                                                         constraints-cpu-example     61d
configmap/kube-root-ca.crt                                                                                         default                     392d
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$

可以根据 资源的年龄进行过滤,下面为过滤出 age 为小于等于 5天的 所有API 资源。

┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl ketall --since 5d
W0109 10:43:15.496160   24555 warnings.go:70] v1 ComponentStatus is deprecated in v1.19+
W0109 10:43:15.917773   24555 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
NAME                                                                                                               NAMESPACE                 AGE
pod/kube-apiserver-vms81.liruilongs.github.io                                                                      kube-system               2d16h
pod/debug-pod                                                                                                      liruilong-topo-namespace  2d17h
pod/k8s-pod-restart-info-collector-5db898f9dc-6x9z5                                                                liruilong-topo-namespace  4d19h
resourcequota/object-quota-count-demo                                                                              liruilong-topo-namespace  32h
resourcequota/object-quota-count-scop-demo                                                                         liruilong-topo-namespace  31h
resourcequota/object-quota-demo                                                                                    liruilong-topo-namespace  40h
resourcequota/object-quota-sc-demo                                                                                 liruilong-topo-namespace  32h
apiservice.apiregistration.k8s.io/v1.crd.projectcalico.org                                                                                   31h
apiservice.apiregistration.k8s.io/v1.monitoring.coreos.com                                                                                   31h
apiservice.apiregistration.k8s.io/v1alpha1.monitoring.coreos.com                                                                             31h
apiservice.apiregistration.k8s.io/v1beta1.awx.ansible.com                                                                                    31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.0ba44ab08120c00b98611822088ab5e72674daaa3b56500037ee8ce6ce939975                            3d17h
ipamhandle.crd.projectcalico.org/k8s-pod-network.12e50c1eb802af492f25d489d3696165750f0edccf7d13159316b9da5e29874e                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.17c7fa0d87a33a8636c08a1b01a0ab168fa5fd5d517444b216e9ea82c6041904                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.2b7e404e213d4cb34947adc9e9521ddb50472ffdb5dddb3f7197bcde33041e51                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.2b885252580cbc6cab440c2714bc2f32770fc72850557673d8aedfb68f44e8f9                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.4acbfc63be210af515b8d9a170d4efc4ae22f2c5ff3e8b7ee6790e1915eb6de8                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.5e26fe6c8d007fd876ba187da472cd2ee2548b814b3377fce47f368fc66c3e91                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.5f1b024ae940d84a4fb506d2a5a4b19f5c7ca4b922f8b32247eea357861122e4                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.8e6c7abaf22ae3f392420974b5cfd619d03ae033b30da18897d6b1fecf5256b2                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.a2027123276da3072f0e3a656e906ed205467c9724e798d7e0a9feecf48265c9                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.a9a44e3c0213868b00d3faf45e5d1d81aed4b3e84c23b86c480ddb50376f2965                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.ac8cda4c20d46a0cf4096155abdb9defc8e92708361b930c89fe33586b975ef1                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.b38bbc9025a9009df14a9c14acf95757cb346008314a37b85358c4765ddbe07a                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.cbb90edf58e008989dd1f6085f4bb329e20fb85a0667263741589dacb6f54c12                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.ced8d70ca681592a3b2468c6a44b411136097bede53e8fb34c0146608e3ff82c                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.e1dd4fa5dd4f4d722e1775823420d5b3d0d0c23e3fdf9d536e360a15320e8a0f                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.e2a3896a4b8ed54596b6482eb789b83477c51e272a0c7af843fdbd4bedeb8af9                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.e3602c57582cc64d2ad21f86d6f00d54ee6dabcd55d7abc4537353ab8a667452                            31h
ipamhandle.crd.projectcalico.org/k8s-pod-network.e6cec51b90d9228e8e07c67df2db29e073e57c6fba48c5ccd7683c15d2fd9500                            4d19h
endpointslice.discovery.k8s.io/metrics-server-n7c7l                                                                kube-system               31h
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$

可以指定命名空间过滤

┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl ketall --namespace=default
NAME                                       NAMESPACE  AGE
configmap/kube-root-ca.crt                 default    392d
endpoints/kubernetes                       default    392d
secret/default-token-f2kn6                 default    392d
serviceaccount/default                     default    392d
service/kubernetes                         default    392d
endpointslice.discovery.k8s.io/kubernetes  default    392d
┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$

多集群可以指定集群过滤

┌──[root@vms81.liruilongs.github.io]-[~/ansible/krew]
└─$kubectl ketall --only-scope=cluster
W0109 10:45:48.207990   27024 warnings.go:70] v1 ComponentStatus is deprecated in v1.19+
W0109 10:45:48.427431   27024 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
NAME                                                                                                               NAMESPACE  AGE
componentstatus/scheduler                                                                                                     <unknown>
componentstatus/controller-manager                                                                                            <unknown>
componentstatus/etcd-0                                                                                                        <unknown>
namespace/awx                                                                                                                 85d
namespace/constraints-cpu-example                                                                                             61d
namespace/default                                                                                                             392d
namespace/ingress-nginx                                                                                                       382d
namespace/kube-node-lease                                                                                                     392d
namespace/kube-public                                                                                                         392d
namespace/kube-system                                                                                                         392d
.................

博文参考


https://github.com/corneliusweig/ketall

相关文章:

Kubernetes:通过 kubectl 插件 ketall 查看所有APi对象资源

写在前面 分享一个查看集群所有资源的小工具博文内容涉及&#xff1a; 下载安装常用命令 Demo 理解不足小伙伴帮忙指正 出其东门&#xff0c;有女如云。虽则如云&#xff0c;匪我思存。缟衣綦巾&#xff0c;聊乐我员。——《郑风出其东门》 分享一个查看集群所有资源的小工具&a…...

Zookeeper3.5.7版本——选举机制(非第一次启动)

目录一、ZooKeeper集群中哪些情况会进入Leader选举二、当一台机器进入Leader选举流程时&#xff0c;当前集群的两种状态2.1、集群中本来就已经存在一个Leader2.2、集群中确实不存在Leader三、Zookeeper中的一些概念了解3.1、SID3.2、ZXID3.3、Epoch一、ZooKeeper集群中哪些情况…...

Python | Leetcode刷题日寄Part05

欢迎交流学习~~ LeetCode & Python 系列&#xff1a; &#x1f3c6; Python | Leetcode刷题日寄Part01 &#x1f50e; Python | Leetcode刷题日寄Part02 &#x1f49d; Python | Leetcode刷题日寄Part03 ✈️ Python | Leetcode刷题日寄Part04 Python|Leetcode刷题日寄Par…...

SpringCloud学习笔记(一)

单体应用架构 在诞⽣之初&#xff0c;拉勾的⽤户量、数据量规模都⽐较⼩&#xff0c;项目所有的功能模块都放在一个工程中编码、编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构。 优点&#xff1a; 高效开发&#xff1a;项⽬前期开发节奏快&#xff0c;团…...

【C语言指针练习题】你真的学会指针了吗?

✨✨✨✨如果文章对你有帮助记得点赞收藏关注哦&#xff01;&#xff01;✨✨✨✨ 文章目录✨✨✨✨如果文章对你有帮助记得点赞收藏关注哦&#xff01;&#xff01;✨✨✨✨一维数组练习题&#xff1a;字符数组练习题&#xff1a;字符指针练习题&#xff1a;二维数组练习题&am…...

java实现UDP及TCP通信

简介UDP(User Datagram Protocol)用户数据报协议&#xff0c;TCP(Transmission Control Protocol) 传输控制协议&#xff0c;是传输层的两个重要协议。UDP是一种无连接、不可靠传输的协议。其将数据源IP、目的地IP和端口封装成数据包&#xff0c;不需要建立连接&#xff0c;每个…...

深度学习-第T1周——实现mnist手写数字识别

深度学习-第T1周——实现mnist手写数字识别深度学习-第P1周——实现mnist手写数字识别一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、导入数据集3、归一化4、可视化图片5、调整图片格式四、构建简单的CNN网络五、编译并训练模型1、设置超参数2、编写训练函数六、预…...

质量保障(QA)和质量控制(QC)

质量保证和质量控制是比较容易混淆的一组概念。定义实施质量保证是执行过程组的一个过程&#xff0c;而质量控制是监控过程组的一个过程。质量保证的定义&#xff1a;审计质量要求和质量控制测量结果&#xff0c;确保采用合理的质量标准和操作性定义的过程。简单地说&#xff0…...

你真的会用三元运算符吗?

在我们日常搬砖中&#xff0c;我们经常会看到三元运算符&#xff0c;但是你了解三元运算符到底是怎么用吗&#xff1f;接下来我们就下来详细介绍一下三元运算符大厂面试题分享 面试题库前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#x…...

TIA博途中使用SCL语言实现选择排序算法并封装成FC全局库

TIA博途中使用SCL语言实现选择排序算法并封装成FC全局库 选择排序算法包括升序和降序2种: 升序排列: 第一轮从数据源中找到最小值排在第一位,第二轮从剩下的数据中寻找最小值排在第二位,依次类推,直到所有数据完成遍历;降序排列: 第一轮从数据源中找到最大值排在第一位,…...

【C++修炼之路】24.哈希应用--位图

每一个不曾起舞的日子都是对生命的辜负 哈希应用--位图哈希应用&#xff1a;位图一.提出问题二.位图概念三.位图代码四.位图应用五.经典问题哈希应用&#xff1a;位图 一.提出问题 问题&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#x…...

4. 字符设备驱动高级--- 下篇

文章目录一、字符设备驱动高级1.1 注册字符设备驱动新接口1.1.1 新接口与旧接口1.1.2 cdev介绍1.1.3 设备号1.1.4 编程实践1.1.5 alloc_chrdev_region自动分配设备号1.1.6 中途出错的倒影式错误处理方法二、字符设备驱动注册代码分析2.1 旧接口register_chrdev2.2 新接口regist…...

ChatGPT介绍以及一些使用案例

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

PCL 点云高斯混合聚类(GMM)

文章目录 一、简介二、算法实现三、实现效果参考资料一、简介 与k均值使用原型向量来刻画聚类结构不同,高斯混合聚类(Mixture-of-Gaussian)采用了概率模型来表达聚类原型。从名字中就可以知晓,该方法将会结合高斯分布来进行聚类过程,该分布的概率密度函数定义如下所示: p (…...

Docker学习(十六)踩坑,如何将对容器的修改同步到基础镜像中

目录1.背景2.解决方法1&#xff09;将容器文件进行归档2&#xff09;创建一个新的 Dockerfile3&#xff09;构建新的基础镜像3.注意事项4.commit命令踩坑记录1.背景 最近接手了一个docker服务&#xff0c;现需要对镜像进行修改&#xff0c;原始的 Dockerfile 已经丢失&#xff…...

食品与疾病关系预测赛题

和鲸平台数据分析实战 题目&#xff1a;食品与疾病关系预测算法赛道 一、赛题描述 食品与疾病关系预测算法赛道 越来越多的证据表明&#xff0c;食物分子与慢性疾病之间存在关联甚至治疗关系。营养成分可能直接或间接地作用于人类基因组&#xff0c;并调节参与疾病风险和疾病…...

Symbol

Symbol是ES6新增的一种基本数据类型 它用来表示独一无二的值&#xff0c; 通过Symbol函数生成 Symbol前面不能加new ,创建symbol类型指的时候传入一个参数&#xff0c;这个参数需要是字符串 使用Symbol函数创建一个symbol类型值&#xff0c;可以给它传入一个字符串参数&#xf…...

NC65 对上年度反结账,调整数据后重新结账后,对本年度年初重算时系统报错:更新记数错误。

1、对上年度反结账,调整数据后重新结账后,对本年度年初重算时系统报错:更新记数错误。 解决方案: 1、在期初余额节点,按Ctrl+ALT+A重建期初凭证; 2、到结账节点,重建余额表,选择有问题的财务核算账簿,注意:会计期间要放空; 3、到期初余额节点,将刚才删除期初数据的…...

位运算相关

文章目录一、求1的个数二、另类加法三、数组中出现一次的数字四、数组中出现一次的数字变形一、求1的个数 二进制中1的个数 法一&#xff1a;逐位判断 根据与&运算 n&10&#xff0c;说明n的最右边一位为0 n&11&#xff0c;说明n的最右边一位为1 所以思路就是&…...

Linux进程信号(产生、保存、处理)/可重入函数概念/volatile理解/SIGCHLD信号

首先区分一下Linux信号跟进程间通信中的信号量&#xff0c;它们的关系就犹如老婆跟老婆饼一样&#xff0c;没有一毛钱的关系。 信号的概念 信号的概念&#xff1a;信号是进程之间事件异步通知的一种方式&#xff0c;属于软中断。比如&#xff1a;红绿灯是一种信号&#xff0c…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...