什么是 KubeLinter?

复制 URL

KubeLinter 是一种开源静态分析工具,又被称为 lintlinter 工具,用于识别 Kubernetes 部署中的配置错误和编程错误。这种命令行工具自动分析 YAML 文件Helm 图表,针对 Kubernetes 的配置安全性最佳实践进行分析。

阅读博客文章

Kubernetes,又叫 K8s,因其卓越的部署、管理和扩展容器化应用的能力而广受欢迎,但其保护容器的能力却鲜有人知。Kubernetes 配置通常也在 YAML 文件中定义,这些文件是人类可读的,但仍不容易理解和大规模生成有效配置。仅在复杂的 YAML 中进行静态验证无法轻易捕获错误和违规行为,从而可能会暴露安全问题。

而安全正是重中之重。

根据红帽的 2021 年 Kubernetes 采用、安全和市场趋势报告,超过一半的受访者表示,出于安全考虑,他们推迟将 Kubernetes 应用部署到生产环境中,其中 94% 的人在 2020 年经历了至少一起与 Kubernetes 相关的安全事件。这主要是由于人为错误造成的,其中手动输入的错误配置占报告案例的 67%。

而这,正好就是 KubeLinter 的用武之地。

这款 lint 工具由 StackRox(2021 初被红帽收购)在 2020 年底推出,专门用于在开发初期防止安全错误并改善跨 Kubernetes 部署的准确配置。它执行配置文件检查,并可与持续集成(CI)系统一起使用,以简化更新 YAML 文件和 Helm 图表的过程,同时采用 DevSecOps 最佳实践。

作为 Apache 2.0 许可证下可用的开源工具,KubeLinter 还允许整个开源社区的用户参与项目。

在 GitHub 中探索 KubeLinter

红帽资源

KubeLinter 采用图表路径并运行一系列测试来验证图表是否格式正确且无错误,以此来验证 Kubernetes 集群的设置是否正确以及在部署之前编程错误是否已修复。然后,它会针对发现的导致图表安装失败的任何内容发送 lint 错误消息,或者针对与安全最佳实践不相符的任何内容发送警告消息。

KubeLinter 秉持简单易用的设计理念。它预封装了 40 个内置 lint 检查,用于检查常见的 K8s 错误配置,例如以用户身份运行容器、不匹配的选择器以及以机密方式存储敏感数据。它支持自定义检查的配置,并允许用户将配置作为代码,从而可以更早地将安全防护构建到应用开发过程中。

KubeLinter 可以灵活地进行配置。用户可以创建、启用和禁用他们自己的自定义规则,只需对工作流程进行少量更改,并就错误配置和安全违规提供近乎即时的反馈。

KubeLinter 可以添加到任何持续集成/持续交付(CI/CD)工具中——包括 GitHub Action、Jenkins、CircleCI 和 Travis CI——并且可以自动检查和识别应用配置中的错误。这有助于开发人员进行修复,并且可以自动查看整个生产管道中的问题。

KubeLinter 默认检查也始终以安全防护为核心,因此如果用户想以不安全的方式配置 Kubernetes,则必须手动选择加入。

KubeLinter 只需几分钟就能下载和安装。它是使用人类可读的 Go 编程语言开发的独立二进制文件,可与 kubectl 相媲美,并且由几个相同的软件包组成。

安装 KubeLinter,您可以使用 Go 建立本地命令行界面,使用预构建的 Docker 容器, 使用 Homebrew 安装,或自行从源代码构建。安装后,将该工具指向您的 Helm 图表和 Kubernetes YAML 文件,马上就能获得结果。

由于它是一种开源工具,随着进一步开发,我们可以期待,KubeLinter 的关键要素会迎来更多变化。这可能包括配置文件格式、标志和命令使用。

查看 KubeLinter 安装提示
中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是 Podman Desktop?

Podman Desktop 是一款免费的开源工具,可简化在本地开发人员环境中使用容器的过程。

一文带你看懂 Helm 是什么?K8s 和 Helm 的关系

Helm 是一款用于 Kubernetes 的软件包管理器,内含将应用部署到集群所需的各种代码和资源。Helm 可通过 Helm 图表这种打包格式来实现应用的自动分发,从而简化这一过程。

什么是 InstructLab?

InstructLab 是一个用于增强大型语言模型(LLM)的开源项目。

开源 相关资源

相关文章