Containers illustration
快速跳转

什么是 KubeLinter?

复制 URL

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

了解 KubeLinter 的实际应用

在本实训演示中了解命令行工具的工作原理。

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 还允许整个开源社区的用户参与项目。

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 的关键要素会迎来更多变化。这可能包括配置文件格式、标志和命令使用。

扩展阅读

文章

什么是 DevSecOps?

理解开发、运维和安全团队之间通力合作的重要性。

博客

KubeLinter 在 CNCF 生态系统如何发挥作用

KubeLinter 与容器和安全防护息息相关,一起来探索它在更广大的云原生计算基金会生态系统中,还会扮演什么样的角色。

电子书

Kubernetes 安全状况报告

阅读来自 500 多位 DevOps、工程和安全专业人士的调查结果,了解公司如何采用 Kubernetes。

详细了解容器

新应用、虚拟机和混合云的基础

企业就绪型 Kubernetes 容器平台。

企业就绪型 Kubernetes 原生容器安全防护解决方案,让您能够更安全地构建、部署和运行云原生应用。