什么是 Datree?

它是一个开源 CLI 实用工具,通过管理策略来防止 Kubernetes 工作负载和 SaaS 平台的错误配置。它验证 Kubernetes YAML 文件。

为什么需要 Datree?

防止 Kubernetes 配置出错。它可以帮助所有者、开发人员管理策略执行,自动检查是否违反规则。使用 Datree 时,不需要与生产集群建立连接。可以从在线 Datree 仪表板应用策略和规则。

Datree 是如何工作的?

  1. 检查 Yaml 文件的语法是否正确写入。
  2. Kubernetes 模式验证检查版本是否有效。
  3. 策略检查:它可以是内存限制、CPU 限制或任何自定义策略检查。
  4. 它提供了针对 Datree 应用策略运行的 YAML 文件的摘要。

    快速简单地实现 Datree

    按照官方文档安装 Datree
    Nginx 的示例 deployment.yaml 文件
    1. apiVersion: apps/v1
    2. kind: Deployment
    3. metadata:
    4. name: nginx-deployment
    5. spec:
    6. selector:
    7. matchLabels:
    8. app: nginx
    9. replicas: 2
    10. template:
    11. metadata:
    12. labels:
    13. app: nginx
    14. spec:
    15. containers:
    16. - name: nginx
    17. image: nginx:1.14.2
    18. ports:
    19. - containerPort: 80
    要使用 Datree 验证此 yaml,请运行以下命令:
    1. $ datree test deployment.yaml
    配置错误
    所以在上图中,可以看到通过的规则总数为 21、失败的规则总数为 9。
    已经通过 Datree Dashboard 配置了 30 条规则的默认策略。可以通过 CLI 获取仪表板的链接,如下图所示:
    仪表板链接
    在 Datree 仪表板中,可以根据需要编辑规则,这些规则将在验证部署 YAML 文件时应用。
    用于配置 datree 规则的仪表板
    所以,已经解决了上面配置错误中显示的前四个错误。
    更新后的 deployment.yaml
    1. apiVersion: apps/v1
    2. kind: Deployment
    3. metadata:
    4. name: nginx-deployment
    5. spec:
    6. selector:
    7. matchLabels:
    8. app: nginx
    9. replicas: 2
    10. template:
    11. metadata:
    12. labels:
    13. app: nginx
    14. spec:
    15. containers:
    16. - name: nginx
    17. image: nginx:1.14.2
    18. resources:
    19. limits:
    20. memory: 200Mi
    21. cpu: 1
    22. requests:
    23. memory: 100Mi
    24. cpu: 100m
    25. ports:
    26. - containerPort: 80
    现在如果再次运行命令来检查:
    1. $ datree test deployment.yaml
    解决了 4 个配置规则
    输出是 Total Rules Failed: 5,之前是 9。
    在 deployment 文件中配置了内存请求、CPU 请求、内存限制和 CPU 限制。
    因此,这就是 Datree 如何用于标准化和避免 K8s 中的错误配置。