Kor 是一个用于发现未使用的 Kubernetes 资源的工具。以下是 Kor 的安装和使用命令的整理:
GitHub:https://github.com/yonahd/kor
安装 Kor
下载二进制文件
从 Kor 的 GitHub 仓库的 Release 页面 下载适合您操作系统的二进制文件,并将其添加到系统的 PATH 中。
使用 Homebrew(仅限 macOS 用户)
brew install kor
从源代码构建
go install github.com/yonahd/kor@latest
使用 Docker
运行一个容器,并将您的 kubeconfig 挂载到容器中:
docker run --rm -i yonahdissen/kor
docker run --rm -i -v "/path/to/.kube/config:/root/.kube/config" yonahdissen/kor all
作为 Kubectl 插件
kubectl krew install kor
使用 Helm
在集群中作为 cronjob 运行(可选配置为发送 Slack 更新):
helm upgrade -i kor \
--namespace kor \
--create-namespace \
--set cronJob.enabled=true \
./charts/kor
或者作为集群中的部署,暴露 Prometheus 指标:
helm upgrade -i kor \
--namespace kor \
--create-namespace \
./charts/kor
使用 Kor
Kor 提供了多个子命令来识别和列出未使用的资源。可用的命令包括:
all: 获取指定命名空间或所有命名空间的所有未使用资源。
configmap: 获取指定命名空间或所有命名空间的未使用 ConfigMaps。
secret: 获取指定命名空间或所有命名空间的未使用 Secrets。
...(其他资源的命令类似)
支持的旗帜(Flags)
--delete: 删除未使用的资源。
-l, --exclude-labels: 排除标签选择器。
--exclude-namespaces: 排除命名空间。
-h, --help: Kor 的帮助信息。
--include-labels: 包含标签选择器。
-n, --include-namespaces: 运行的命名空间。
-k, --kubeconfig: kubeconfig 文件路径。
--newer-than: 考虑未使用的资源的最大年龄。
--no-interactive: 删除资源时不提示确认。
--older-than: 考虑未使用的资源的最小年龄。
-o, --output: 输出格式(table, json 或 yaml),默认为 "table"。
--slack-auth-token: 发送通知到 Slack 的认证令牌。
--slack-channel: 发送通知到的 Slack 频道。
--slack-webhook-url: 发送通知到的 Slack webhook URL。
-v, --verbose: 详细输出。
示例使用
获取特定命名空间中的所有未使用资源:
kor all --include-namespaces my-namespace
获取特定命名空间中未使用的 ConfigMaps 并尝试删除:
kor configmap --include-namespaces my-namespace --delete
获取帮助信息:
kor [subcommand] --help
注意事项
使用 --delete 旗帜时请谨慎,因为它会删除资源。
可以通过添加 kor/used=true 标签来忽略某些资源。
通过添加 kor/used=false 标签可以强制清理资源。
这些是 Kor 的基本使用命令和旗帜的概述。更多详细信息和资源特定的使用说明,可以通过查看 Kor 的 GitHub 仓库中的 README 文件来获取。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?