简介
在 Kubernetes 集群管理中,有时需要获取当前命名空间或整个集群的所有 API 资源(例如清理集群)。虽然可以通过命令行组合命令实现,但过程较为繁琐。ketall 是一个 kubectl 插件,可以方便地获取并列出集群中的所有资源。
常规方式获取常见 API 资源:
kubectl get all -A
获取当前集群命名空间所有资源的复杂命令:
kubectl api-resources --verbs=list --namespaced -o name | xargs -n1 -I{} bash -c "echo @@@ {} @@@ && kubectl get {} -A && echo ---"
下载安装
方式一:通过 krew 安装
如果集群已安装 krew 且网络环境允许:
kubectl krew install get-all
方式二:手动下载二进制文件
如果没有 krew 或无法访问相关源,可下载二进制文件:
wget https://github.com/corneliusweig/ketall/releases/download/v1.3.8/ketall-amd64-linux.tar.gz
tar -zxvf ketall-amd64-linux.tar.gz LICENSE ketall-amd64-linux
mv ketall-amd64-linux kubectl-ketall
mv kubectl-ketall /usr/local/bin/
验证安装:
kubectl ketall version
常用命令 Demo
查看集群所有资源
kubectl ketall | head -n 10
输出示例包含警告信息(如组件状态已弃用)及资源列表。
按资源年龄过滤 过滤出创建时间小于等于 5 天的所有 API 资源:
kubectl ketall --since 5d
指定命名空间过滤 仅查看特定命名空间下的资源:
kubectl ketall --namespace=default
多集群指定范围过滤 指定只查看集群级资源(非命名空间级):
kubectl ketall --only-scope=cluster

