Helm Introduction
Helm Introduction
Helm 是 Kubernetes 的包管理工具,可以把一组相关的 Kubernetes 资源打包成一个 Chart,并通过统一命令完成安装、升级、回滚与卸载。
1. Chart 基础
1.1. 什么是 Chart
Chart 是一组描述 Kubernetes 资源的文件集合。
你可以把它理解为“应用部署模板包”:既包含资源模板,也包含默认参数和值文件。
1.2. Chart 目录结构(Helm 3)
1 | mychart/ |
2. Chart.yaml 关键字段
Chart.yaml 是 Chart 的元信息文件,常见字段如下:
1 | apiVersion: v2 |
字段说明:
version是 Chart 包版本,必须遵循 SemVer。appVersion是应用版本,仅用于展示,不参与依赖解析。apiVersion在 Helm 3 常见为v2。
3. 依赖管理(已不再使用 requirements.yaml)
在 Helm 3 中,依赖统一写在 Chart.yaml 的 dependencies 字段中,而不是旧版 requirements.yaml。
1 | apiVersion: v2 |
常用字段:
name:依赖 chart 名称。version:依赖版本(建议使用范围约束而不是写死单版本)。repository:依赖仓库地址。condition:根据 values 中布尔值启用/禁用依赖。tags:可按标签批量控制一组依赖是否启用。
更新依赖命令:
1 | helm dependency update |
执行后会下载依赖到 charts/,并生成或更新 Chart.lock。
4. 模板与 values
templates/ 下的文件会被 Helm 模板引擎渲染为 Kubernetes 清单。
模板中的变量通常来自 .Values。
示例:
1 | apiVersion: apps/v1 |
values 的常见来源:
- Chart 自带的
values.yaml(默认值)。 - 用户通过
-f custom-values.yaml传入的覆盖值。 - 用户通过
--set key=value传入的临时值。
通常优先级是:--set > -f > values.yaml。
5. 常用命令速查
1 | # 创建 chart 骨架 |
6. 小结
Helm 的核心是三件事:
- 用
Chart.yaml描述包和依赖。 - 用
templates/+values生成可复用的 Kubernetes 资源。 - 用
install/upgrade/rollback管理应用整个生命周期。
把这三件事掌握后,日常 Kubernetes 应用发布会更标准、更可维护。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 因受!
评论