kube-score:K8s 清单静态检查工具
对 Kubernetes YAML 和 Helm 清单做静态分析,给出可靠性与安全改进建议的命令行工具。
- 浏览
- 2
- 访问
- 0
- 下载
- 0
- 版本
- v1.20.0
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
kube-score 是一款对 Kubernetes 对象定义做静态代码分析的工具。它会扫描你的 YAML 清单与 Chart 渲染结果,输出一份建议列表,指出哪些地方可以改得更安全、更健壮,从而帮助避免线上故障和隐患。
除本地命令行使用外,官网还提供了在线 Demo,可以直接在浏览器里试用。

主要功能
内置的检查项覆盖多个方面(完整列表见仓库的 README_CHECKS.md):
- 容器应设置资源 limits
- Pod 应被
NetworkPolicy选中,建议同时配置 ingress 与 egress 规则 - Deployment 和 StatefulSet 应配置
PodDisruptionPolicy - Deployment 和 StatefulSet 应配置 host PodAntiAffinity
- 容器探针:应配置 readiness,且不应与 liveness 探针完全相同
- 容器 securityContext:以较大的用户/组 ID 运行,不要以 root 或可写 root 文件系统运行
- API 稳定性:有稳定 API 时使用稳定版本(支持 Deployments、StatefulSets、DaemonSet)
安装与使用
安装方式:
- macOS、Linux、Windows 预编译二进制:见 GitHub releases
- Docker:
docker pull zegl/kube-score - Homebrew(macOS / Linux):
brew install kube-score - Krew(macOS / Linux):
kubectl krew install score
配合 Helm 使用:
helm template my-app | kube-score score -
配合 Kustomize 使用:
kustomize build . | kube-score score -
直接检查静态 YAML:
kube-score score my-app/*.yaml
检查已部署到集群中的资源:
kubectl api-resources --verbs=list --namespaced -o name \
| xargs -n1 -I{} bash -c "kubectl get {} --all-namespaces -oyaml && echo ---" \
| kube-score score -
用 Docker 运行:
docker run -v $(pwd):/project zegl/kube-score:latest score my-app/*.yaml
动作(action)包括 score(检查并给出评分和建议)、list(以 CSV 列出所有检查项)、version、help。
常用参数:
--output-format:可选human、json、ci、sarif,默认human;sarif便于接入 CI 平台--exit-one-on-warning:出现 warning 时也以退出码 1 结束--ignore-test:全局禁用某个检查,可重复设置--enable-optional-test:启用某个可选检查,可重复设置--kubernetes-version:按生产环境所用的 Kubernetes 版本调整检查,默认v1.18--ignore-container-cpu-limit/--ignore-container-memory-limit:不再强制要求设置 CPU / 内存 limit
注意事项
kube-score 可以放进 CI/CD 流程:发现严重问题时以退出码 1 结束,从而阻断流水线;通过 --exit-one-on-warning 可以把触发阈值降低到 warning。为了让检查结果最准确,建议把部署到同一 namespace 的所有应用一起作为输入。
单项检查也可以按对象忽略或启用:在对象 metadata 的 annotations 中写 kube-score/ignore 或 kube-score/enable,值为逗号分隔的检查项 ID。例如给 Service 加上 kube-score/ignore: service-type 就会跳过 service-type 检查。
从源码构建需要 Go 1.21 或更高版本:
go build ./cmd/kube-score
本作品整理自 GitHub 开源项目 zegl/kube-score,原作者 @zegl,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v1.20.0当前版本
修复了 seccomp 可选检查(#590),补充 MinReplicasDeployment 与 MinReplicasHPA 测试,完善探针一致性与 JUnit 测试报告文档,更新 Docker 中的 Go 版本并升级多项依赖。
评论