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,也可以告诉我,我可以提供详细步骤。