Helm 架构 — Kubernetes(48)

in #kubernetes7 years ago

在实践之前,我们先来看看 Helm 的架构。

Helm 有两个重要的概念:chart 和 release。

chart 是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板、参数定义、依赖关系、文档说明等。chart 是应用部署的自包含逻辑单元。可以将 chart 想象成 apt、yum 中的软件安装包。

release 是 chart 的运行实例,代表了一个正在运行的应用。当 chart 被安装到 Kubernetes 集群,就生成一个 release。chart 能够多次安装到同一个集群,每次安装都是一个 release。

Helm 是包管理工具,这里的包就是指的 chart。Helm 能够:

  1. 从零创建新 chart。
  2. 与存储 chart 的仓库交互,拉取、保存和更新 chart。
  3. 在 Kubernetes 集群中安装和卸载 release。
  4. 更新、回滚和测试 release。

Helm 包含两个组件:Helm 客户端 和 Tiller 服务器。

786.png

Helm 客户端是终端用户使用的命令行工具,用户可以:

  1. 在本地开发 chart。
  2. 管理 chart 仓库。
  3. 与 Tiller 服务器交互。
  4. 在远程 Kubernetes 集群上安装 chart。
  5. 查看 release 信息。
  6. 升级或卸载已有的 release。

Tiller 服务器运行在 Kubernetes 集群中,它会处理 Helm 客户端的请求,与 Kubernetes API Server 交互。Tiller 服务器负责:

  1. 监听来自 Helm 客户端的请求。
  2. 通过 chart 构建 release。
  3. 在 Kubernetes 中安装 chart,并跟踪 release 的状态。
  4. 通过 API Server 升级或卸载已有的 release。

简单的讲:Helm 客户端负责管理 chart;Tiller 服务器负责管理 release。

下一节我们将安装和部署 Helm。