我们在使用 Kubernetes 编写资源清单文件的时候,往往会使用类似于 Helm
或者 Kustomize
这样的工具来进行模板化处理,一来是提高了资源清单的灵活性,另一方面也确实降低了我们安装复杂的 Kubernetes 应用的门槛。本文我们尝试自己使用 Golang 来实现一个 YAML 资源清单文件模板化的方案。
标签: #Kustomize
如果你经常使用 Kubernetes,那么应该对 Helm 和 Kustomize 不陌生,这两个工具都是用来管理 Kubernetes 的资源清单的,但是二者有着不同的工作方式。
Helm 使用的是模板,一个 Helm Chart 包中包含了很多模板和值文件,当被渲染时模板中的变量会使用值文件中对应的值替换。而 Kustomize 使用的是一种无模板的方式,它对 YAML 文件进行修补和合并操作,此外 Kustomize 也已经被原生内置到 kubectl 中了。这两个工具在 Kubernetes 的生态系统中都被广泛使用,而且这两个工具也可以一起结合使用。
继续阅读 →如果你经常使用 Kubernetes,那么你肯定就有定制资源清单文件的需求,但是貌似现在大家都比较喜欢使用 Helm,Helm 很好用,但也有很多缺点,比如需要一个 tiller 服务端,需要超高的权限,最重要的是如果你要想自己做一个 Helm Chart 包的话,则不是那么容易的,需要你了解一些 go template 的相关知识,它抛弃了我们在 Docker 和 Kubernetes 上面学到的一些逻辑,今天我们将为大家介绍另外一种名为Kustomize❤️
的替代工具。