发布于 2026-01-06 0 阅读
0

如何使用 Datree 强制执行 Kubernetes 最佳实践

如何使用 Datree 强制执行 Kubernetes 最佳实践

“每月DevOps工具”系列文章,我会每月介绍一款2021年新推出的实用DevOps工具🙌🏼

六月份我选择了:Datree 🎉 - 一个 CLI 工具,可以防止 Kubernetes 错误配置影响生产环境!


我们为什么要推行最佳实践🧐

假设你的公司有多个项目团队,开发人员将他们的应用程序部署到 K8s 上。一位负责管理公司 K8s 集群的 DevOps 工程师希望每个项目团队都遵循某些规则,并编写符合最佳实践的 K8s 配置文件

他们希望通过这种方式防止在部署应用程序时,集群中出现任何配置错误或安全问题。

那么,这些最佳实践或不良实践有哪些呢?

做:

  • 为 Pod 中使用的每个镜像指定版本,而不是使用最新的标签。为什么?因为每次拉取镜像时,版本都会不同,这可能会导致代码出错。最佳实践

不:

  • 以 root 权限运行容器。为什么?限制容器的访问权限可以大大提高其安全性。
  • 组件应使用已弃用的 Kubernetes API

手动操作绝对不是个好主意🤷🏻‍♂️

因此,为了避免这些问题,K8s 管理员会定期检查配置,并检查是否存在任何配置错误或安全问题。

Kubernetes 管理员检测到配置问题后,会通知相关团队需要修复这些问题。公司所有集群都需要进行此类通知。但有时,团队可能不会优先处理这些问题,或者会拖延修复。

但是,如果这个验证过程不是自动化的,管理员可能会遗漏一些东西,而配置错误和安全问题最终可能会一直出现在生产环境中。

所以问题是:我们如何才能既让开发人员自行创建这些清单文件,同时又能确保最终进入集群的任何配置都是正确的,并且符合管理员期望的最佳实践规则?🤔

防止K8s配置错误

Datree是什么?它是如何解决这个问题的?😎

实际上非常简单:Datree 允许 K8s 管理员创建他们希望每个团队遵循的策略和最佳实践,然后将这些策略作为自动化检查运行,作为 CI/CD 管道的一部分,甚至在开发工作流的更早阶段作为 pre-commit hook 运行。

Datree 预提交钩子

这样就把配置错误检查移到了前面,防止它们最终进入集群,同时也让开发人员能够立即修复它们,而无需 K8s 管理员进行来回沟通,向开发人员解释为什么以及需要修复什么。

如何使用 Datree 🔥

💡命令行工具💡

这是一个命令行工具,只需一条命令即可安装,这意味着您可以将其安装在任何机器上,并将其集成到任何工具中,并在需要时触发,例如每次开发人员提交更改或创建拉取请求时等。

Datree CLI 输出

因此,真正了解 Kubernetes 并知道如何正确配置 Kubernetes 组件的 Kubernetes 管理员,只需创建一次包含所有规则和最佳实践的策略,然后将其集成到所有团队的开发工作流程中,从而确保公司范围内所有项目都遵循一致的策略。

💡集中式政策💡

而且,要将其集成到多个 CI/CD 流水线中,您实际上无需复制粘贴策略并将其包含在每个项目中。这些策略集中存储在 Datree 中,而不是作为额外的项目文件存储在项目中,因此只需引用这些策略,即可在所有 CI 流水线中使用相同的策略。

💡 Datree 验证 💡

以下三点已得到验证:

  1. YAML:该文件是否为有效的 YAML 文件
  2. Kubernetes Schema:该文件是否为有效的 Kubernetes 文件
  3. 策略:该文件是否符合您的 Kubernetes 策略

💡内置策略💡

除了可以创建策略之外,Datree 还提供了一系列内置策略,几乎涵盖了所有最佳实践。这意味着,设置完成后,您就可以使用这些内置策略来验证 YAML 文件了。👍

内置策略

Datree 实战演示 👩🏻‍💻

视频中,我将向您展示如何轻松设置 Datree 并立即开始验证您的 K8s 配置文件:


本系列接下来还会介绍更多超棒的工具,敬请期待!🎬 😊


点赞、分享并关注我😍,获取更多内容:

文章来源:https://dev.to/techworld_with_nana/how-to-enforce-kubernetes-best-practices-with-datree-4pen