🥁HELM
type
Post
status
Published
date
Oct 28, 2024
slug
helm
summary
category
k8s
tags
HELM
k8s
笔记
云原生
icon
password
AI summary
Blocked by
Blocking
Category
some basic concepts
chart - one helm package
- it containers all
resources definitionsnecessary to run one application, tool, or service inside of a k8s cluster
repository- one place where charts can be collected and shared
release- one instance of a chart running in k8s clutster
当我们理解这些概念,我们脑海中可以有这样的印象
- 如果我们想要找charts,可以去chart的仓库,即repository
- 当我们找到对应的charts后,我们去安装charts,即将charts中的资源部署到 k8s集群中,这样就产生了一个release
quickStart
go template语法
简单讲讲 go的template语法,这对后续看helm的chart文件很有帮助
1. 基础语法理解
- 你需要熟悉 Go Template 的基本语法,例如变量定义、管道、条件判断和循环等,这些是 Helm 模板中最常用的语法。例如:
- 如何通过 {{ .Values.key }}
访问变量;
- 使用 {{ if }}, {{ range }}, {{ with }} 等
控制结构来处理数据和逻辑。
2. 管道操作
- Helm 模板中
管道(|) 用得很多。管道可以将一个表达式的输出传递给下一个函数,这是 Helm 模板中的重要特性。常见用法包括:
- 使用 default 设置
默认值:{{ .Values.image.repository | default "nginx" }}
- 使用 quote、upper 等
内置函数进行字符串处理。
3. 模板嵌套与文件分割
- 在 Helm 中通常会将模板分散到多个文件,因此了解 template 和 define 的用法很重要。Helm 使用 include 和 required 来
嵌套调用模板和判断关键值。
4. 错误处理
- 了解 required 函数,这在 Helm 中用于确保必需的值被传递进来:
5. 理解 Helm 特有的扩展
- 除了 Go Template 的基础语法,Helm 还增加了一些自己定义的模板函数,例如 lookup、tpl 等。这些函数的使用和 Helm 的上下文机制有关,理解这些函数的用途会对编写 Helm 模板有帮助。
深入讲解
customize your Chart before installing
若想在update、install时自定义,可以有以下方式配置(优先级从低到高)
- Chart自带的value.yaml
- 使用-f 指定的自定义values.yaml 文件,按顺序加载,在后面的文件优先级更高
- 命令行
—set的参数
- 命令行
—set-file的参数。当你想倒入一个大文本文件作为配置项时,比—set和values.yaml优先级更高
—set的使用
Crete your own Charts
- NOTES.txt是chart的帮助文本,helm install的提示信息就是来自这里
- _helper.tpl描述了chart可以复用的模版对象
- values.yaml 将记录的值传给chart,进行模版渲染
可以用
—debug和—dry-run 观察模版是如何渲染的 具体内容
访问

版本迭代控制
chart的每次安装或升级都会创建新的release版本,可以看
chart.yaml 的描述,看到就的版本信息。回滚到指定版本
版本历史数据保留
备份恢复
helm的资源构建顺序
具体顺序
- Namespace
- NetworkPolicy
- ResourceQuota
- LimitRange
- PodSecurityPolicy
- PodDisruptionBudget
- ServiceAccount
- Secret
- SecretList
- ConfigMap
- StorageClass
- PersistentVolume
- PersistentVolumeClaim
- CustomResourceDefinition
- ClusterRole
- ClusterRoleList
- ClusterRoleBinding
- ClusterRoleBindingList
- Role
- RoleList
- RoleBinding
- RoleBindingList
- Service
- DaemonSet
- Pod
- ReplicationController
- ReplicaSet
- Deployment
- HorizontalPodAutoscaler
- StatefulSet
- Job
- CronJob
- Ingress
- APIService
ref
- some tricks to use helm
- quick-start helm
- detailed Explanation in chart
Prev
LVM
Next
在mac中,如何将标准输出保存到剪切板中
Loading...


