
Kor是一款Kubernetes未使用资源发现工具,旨在帮助用户识别和清理集群中的冗余资源。通过扫描集群资源并分析其使用情况,Kor能够列出多种未被使用的Kubernetes资源,从而优化集群资源利用率,减少资源浪费。
Docker运行
通过Docker容器运行Kor,需挂载kubeconfig文件以访问Kubernetes集群:
sh# 基本运行(使用默认配置) docker run --rm -i yonahdissen/kor # 挂载本地kubeconfig并检查所有未使用资源 docker run --rm -i -v "/path/to/.kube/config:/root/.kube/config" yonahdissen/kor all
Helm部署
Kor可通过Helm chart部署到Kubernetes集群中,支持两种部署模式:
1. 作为CronJob运行(支持Slack通知)
shhelm upgrade -i kor \ --namespace kor \ --create-namespace \ --set cronJob.enabled=true \ ./charts/kor
2. 作为Deployment运行(暴露Prometheus指标)
shhelm upgrade -i kor \ --namespace kor \ --create-namespace \ ./charts/kor
子命令说明
Kor提供多种子命令用于识别不同类型的未使用资源,常用命令包括:
all - 获取指定命名空间或所有命名空间的所有未使用资源configmap - 获取指定命名空间或所有命名空间的未使用ConfigMapssecret - 获取指定命名空间或所有命名空间的未使用Secretsservices - 获取指定命名空间或所有命名空间的未使用Servicesserviceaccount - 获取指定命名空间或所有命名空间的未使用ServiceAccountsdeployments - 获取指定命名空间或所有命名空间的未使用Deploymentsstatefulsets - 获取指定命名空间或所有命名空间的未使用StatefulSetsrole - 获取指定命名空间或所有命名空间的未使用Rolesclusterrole - 获取集群中未使用的ClusterRoles(命名空间参数指RoleBinding)hpa - 获取指定命名空间或所有命名空间的未使用HPAspods - 获取指定命名空间或所有命名空间的未使用Podspvc - 获取指定命名空间或所有命名空间的未使用PVCspv - 获取集群中未使用的PVs(非命名空间资源)storageclasses - 获取集群中未使用的StorageClasses(非命名空间资源)ingress - 获取指定命名空间或所有命名空间的未使用Ingressespdb - 获取指定命名空间或所有命名空间的未使用PDBscrd - 获取集群中未使用的CRDs(非命名空间资源)jobs - 获取指定命名空间或所有命名空间的未使用Jobsreplicasets - 获取指定命名空间或所有命名空间的未使用ReplicaSetsdaemonsets - 获取指定命名空间或所有命名空间的未使用DaemonSetsfinalizers - 获取指定命名空间或所有命名空间中处于待删除状态的未使用资源exporter - 导出Prometheus指标version - 打印Kor版本信息使用示例:
sh# 检查指定命名空间"my-namespace"中的所有未使用资源 kor all --include-namespaces my-namespace # 查看特定子命令的帮助信息 kor configmap --help
支持的标志
Kor提供多种标志用于自定义资源检查和输出:
| 标志 | 说明 | 示例 |
|---|---|---|
--delete | 删除未使用资源 | kor secret --delete |
-l, --exclude-labels | 用于过滤排除的标签选择器(若设置--include-labels则此标志被忽略) | --exclude-labels key1=value1,key2=value2 |
--exclude-namespaces | 要排除的命名空间(逗号分隔,若设置--include-namespaces则此标志被忽略) | --exclude-namespaces ns1,ns2,ns3 |
-h, --help | 显示帮助信息 | kor all --help |
--include-labels | 用于过滤包含的标签选择器 | --include-labels key1=value1,key2=value2 |
-n, --include-namespaces | 要检查的命名空间(逗号分隔) | --include-namespaces ns1,ns2,ns3 |
-k, --kubeconfig | kubeconfig文件路径(可选) | --kubeconfig /path/to/config |
--newer-than | 资源被视为未使用的最大年龄(不能与--older-than同时使用) | --newer-than=1h2m |
--no-interactive | 删除资源时不提示确认(谨慎使用) | kor pvc --delete --no-interactive |
--older-than | 资源被视为未使用的最小年龄(不能与--newer-than同时使用) | --older-than=1h2m |
-o, --output | 输出格式(table、json或yaml,默认table) | --output json |
--slack-auth-token | Slack认证令牌(需同时设置--slack-channel) | --slack-auth-token xoxb-xxx |
--slack-channel | Slack通知频道(需同时设置--slack-auth-token) | --slack-channel #k8s-alerts |
--slack-webhook-url | Slack Webhook URL用于发送通知 | --slack-webhook-url https://hooks.slack.com/... |
-v, --verbose | 详细输出(打印空命名空间) | kor all -v |
访问项目GitHub仓库获取完整文档:https://github.com/yonahd/kor
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务