Helm 核心概念
Helm
Helm 是 Kubernetes 的包管理器,类似于 Linux 系统中的 apt 或 yum。它将 Kubernetes 应用的所有资源打包成一个称为 Chart 的可部署单元。Helm 简化了 Kubernetes 应用的安装、升级和回滚过程。通过 Helm,您可以使用一条命令部署整个应用栈,而无需手动编写和管理大量的 Kubernetes YAML 文件。
Chart
Chart 是 Helm 的打包格式,类似于操作系统的软件包。一个 Chart 包含一组 Kubernetes 资源定义文件和一个 values.yaml 配置文件。Chart 存储在 Helm 仓库中,可以从公共仓库(如 Bitnami)或私有仓库中获取。
values.yaml
values.yaml 是 Helm Chart 中最重要的配置文件,它定义了 Chart 的所有可配置参数及其默认值。通过修改 values.yaml,您可以在不修改 Chart 源码的情况下自定义部署行为。values.yaml 使用 YAML 格式,支持嵌套对象、数组、字符串、数字、布尔值等多种数据类型。
Helm Install
helm install 是 Helm 中用于安装 Chart 的命令。基本语法为 helm install RELEASE_NAME CHART_NAME,可以通过 -f 参数指定自定义 values 文件。helm install 会在 Kubernetes 集群中创建 Chart 定义的所有资源。
Helm Upgrade
helm upgrade 用于更新已部署的 Helm Chart。当您修改了 values.yaml 后,可以通过 helm upgrade 命令将更改应用到运行中的部署。Helm 会比较当前状态和期望状态,只创建或修改有差异的资源。
YAML
YAML(YAML Ain't Markup Language)是 Helm values.yaml 文件使用的数据格式。YAML 以可读性强著称,使用缩进表示层级关系。在 Helm 的 values.yaml 中,YAML 的关键语法包括:键值对、嵌套对象、数组、多行字符串和注释。YAML 对缩进极其敏感,通常使用 2 个空格作为缩进单位。
Kubernetes
Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化容器化应用的部署、扩缩和管理。Helm 是 Kubernetes 生态系统中的包管理工具。Kubernetes 的核心资源包括 Pod、Deployment、StatefulSet、Service、ConfigMap 和 Secret 等。
Release
Release 是 Helm 在 Kubernetes 集群中部署的一个 Chart 实例。每次执行 helm install 都会创建一个新的 Release。一个 Chart 可以被多次安装,每次安装都会创建一个独立的 Release。
Repository
Repository(仓库)是 Helm Chart 的存储和分发中心。公共 Helm 仓库如 Bitnami 提供了大量高质量的 Charts。可以通过 helm repo add 命令添加仓库,hart helm repo update 更新仓库索引。
UD5工具箱