什么是 Datree?
它是一个开源 CLI 实用工具,通过管理策略来防止 Kubernetes 工作负载和 SaaS 平台的错误配置。它验证 Kubernetes YAML 文件。
为什么需要 Datree?
防止 Kubernetes 配置出错。它可以帮助所有者、开发人员管理策略执行,自动检查是否违反规则。使用 Datree 时,不需要与生产集群建立连接。可以从在线 Datree 仪表板应用策略和规则。
Datree 是如何工作的?
- 检查 Yaml 文件的语法是否正确写入。
- Kubernetes 模式验证检查版本是否有效。
- 策略检查:它可以是内存限制、CPU 限制或任何自定义策略检查。
- 它提供了针对 Datree 应用策略运行的 YAML 文件的摘要。
快速简单地实现 Datree
按照官方文档安装 Datree
Nginx 的示例 deployment.yaml 文件
要使用 Datree 验证此 yaml,请运行以下命令:apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
$ datree test deployment.yaml
所以在上图中,可以看到通过的规则总数为 21、失败的规则总数为 9。
已经通过 Datree Dashboard 配置了 30 条规则的默认策略。可以通过 CLI 获取仪表板的链接,如下图所示:
在 Datree 仪表板中,可以根据需要编辑规则,这些规则将在验证部署 YAML 文件时应用。
所以,已经解决了上面配置错误中显示的前四个错误。
更新后的 deployment.yaml
现在如果再次运行命令来检查:apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
resources:
limits:
memory: 200Mi
cpu: 1
requests:
memory: 100Mi
cpu: 100m
ports:
- containerPort: 80
$ datree test deployment.yaml
输出是 Total Rules Failed: 5,之前是 9。
在 deployment 文件中配置了内存请求、CPU 请求、内存限制和 CPU 限制。
因此,这就是 Datree 如何用于标准化和避免 K8s 中的错误配置。