Helm:Kubernetes的包管理器:3:三个基本概念
这篇文章介绍Helm中最为重要的三个基本概念:Chart、Repository和Release。
基本概念
-
Chart
Chart就是Helm中管理的包,在Chart中包含了在Kubernetes集群中运行应用、工具或者服务所需要的所有的资源定义,在Kubernetes中的作用类似于Homebrew中的formula或者Yum中的RPM文件。而在后面的使用中,实际上它扮演的更多的则是资源列表清单,安装某个包所需要的所有资源信息都需要在Chart中进行定义。 -
Repository
Chart中保存的是安装所需要的资源列表清单,而Repository则是用来收集和共享Chart的地方,就像Perl中的CPAN所扮演的角色。
而在Kubernetes中,在Helm Hub上则保存着这些Chart的内容。
而在使用上,则可以通过使用阿里同步的仓库来进行替代,具体说明如下所示
Release
在Kubernetes集群上运行的Chart的实例被称为Release。就像同一个镜像可以启动多个容器一样,使用同一个Chart在同一个集群上启动多个Release(实例)的情况也是经常需要的。比如我们需要多个MySQL的数据库实例时,就可以通过Chart进行多次安装来形成多个实例,而每个实例都有自己的名称。而在Helm 3的情况下,缺省是需要在helm install命令中指定Release的名称的(Helm 2的时代,缺省可以不指定,会自动生成一个Release的名称)。当然在Helm 3时也可以使用generate-name参数来实现相同的效果,但是需要明示地写出来,这是Helm 3和Helm 2除了tiller之外的另外区别了。
同一个Chart可以安装成多个Release,但是对同一个Release也有可能需要进行多次更新,这是就可以使用到RELEASE NUMBER(也被称为RELEASE VERSION)的概念了。无论是更新还是回滚,每次Release的变化都会导致RELEASE NUMBER的递增。
ROLLBACK(回滚)则是在RELEASE VERSION上衍生出来的另外一个概念,实际上对于Release的操作,每次都会导致RELEASE VERSION的变化。从最初release 1进行递增。具体的操作RELEASE VERSION的变化情况示例如下所示:
操作 | Release Number |
---|---|
install | release 1 |
upgrade | release 2 |
upgrade | release 3 |
rollback 1 | release 4 (虽然是release 4,但是运行的配置和release 1等同) |
参考内容
https://helm.sh/docs/intro/using_helm/
https://www.cpan.org/
https://hub.helm.sh/
https://github.com/helm/hub/blob/master/README.md