Helm:Kubernetes的包管理器:3:三个基本概念

Helm:Kubernetes的包管理器:3:三个基本概念_第1张图片
这篇文章介绍Helm中最为重要的三个基本概念:Chart、Repository和Release。

基本概念

  • Chart
    Helm:Kubernetes的包管理器:3:三个基本概念_第2张图片
    Chart就是Helm中管理的包,在Chart中包含了在Kubernetes集群中运行应用、工具或者服务所需要的所有的资源定义,在Kubernetes中的作用类似于Homebrew中的formula或者Yum中的RPM文件。而在后面的使用中,实际上它扮演的更多的则是资源列表清单,安装某个包所需要的所有资源信息都需要在Chart中进行定义。

  • Repository
    Chart中保存的是安装所需要的资源列表清单,而Repository则是用来收集和共享Chart的地方,就像Perl中的CPAN所扮演的角色。
    在这里插入图片描述
    而在Kubernetes中,在Helm Hub上则保存着这些Chart的内容。

    而在使用上,则可以通过使用阿里同步的仓库来进行替代,具体说明如下所示
    Helm:Kubernetes的包管理器:3:三个基本概念_第3张图片

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

你可能感兴趣的:(#,Helm)