date
related_level
slug
type
relate_date
summary
status
tags
category
last_updated
Jan 3, 2026 11:03 PM
是否已更新
orginal_page
是否推荐
参考资料
三大概念 Chart, Repository, Release
- 类似于 docker 的
image,registry,container
- Chart 包含在 Kubernetes 集群内运行应用程序、工具或服务所需的所有资源定义
- Repository 是收集和共享 Chart 的地方
- Release 是 Kubernetes 集群中运行的 Chart 的一个实例
debian/ubuntu 安装 helm
简单版本:一键脚本安装
sudo apt-get update && sudo apt-get install gnupg apt-transport-https --yes- 前置依赖工具
curl -sfL https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null- 添加 gpg 公钥
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list- 添加至
sources.list
sudo apt-get update && sudo apt-get install helm
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
helm 基本使用
使用 helm 管理 repo
helm repo list
helm repo add <repo-name> <repo-url>添加 repo 到本地 helm 客户端
helm repo update
helm repo remove
使用 helm 管理 chart
查找 chart
- Helm 搜索使用模糊字符串匹配算法
helm search hub <keyword>搜索 Artifact Hub 上公开可用的 repo--list-repo-url显示 repo 实际 url
helm search repo <keyword>搜索已添加到本地 helm 客户端的 repo
- 自行创建 chart
helm create <chart-name>helm lint <chart-filepath>- 验证格式是否正确
helm package <chart-name>
使用 helm 管理 Release
安装前自定义 chart
helm show values <chart-name> > value.yaml- 查看图表上可配置的选项
- 通过
-f value.yaml或者--set来覆盖对应配置项 -f values.yaml传递自定义选项并覆盖 chart 对应默认设置- 可以多次指定,最右边的文件将优先
- 同时使用
--set值,则将合并到优先级更高的--values中 a=b,c=douter.inner=valuename={a, b, c}name=[],a=null- 空数组和空值
servers[0].port=80- 数组索引,从 Helm 2.5.0 开始支持
name=value1\,value2
--set name=value 通过命令行上指定覆盖
支持以下键值格式
helm install 自定义样例
helm install -f value.yaml <release-name> <repo>/<chart-name>
helm install --set key1=value1,key2=value2 <release-name> <repo>/<chart>
helm install 支持本地 chart 压缩文件、chart 目录、网址
helm install foo foo-0.1.1.tgz
helm install foo path/to/foo
helm install foo https://example.com/charts/foo-1.2.3.tgz
拉取 chart 到本地再安装
helm pull --untar <repo>/<chart-name>ls <chart-name>helm install <release-name> ./<chart-name>
跟踪 Release 的状态,发布历史,或者读取配置信息
helm list- 查看部署的所有
Release --all将显示 Helm 保留的所有发布记录,包括失败或已删除项目的记录
helm status <release-name>
helm history <release-name>
helm get values <release-name>
更新 Release 或更改配置
helm upgrade <release-name> <chart-name>
回滚 Release
helm rollback <release-name> <revision>- 每次安装、升级或回滚时,
<revision>都会增加 1 - 第一个
<revision>始终为 1
卸载 Release
helm uninstall <release-name>
安装/升级/回滚的实用选项
--wait:等待所有资源就绪,否则将失败回退,等待时间将根据--timeout值而定- 所有 Pod 都处于就绪状态
- PVC 已绑定
- Deployment 中处于就绪状态的 Pod 数量达到最低要求(
Desired数量减去maxUnavailable) - 在部署
replicas设置为 1 且maxUnavailable未设置为 0(作为滚动更新策略的一部分)的情况下,--wait将返回就绪状态 - Service 拥有 IP 地址(如果是
LoadBalancer,则还需要 Ingress 地址) --timeout值默认为 5m0s
所有资源就绪具体是指
--no-hooks:将跳过运行该命令的钩子- Hook 是具有特殊注解的 Kubernetes 资源,用于在特定阶段(pre-install, post-install 等)执行特定任务
helm 自定义 Chart
- 参考资料
Charts | Helm

Charts | Helm
Explains the chart format, and provides basic guidance for building charts with Helm.
Chart 文件目录结构
Chart.yaml 文件包含以下字段
Chart template 和 values
helm 中的 Custom Resource Definitions (CRDs)
- CRD 在 helm 被视为一种特殊类型的对象
- CRD 文件应放置在 chart 的
crds/目录中,会在 chart 的其他部分之前安装,并且受到一些限制 - CRD 文件不能使用模板 ,必须是纯 YAML 文档
CRD 限制
- CRD 永远不会重新安装
- 如果 Helm 确定
crds/中的 CRD 已经存在(无论版本如何),则Helm 将不会尝试安装或升级
- CRD 不会在升级或回滚时安装
- Helm 只会在安装操作时创建 CRD
- CRD 永远不会被删除
- 删除 CRD 会自动删除集群中所有命名空间中该 CRD 的所有内容
helm 管理自定义 Chart
helm create <chartname>
helm lint <chartname>- 语法检查
helm package <chartname>- 打包为 tar 文件
helm push <chartname>-0.1.0.tgz oci://localhost:5000/helm-charts- 推送到支持 chart 的 registry
- Author:白鸟3
- URL:https://blog.kun2peng.top/operation/kubernetes_helm
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
