🥁HELM
type
status
date
slug
summary
tags
category
icon
password
Blocked by
Blocking
AI summary
some basic concepts
chart
- one helm package
- it containers all
resources definitions
necessary 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...