helm 2 的常用用法

Helm 常用命令

Helm 2 是 Helm 包管理工具的旧版本,虽然现在 Helm 3 已成为主流(去掉了 Tiller 组件),但有些老旧系统或遗留项目仍在使用 Helm 2。以下是 Helm 2 的常用用法和命令说明。


🧰 Helm 2 常用命令概览

1. 初始化 Helm 客户端和服务端(Tiller)

helm init
  • 会安装 tiller 到 Kubernetes 集群中(默认在 kube-system 命名空间)。
  • 如果你使用的是 RBAC 环境,需要创建 service account 和 role binding:
kubectl create serviceaccount tiller -n kube-system
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller

2. 查看 Helm 版本

helm version

3. 更新 Chart 仓库索引

helm repo update

4. 添加/列出/删除 Chart 仓库

helm repo add stable https://charts.helm.sh/stable
helm repo list
helm repo remove stable

5. 搜索 Charts

helm search mysql
helm search -l stable/mysql  # 显示所有版本

6. 安装 Release

helm install stable/mysql

可以指定 release 名称、命名空间、自定义配置等:

helm install --name my-release stable/mysql
helm install --name my-release --namespace dev stable/mysql

7. 升级 Release

helm upgrade my-release stable/mysql

也可以使用本地 chart 或更新 values 文件进行升级:

helm upgrade my-release ./mysql-chart -f values.yaml

8. 回滚 Release

查看历史版本:

helm history my-release

回滚到某个版本:

helm rollback my-release 1

9. 删除 Release

helm delete my-release

加上 --purge 参数彻底删除(Helm 2 默认不加该参数只是标记为 DELETED):

helm delete --purge my-release

10. 查看 Release 状态

helm status my-release

11. 获取 Chart 信息

helm inspect chart stable/mysql

或者下载后查看:

helm fetch stable/mysql
tar zxvf mysql-*.tgz

12. 创建自己的 Chart

helm create mychart

生成目录结构如下:

mychart/
├── Chart.yaml
├── values.yaml
├── charts/
├── templates/
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── ingress.yaml
│   ├── NOTES.txt
│   └── service.yaml
└── README.md

13. 打包 Chart

helm package mychart

输出:mychart-0.1.0.tgz


14. 查看已部署的 Releases

helm list

显示所有处于 DEPLOYED 状态的 releases。


15. 调试 Chart(渲染模板)

helm install --dry-run --debug ./mychart

用于测试模板渲染是否正确,不真正部署。


⚠️ 注意事项(Helm 2 与 Helm 3 的差异)

| 功能 | Helm 2 | Helm 3 |
|------|--------|--------|
| Tiller | 需要安装 | 不再需要 |
| --tiller-namespace | 支持 | 不支持 |
| --purge 参数 | 有效 | 移除(默认行为)|
| helm init | 必须执行 | 已废弃 |
| RBAC 权限 | 需手动配置 Tiller 权限 | 更简单,客户端权限即可 |


如果你正在维护一个老项目,并且还在使用 Helm 2,建议逐步迁移到 Helm 3,因为 Helm 2 已经停止官方支持。

如需帮助迁移 Helm 2 到 Helm 3,也可以告诉我,我可以提供详细步骤。