0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Datree开源工具防止错误配置乱入k8s生产环境

马哥Linux运维 来源:马哥Linux运维 2023-07-17 11:51 次阅读

什么是 Datree?

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

为什么需要 Datree?

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

Datree 是如何工作的?

检查 Yaml 文件的语法是否正确写入。

Kubernetes 模式验证检查版本是否有效。

策略检查:它可以是内存限制、CPU 限制或任何自定义策略检查。

它提供了针对 Datree 应用策略运行的 YAML 文件的摘要。

让我们快速简单地实现 Datree

按照官方文档[1]安装 Datree

nginx 的示例 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
ports:
-containerPort:80

要使用 Datree 验证此 yaml,请运行以下命令:

$datreetestdeployment.yaml
f8afb478-23e4-11ee-962d-dac502259ad0.png配置错误

所以在上图中,我们可以看到通过的规则总数为 21、失败的规则总数为 9。

我已经通过 Datree Dashboard 配置了 30 条规则的默认策略。可以通过 CLI 获取仪表板的链接,如下图所示:

f904c440-23e4-11ee-962d-dac502259ad0.png仪表板链接

在 Datree 仪表板中,我们可以根据需要编辑规则,这些规则将在验证部署 YAML 文件时应用。

f92d3344-23e4-11ee-962d-dac502259ad0.png用于配置 datree 规则的仪表板

所以,我已经解决了上面配置错误中显示的前四个错误。

更新后的 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

现在如果我们再次运行命令来检查:

$datreetestdeployment.yaml
f95f4442-23e4-11ee-962d-dac502259ad0.png解决了 4 个配置规则

输出是Total Rules Failed: 5,之前是 9。

我们在 deployment 文件中配置了内存请求、CPU 请求、内存限制和 CPU 限制。

因此,这就是 Datree 如何用于标准化和避免 K8s 中的错误配置。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206560
  • 开源
    +关注

    关注

    3

    文章

    2985

    浏览量

    41718
  • CLI
    CLI
    +关注

    关注

    1

    文章

    79

    浏览量

    8404
  • kubernetes
    +关注

    关注

    0

    文章

    219

    浏览量

    8567

原文标题:这个开源工具防止错误配置乱入k8s生产环境

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解决方案与选型对比

    、容器内日志、容器stdout。针对每种数据源都有对应的采集软件,但缺乏一站式解决方案。弹性伸缩难:k8s是一个分布式的集群,服务、环境的弹性伸缩对于日志采集带来了很大的困难,采集的动态性以及数据完整性
    发表于 02-28 12:49

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解决方案与选型对比

    、容器内日志、容器stdout。针对每种数据源都有对应的采集软件,但缺乏一站式解决方案。弹性伸缩难:k8s是一个分布式的集群,服务、环境的弹性伸缩对于日志采集带来了很大的困难,采集的动态性以及数据完整性
    发表于 02-28 12:50

    再次升级!阿里云Kubernetes日志解决方案

    daemon set模式运行,保证每个节点都有一个Logtail容器在运行使用自定义标识机器组,支持集群动态缩/扩容所有的采集配置支持通过docker lable以及环境变量过滤指定容器K8S内部会注册
    发表于 05-28 19:08

    K8S容器编排的互通测试

    K8S容器编排之NetWorkPolicy官方实例
    发表于 06-06 11:28

    k8s核心原理学习指南3

    k8s学习3 - 核心原理
    发表于 09-25 16:37

    K8s 从懵圈到熟练 – 集群网络详解

    。鸟瞰总体上来说,阿里云 K8S 集群网络配置完成之后,如下图所示:包括集群 CIDR、VPC 路由表、节点网络、节点的 podCIDR、节点上的虚拟网桥 cni0、连接 Pod 和网桥的 veth 等
    发表于 10-14 15:06

    K8s 从懵圈到熟练 – 镜像拉取这件小事

    下载。K8s 实现的私有镜像自动拉取基本功能K8s 集群一般会管理多个节点,每个节点都有自己的 docker 环境。如果让用户分别到集群节点上登录镜像仓库,这显然是很不方便的。为了解决这个问题,
    发表于 10-14 15:38

    从零开始入门 K8s | 应用存储和持久化数据卷:核心知识

    还是存在的,下次 pod 使用的时候,就可以直接通过 PVC 去复用。K8s 中的 StatefulSet 管理的 Pod 带存储的迁移就是通过这种方式。三、操作演示接下来,我会在实际的环境中给大家
    发表于 10-15 14:55

    从零开始入门 K8s | 应用存储和持久化数据卷:存储快照与拓扑调度

    等动作,如进行环境的复制、数据开发等功能时,都可以通过存储快照来满足需求,而 K8s 中通过 CSI Snapshotter controller 来实现存储快照的功能。存储快照用户接口
    发表于 10-15 15:07

    从零开始入门 K8s | 可观测性:你的应用健康吗?

    问题之后,首先要做的事情是要降低影响的范围,进行问题的调试与诊断。最后当出现问题的时候,理想的状况是:可以通过和 K8s 集成的自愈机制进行完整的恢复。二、Liveness 与 Readiness本
    发表于 10-15 15:32

    从零开始入门 K8s | 应用存储和持久化数据卷:核心知识

    同存储的 driver 实现从 K8s 代码仓库中剥离,因此 out-of-tree 是后面社区主推的一种实现网络存储插件的方式;Projected Volumes:它其实是将一些配置信息,如
    发表于 10-16 10:10

    k8s volume中的本地存储和网络存储

    八 、 k8s volume 本地存储和网络存储
    发表于 03-25 08:44

    搭建K8s环境平台的步骤

    1 搭建K8s环境平台规划1.1 单master集群1.2 多master集群
    发表于 11-04 06:03

    k8s集群环境中工作有多快

    命令就会很低效。 今天介绍3个工具会让你在多k8s集群环境中工作的很轻松。我将从以下几个方面来评估工具实用性: 速度 如果你有多个k8s
    的头像 发表于 05-29 14:28 375次阅读
    多<b class='flag-5'>k8s</b>集群<b class='flag-5'>环境</b>中工作有多快

    什么是K3s和K8s?K3s和K8s有什么区别?

    Kubernetes,通常缩写为 K8s,是领先的容器编排工具。该开源项目最初由 Google 开发,帮助塑造了现代编排的定义。该系统包括了部署和运行容器化系统所需的一切。
    的头像 发表于 08-03 10:53 3171次阅读