helm概述及基本使用

发布时间:2024-04-08 11:01

概述

参考:https://www.cnblogs.com/lyc94620/p/10945430.html

简介

Helm 是 k8s 的包管理工具,类似 Linux 系统常用的 apt、yum 等包管理工具。使用 helm 可以简化 k8s 应用部署。

每个包称为一个 Chart,一个 Chart 是一个目录(一般情况下会将目录进行打包压缩,形成 name-version.tgz 格式的单一文件,方便传输和存储)。

对于应用发布者而言,可以通过 Helm 打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。

对于使用者而言,使用 Helm 后不用需要了解 Kubernetes 的 Yaml 语法并编写应用部署文件,可以通过 Helm 下载并在kubernetes上安装需要的应用。

除此以外,Helm 还提供了kubernetes上的软件部署,删除,升级,回滚应用的强大功能。


组件及相关术语

Helm

Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。

Tiller

Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。

Chart

Helm 的软件包,采用 TAR 格式。其中包含了运行一个应用所需要的镜像、依赖和资源定义(YAML )等,还可能包含 Kubernetes 集群中的服务定义。类似 APT 的 DEB 包或者 YUM 的 RPM 包。

Repoistory

Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。首次安装 Helm 时,它已预配置为使用官方 Kubernetes chart 存储库 repo。该 repo 包含许多精心设计和维护的 charts。此 charts repo 默认以 stable 命名。

Release

使用 helm install 命令在 Kubernetes 集群中部署的 Chart 的一个实例称为 Release。在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。例如一个 MySQL Chart,如果想在服务器上运行两个数据库,就可以把这个 Chart 安装两次。每次安装都会生成自己的 Release,会有自己的 Release 名称。

注:需要注意的是:Helm 中提到的 Release 和通常概念中的版本有所不同,这里的 Release 可以理解为 Helm 使用 Chart 包部署的一个应用实例。


工作原理

helm概述及基本使用_第1张图片

Chart Install 过程:

  1. Helm 从指定的目录或者 tgz 文件中解析出 Chart 结构信息
  2. Helm 将指定的 Chart 结构和 Values 信息通过 gRPC 传递给 Tiller
  3. Tiller 根据 Chart 和 Values 生成一个 Release
  4. Tiller 将 Release 发送给 Kubernetes 用于生成 Release

Chart Update 过程:

  1. Helm 从指定的目录或者 tgz 文件中解析出 Chart 结构信息
  2. Helm 将要更新的 Release 的名称和 Chart 结构,Values 信息传递给 Tiller
  3. Tiller 生成 Release 并更新指定名称的 Release 的 History
  4. Tiller 将 Release 发送给 Kubernetes 用于更新 Release

Chart Rollback 过程:

  1. Helm 将要回滚的 Release 的名称传递给 Tiller
  2. Tiller 根据 Release 的名称查找 History
  3. Tiller 从 History 中获取上一个 Release
  4. Tiller 将上一个 Release 发送给 Kubernetes 用于替换当前 Release

模版语法

1.表达式

  • 模版表达式: {{ 模版表达式 }}

  • 模版表达式: {{- 模版表达式 -}} , 表示去掉表达式输出结果前面和后面的空格。去掉前面空格可以这么写{{- 模版表达式 }},去掉后面空格 {{ 模版表达式 -}}

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号