本文介绍了Helm和kustomize有什么不同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

但kustomize和Helm到底有什么区别?

两者只是捆绑服务、部署等K8元素的不同解决方案吗?或者同时使用Helm和kustomize有意义吗?

推荐答案

描述差异的最佳方式是将它们称为不同类型的部署引擎。一个是模板引擎,另一个是覆盖引擎

那么这些是什么?好的,当您使用模板引擎时,您可以创建文件的样板示例。从那里,您使用已知的过滤器抽象内容,并在这些抽象中提供对变量的引用。这些变量通常被抽象到另一个文件中,您在该文件中插入特定于您的环境的信息,然后在运行时,当您执行模板引擎时,模板被加载到内存中,并且所有变量都与它们的占位符交换。

这在一些细微的方面不同于覆盖引擎。通常是关于信息如何进入配置示例。注意到我是如何在那里使用示例而不是模板的。这是故意的,因为kustomize不使用模板。相反,您需要创建一个Kustomization.yml文件。然后,该文件指向两个不同的东西。您的基本覆盖。在运行时,您的基本配置会加载到内存中,如果存在任何匹配的覆盖,则会将它们合并到基本配置之上。

后一种方法使您可以更轻松地将配置扩展到大量变体。想象一下,为10,000种不同的配置维护10,000组不同的变量文件。现在想象一下,维护一个可以在任何组合或排列中继承的模块化和小型配置的层次结构?它将极大地减少冗余并极大地提高可管理性。

另一个需要注意的细微差别是项目的所有权。Helm由第三方运营。Kustomize是由Kubernetes团队直接开发的。事实上,Kubectl直接支持kustomize功能。您可以构建并执行kustomize项目,如下所示:kubectl apply -k DIR。但是,kubectl二进制文件中嵌入的kustomize版本已过时,并且缺少一些新功能。

kustomize中还有其他一些改进,这些改进稍微小一些,但仍然值得一提的是。它可以从互联网或其他非标准路径参考碱基。它支持生成器根据文件和字符串文字自动为您构建配置文件。它支持健壮和精细的JSON补丁。它支持跨配置文件注入元数据。

在下面的评论中添加了以下链接,以便进行更多比较:

这篇关于Helm和kustomize有什么不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 21:49