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 文件来获取。

 

posted on 2024-03-15 13:54  属于我的梦,明明还在  阅读(11)  评论(0编辑  收藏  举报