构建并分享您自己的 Helm 图表
从图表使用者成长为图表作者:创建图表骨架,使用值为清单生成模板,将其打包并发布到仓库。
构建并分享您自己的 Helm 图表 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
从使用者到创建者
您已经部署并定制了现有图表。现在,您将构建自己的图表,为应用打包,让其他人可以通过一条命令安装它。
搭建图表骨架
helm create 会生成一个带有合理默认值的图表骨架,您可以对其进行编辑。
helm create mychart
# creates mychart/ with Chart.yaml, values.yaml, templates/Chart.yaml:元数据
Chart.yaml 描述图表,包括图表名称、版本以及它所部署的应用版本。
apiVersion: v2
name: mychart
description: A web app chart
type: application
version: 0.1.0
appVersion: '1.0.0'模板与 Go 模板引擎
templates/ 中的文件是带有占位符的 Kubernetes 清单。Helm 使用带双大括号的 Go 模板语法填充这些占位符。
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-web
spec:
replicas: {{ .Values.replicaCount }}
template:
spec:
containers:
- name: web
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}values.yaml:默认值
values.yaml 保存模板通过 .Values 引用的默认配置。用户可以在安装时覆盖这些值。
replicaCount: 2
image:
repository: myapp
tag: '1.0.0'使用 _helpers.tpl 创建辅助模板
可复用的代码片段以命名模板的形式存放在 _helpers.tpl 中,从而让标签和名称等清单内容保持 DRY。
{{- define "mychart.labels" -}}
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}检查与渲染
安装之前,请验证图表,并预览渲染后的清单,而不要接触集群。
helm lint mychart
helm template mychart --set replicaCount=3安装您的图表
直接从本地图表目录安装,以便端到端地测试图表。
helm install demo ./mychart --set image.tag=2.0.0
helm list打包
helm package 会将图表打包成带版本号的 .tgz 归档文件,可供分发。
helm package mychart
# produces mychart-0.1.0.tgz发布到仓库
您可以将图表托管在 HTTP 仓库中,也可以越来越多地将其作为 OCI 构件存储在容器注册表中。
helm push mychart-0.1.0.tgz oci://registry.example.com/charts
helm install demo oci://registry.example.com/charts/mychart --version 0.1.0版本管理规范
- 图表发生任何更改时,递增
version - 打包的应用发生更改时,递增
appVersion - 遵循语义化版本规范,让使用者知道可以期待什么
快速检查
测试您对图表创建的了解。
回顾
您学习了如何创建图表:使用 helm create 搭建骨架,在 Chart.yaml 中描述元数据,使用 .Values 和辅助模板创建清单模板,进行检查和渲染,然后打包并发布(包括发布到 OCI 注册表)。规范的版本管理可以保障使用者的安全。
常见问题解答
「构建并分享您自己的 Helm 图表」课时是免费的吗?
是的 — 「构建并分享您自己的 Helm 图表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「构建并分享您自己的 Helm 图表」这节课中我会学到什么?
从图表使用者成长为图表作者:创建图表骨架,使用值为清单生成模板,将其打包并发布到仓库。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「构建并分享您自己的 Helm 图表」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Helm Chart 简介
- 使用 Helm 部署应用
- 自定义与管理发布版本
- 构建并分享您自己的 Helm 图表