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

    文章

    10855

    浏览量

    211601
  • 开源
    +关注

    关注

    3

    文章

    3323

    浏览量

    42473
  • CLI
    CLI
    +关注

    关注

    1

    文章

    79

    浏览量

    8541
  • kubernetes
    +关注

    关注

    0

    文章

    224

    浏览量

    8712

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

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

收藏 人收藏

    评论

    相关推荐

    搭建K8s环境平台的步骤

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

    OpenStack与K8s结合的两种方案的详细介绍和比较

    OpenStack与K8S结合主要有两种方案。一是K8S部署在OpenStack平台之上,二是K8S和OpenStack组件集成。
    的头像 发表于 10-14 09:38 2.7w次阅读

    如何使用kubernetes client-go实践一个简单的与K8s交互过程

    中的源代码生成工具,这个工具的目的是要生成k8s风格的对象和序列化程序。 该项目是一组包的集合,该包能够满足从REST风格的原语到复杂client的不同的编程需求。     RESTClie
    的头像 发表于 02-02 11:16 6844次阅读
    如何使用kubernetes client-go实践一个简单的与<b class='flag-5'>K8s</b>交互过程

    Docker不香吗为什么还要用K8s

    Docker 虽好用,但面对强大的集群,成千上万的容器,突然感觉不香了。 这时候就需要我们的主角 Kubernetes 上场了,先来了解一下 K8s 的基本概念,后面再介绍实践,由浅入深步步为营
    的头像 发表于 06-02 11:56 3438次阅读

    简单说明k8s和Docker之间的关系

    这篇文章主要介绍了k8s和Docker关系简单说明,本文利用图文讲解的很透彻,有需要的同学可以研究下 最近项目用到kubernetes(以下简称k8sks之间有
    的头像 发表于 06-24 15:48 3405次阅读

    K8S集群服务访问失败怎么办 K8S故障处理集锦

    问题1:K8S集群服务访问失败?     原因分析:证书不能被识别,其原因为:自定义证书,过期等。 解决方法:更新证书即可。 问题2:K8S集群服务访问失败? curl: (7) Failed
    的头像 发表于 09-01 11:11 1.6w次阅读
    <b class='flag-5'>K8S</b>集群服务访问失败怎么办 <b class='flag-5'>K8S</b>故障处理集锦

    K8S(kubernetes)学习指南

    K8S(kubernetes)学习指南
    发表于 06-29 14:14 0次下载

    k8s集群环境中工作有多快

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

    切换k8s上下文有多快

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

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes简称K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful
    发表于 07-19 13:14 1113次阅读

    什么是K3sK8sK3sK8s有什么区别?

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

    K8S落地实践经验分享

    k8s 即 Kubernetes,是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理。
    的头像 发表于 01-02 11:45 1117次阅读
    <b class='flag-5'>K8S</b>落地实践经验分享

    k8s云原生开发要求

    IO性能。网络要求稳定,建议使用私有网络VPC,并配置与Kubernetes兼容的网络插件。操作系统需与K8s版本匹配,虚拟化平台支持Docker等。此外,还需关注安全配置,如禁用Swap、调整Sysctl等,以及etcd数据存
    的头像 发表于 10-24 10:03 211次阅读
    <b class='flag-5'>k8s</b>云原生开发要求

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地与公有云分别建立K8s集群,并确保网络连接。接着,配置kubeconfig文件连接两集群,并安装云服务插件以实现资源互通。然后,编写Deployment文件部署应用,并使用kubectl命令
    的头像 发表于 11-07 09:37 141次阅读

    k8s和docker区别对比,哪个更强?

    Docker和Kubernetes(K8s)是容器化威廉希尔官方网站 的两大流行工具。Docker关注构建和打包容器,适用于本地开发和单主机管理;而K8s则提供容器编排和管理平台,适用于多主机或云环境
    的头像 发表于 12-11 13:55 80次阅读