词汇表
图表
舵机包,包含足够的信息,用于将一组 Kubernetes 资源安装到 Kubernetes 集群中。
图表包含 Chart.yaml
文件以及模板、默认值 (values.yaml
) 和依赖项。
图表在定义良好的目录结构中开发,然后打包成称为图表归档的存档格式。
图表归档
图表归档是经过 tar 压缩和 gzip 压缩(并可选地签名)的图表。
图表依赖项(子图表)
图表可能依赖于其他图表。依赖关系有两种方式
- 软依赖:图表可能无法正常工作,除非集群中安装了另一个图表。舵机不提供此情况的工具。在这种情况下,依赖关系可以单独管理。
- 硬依赖:图表可能在其
charts/
目录中包含另一个图表,它依赖于该图表。在这种情况下,安装图表将安装其所有依赖项。在这种情况下,图表及其依赖项将作为一个集合进行管理。
当图表打包(通过 helm package
)时,其所有硬依赖项都将与它捆绑在一起。
图表版本
图表根据 SemVer 2 规范 进行版本控制。每个图表都需要版本号。
Chart.yaml
图表信息存储在一个名为 Chart.yaml
的特殊文件中。每个图表都必须具有此文件。
舵机(和 helm)
舵机是 Kubernetes 的包管理器。就像操作系统包管理器可以轻松地在操作系统上安装工具一样,舵机可以轻松地在 Kubernetes 集群中安装应用程序和资源。
虽然舵机是项目名称,但命令行客户端也名为 helm
。按照惯例,在谈论项目时,舵机使用大写字母。在谈论客户端时,helm 使用小写字母。
舵机配置文件 (XDG)
舵机将其配置文件存储在 XDG 目录中。这些目录在第一次运行 helm
时创建。
Kube 配置 (KUBECONFIG)
舵机客户端通过使用Kube 配置文件格式的文件来了解 Kubernetes 集群。默认情况下,舵机尝试在 kubectl
创建它的位置($HOME/.kube/config
)找到此文件。
整理(整理)
整理图表是指验证它是否遵循舵机图表标准的约定和要求。舵机提供了一些工具来执行此操作,尤其是 helm lint
命令。
来源(来源文件)
舵机图表可能附带一个来源文件,该文件提供有关图表来源及其包含内容的信息。
来源文件是舵机安全故事的一部分。来源包含图表归档文件的加密哈希、Chart.yaml 数据和签名块(OpenPGP“明文签名”块)。与密钥链结合使用时,这为图表用户提供了以下能力
- 验证图表是否由可信方签名
- 验证图表文件是否未被篡改
- 验证图表元数据的内容 (
Chart.yaml
) - 快速将图表与其来源数据匹配
来源文件具有 .prov
扩展名,可以从图表仓库服务器或任何其他 HTTP 服务器提供服务。
发布
当图表安装时,舵机库会创建一个发布来跟踪该安装。
同一个图表可以多次安装到同一个集群中,并创建多个不同的发布。例如,可以通过运行 helm install
三次并使用不同的发布名称来安装三个 PostgreSQL 数据库。
发布编号(发布版本)
单个发布可以多次更新。使用一个顺序计数器来跟踪发布更改。在第一次 helm install
之后,发布将具有发布编号 1。每次发布升级或回滚时,发布编号都会递增。
回滚
发布可以升级到更新的图表或配置。但是,由于发布历史记录已存储,因此发布也可以回滚到以前的发布编号。这可以通过 helm rollback
命令来完成。
重要的是,回滚的发布将收到一个新的发布编号。
操作 | 发布编号 |
---|---|
安装 | 发布 1 |
升级 | 发布 2 |
升级 | 发布 3 |
回滚 1 | 发布 4(但运行与发布 1 相同的配置) |
上表说明了发布编号如何在安装、升级和回滚过程中递增。
舵机库(或 SDK)
舵机库(或 SDK)是指直接与 Kubernetes API 服务器交互以安装、升级、查询和删除 Kubernetes 资源的 Go 代码。它可以导入到项目中,以将舵机用作客户端库而不是 CLI。
仓库(仓库,图表仓库)
舵机图表可以存储在称为图表仓库(仓库或仅仓库)的专用 HTTP 服务器上。
图表仓库服务器是一个简单的 HTTP 服务器,可以提供一个 index.yaml
文件,该文件描述一批图表,并提供有关每个图表下载位置的信息。(许多图表仓库同时提供图表和 index.yaml
文件。)
舵机客户端可以指向零个或多个图表仓库。默认情况下,舵机客户端没有配置任何图表仓库。图表仓库可以通过 helm repo add
命令随时添加。
图表注册表(基于 OCI 的注册表)
舵机图表注册表是一个 基于 OCI 的 存储和分发系统,用于托管和共享舵机图表包。有关更多信息,请参见 有关注册表的舵机文档。
值(值文件,values.yaml)
值提供了一种方法,可以将模板默认值覆盖为您自己的信息。
舵机图表是“参数化的”,这意味着图表开发人员可以公开可以在安装时覆盖的配置。例如,图表可以公开一个 username
字段,该字段允许设置服务的用户名。
这些公开的变量在舵机术语中称为值。
值可以在 helm install
和 helm upgrade
操作期间设置,可以通过直接传递它们或使用 values.yaml
文件来设置。