我刚刚开始尝试Helm kubernetes软件包管理器。但是图表vs模板主题对我来说似乎有些混乱。
我知道,通过模板,我将创建kubernetes yaml,它将创建对象并安装它们。但是,对于图表也是如此,但这是对Yaml的抽象。 ./图表包含独立的图表,而./templates仅对基本图表有效。所以我知道。但是我什么时候应该包括其他图表或仅创建模板?
[通过网络寻找其他种类的图表,我仍然不知道该使用哪种。
说我有一个名为MyApp的项目,它有一个名为MyServer的组件,它将与MySql通信。
所以我创建了一个图表,并将其作为模板放入MyServer中:./MyApp/templates/MyServer.yaml
我应该如何使用MySql?我已经在不同的项目中看到了这两种解决方案,一个只是创建了另一个模板:./MyApp/templates/MySQL.yaml
在其他项目上,我从图表存储库中看到了MySql的图表:./MyApp/charts/mysql-version.tgz
最重要的是,我看到了一个大数据项目(hdfs,kafka,zookeeper,ELK,oracle db..etc),其中一个组件作为图表包含在./charts中,另一个组件作为模板创建于./templates中。图表和模板之间的整个决定对我来说似乎是随机的并且令人困惑。您能解释一下什么时候使用它吗?
A chart是templates的集合,外加一些额外的信息,例如Chart.yaml
文件中的元数据和默认的values.yaml
。在您的示例中,MyApp
本身就是一个图表。
对于众所周知的依赖关系(尤其是Helm charts repository中的事物,尤其是stable图表中的事物),最好使用外部图表;在requirements.yaml
或(Helm v3)Chart.yaml
文件中声明依赖项,然后运行helm dependency update
。这使您可以用两行导入图表,而不用复制图表中包含的StatefulSet,PersistentVolumeClaim,etc。。