gpt4 book ai didi

kubernetes - Helm 和 Kustomize 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 11:27:28 25 4
gpt4 key购买 nike

我使用 Kubernetes 和 Helm 已经有一段时间了,现在第一次遇到 Kustomize。

但是 Kustomize 和 Helm 之间到底有什么区别呢?

两者都只是捆绑 K8s 元素(如服务、部署等)的不同解决方案吗?或者同时使用 Helm 和 Kustomize 是否有意义?

最佳答案

描述差异的最佳方式是将它们称为不同类型的部署引擎。一个是模板引擎,一个是覆盖引擎。
那么这些是什么?好吧,当您使用模板引擎时,您会创建文件的样板示例。从那里您可以使用已知过滤器抽象出内容,并在这些抽象中提供对变量的引用。这些变量通常被抽象到另一个文件中,您可以在其中插入特定于您的环境的信息。然后,在运行时,当您执行模板引擎时,模板被加载到内存中,并且所有变量都与其占位符交换。
这在一些细微的方面与覆盖引擎不同。通常关于信息如何进入配置示例。注意到我在那里使用了单词示例而不是模板。这是故意的,因为 Kustomize 不使用模板。相反,您创建一个 Kustomization.yml 文件。这个文件然后指向两个不同的东西。你的基地和你的覆盖。在运行时,您的 Base 被加载到内存中,如果存在任何匹配的 Overlay,它们将合并到您的 Base 配置之上。
后一种方法允许您更轻松地将配置扩展到大量变体。想象一下,为 10,000 种不同的配置维护 10,000 组不同的变量文件。现在想象一下维护可以以任何组合或排列方式继承的模块化和小型配置的层次结构?它将大大减少冗余并大大提高可管理性。
另一个需要注意的细微差别是项目的所有权。 Helm 由第三方运营。 Kustomize 由 Kubernetes 团队直接开发。事实上,Kubectl 直接支持 Kustomize 功能。您可以像这样构建和执行 Kustomize 项目:kubectl apply -k DIR .但是,嵌入在 kubectl 二进制文件中的 kustomize 版本已经过时并且缺少一些新功能。
Kustomize 中还有一些其他的改进,虽然稍微小一些,但仍然值得一提。它可以引用来自互联网或其他非标准路径的碱基。它支持生成器根据文件和字符串文字自动为您构建配置文件。它支持健壮和细粒度的 JSON 补丁。它支持跨配置文件注入(inject)元数据。
在下面的评论中添加了以下链接以进行更多比较:

  • https://medium.com/@alexander.hungenberg/helm-vs-kustomize-how-to-deploy-your-applications-in-2020-67f4d104da69
  • https://codeengineered.com/blog/2018/helm-kustomize-complexity/
  • 关于kubernetes - Helm 和 Kustomize 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60519939/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com