下面给你一份 Helm 常用命令速查,偏 Kubernetes 实战用法。
1. Helm 是什么?
Helm 可以理解为 Kubernetes 的包管理器。
你可以把它类比为:
text
apt / yum / brew / pip
只是 Helm 管的是 Kubernetes 应用。
Helm 里面几个核心概念:
text
Chart = 应用安装包
Release = Chart 安装后的实例
Repository = Chart 仓库
Values = 安装参数配置
比如:
bash
helm install raycluster kuberay/ray-cluster --version 1.6.0 -n prefect -f values.yaml
含义是:
text
用 kuberay/ray-cluster 这个 Chart
安装一个 Release,名字叫 raycluster
版本是 1.6.0
安装到 prefect namespace
使用 values.yaml 覆盖默认配置
2. 查看 Helm 版本
bash
helm version
3. 添加 Chart 仓库
例如添加 KubeRay 仓库:
bash
helm repo add kuberay https://ray-project.github.io/kuberay-helm/
更新仓库索引:
bash
helm repo update
查看仓库:
bash
helm repo list
删除仓库:
bash
helm repo remove kuberay
4. 搜索 Chart
从本地已添加仓库搜索:
bash
helm search repo kuberay
查看具体 chart:
bash
helm search repo kuberay/ray-cluster
查看所有版本:
bash
helm search repo kuberay/ray-cluster --versions
5. 查看 Chart 默认 values
这是非常常用的命令。
bash
helm show values kuberay/ray-cluster
指定版本:
bash
helm show values kuberay/ray-cluster --version 1.6.0
保存到文件:
bash
helm show values kuberay/ray-cluster --version 1.6.0 > values-default.yaml
查看 Chart 信息:
bash
helm show chart kuberay/ray-cluster --version 1.6.0
查看 README:
bash
helm show readme kuberay/ray-cluster --version 1.6.0
6. 安装应用:helm install
基本格式:
bash
helm install <release-name> <chart-name>
例如:
bash
helm install raycluster kuberay/ray-cluster
指定版本:
bash
helm install raycluster kuberay/ray-cluster --version 1.6.0
指定 namespace:
bash
helm install raycluster kuberay/ray-cluster -n prefect
如果 namespace 不存在,自动创建:
bash
helm install raycluster kuberay/ray-cluster \
-n prefect \
--create-namespace
使用 values 文件:
bash
helm install raycluster kuberay/ray-cluster \
-n prefect \
-f values.yaml
使用 --set 临时覆盖参数:
bash
helm install raycluster kuberay/ray-cluster \
-n prefect \
--set worker.replicas=0
多个 --set:
bash
helm install raycluster kuberay/ray-cluster \
-n prefect \
--set image.tag=2.52.0 \
--set worker.replicas=1
7. 查看已安装 Release
当前 namespace:
bash
helm list
指定 namespace:
bash
helm list -n prefect
所有 namespace:
bash
helm list -A
模糊查找:
bash
helm list -A | grep ray
8. 查看 Release 详情
查看状态:
bash
helm status raycluster -n prefect
查看 values:
bash
helm get values raycluster -n prefect
查看所有 values,包括默认值:
bash
helm get values raycluster -n prefect --all
查看渲染后的 manifest:
bash
helm get manifest raycluster -n prefect
查看历史版本:
bash
helm history raycluster -n prefect
9. 升级应用:helm upgrade
修改 values 后升级:
bash
helm upgrade raycluster kuberay/ray-cluster \
-n prefect \
-f values.yaml
指定 chart 版本:
bash
helm upgrade raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f values.yaml
用 --set 升级:
bash
helm upgrade raycluster kuberay/ray-cluster \
-n prefect \
--set worker.replicas=1
10. install 或 upgrade 合并写法
很常用:
bash
helm upgrade --install raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
--create-namespace \
-f values.yaml
意思:
text
如果没有安装,就 install
如果已经安装,就 upgrade
推荐日常使用这个。
11. 卸载应用:helm uninstall
bash
helm uninstall raycluster -n prefect
如果在 default namespace:
bash
helm uninstall raycluster
查看是否删掉:
bash
helm list -n prefect
kubectl get all -n prefect
12. 回滚:helm rollback
查看历史:
bash
helm history raycluster -n prefect
回滚到某个 revision:
bash
helm rollback raycluster 1 -n prefect
例如回滚到 revision 2:
bash
helm rollback raycluster 2 -n prefect
13. 渲染但不安装:helm template
只看 Helm 会生成什么 YAML:
bash
helm template raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f values.yaml
输出保存:
bash
helm template raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f values.yaml > rendered.yaml
这对排查 values 是否生效非常有用。
14. 试运行:--dry-run
安装前模拟:
bash
helm install raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f values.yaml \
--dry-run --debug
升级前模拟:
bash
helm upgrade raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f values.yaml \
--dry-run --debug
15. 检查 values 是否生效
比如你要确认 RayCluster 的资源 request 是否变成了 768Mi:
bash
helm template raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f raycluster-k3d-small-values.yaml | grep -A20 resources
或者安装后查:
bash
kubectl get raycluster raycluster-kuberay -n prefect -o yaml
查看 Pod:
bash
kubectl describe pod <pod-name> -n prefect
16. 常见 Helm 参数
| 参数 | 作用 |
|---|---|
-n / --namespace |
指定 namespace |
--create-namespace |
namespace 不存在时创建 |
-f values.yaml |
使用 values 文件 |
--set key=value |
命令行覆盖 values |
--version |
指定 chart 版本 |
--dry-run |
模拟执行,不真正安装 |
--debug |
输出调试信息 |
--wait |
等待资源 ready |
--timeout 5m |
设置等待超时 |
--atomic |
失败自动回滚 |
--values |
等同于 -f |
17. 常见组合命令
安装 KubeRay Operator
bash
helm repo add kuberay https://ray-project.github.io/kuberay-helm/
helm repo update
helm install kuberay-operator kuberay/kuberay-operator \
--version 1.6.0 \
-n prefect \
--create-namespace
安装 RayCluster
bash
helm install raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f raycluster-k3d-small-values.yaml
升级 RayCluster
bash
helm upgrade raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
-f raycluster-k3d-small-values.yaml
安装或升级
bash
helm upgrade --install raycluster kuberay/ray-cluster \
--version 1.6.0 \
-n prefect \
--create-namespace \
-f raycluster-k3d-small-values.yaml
卸载
bash
helm uninstall raycluster -n prefect
18. Helm 和 kubectl 的关系
Helm 负责:
text
安装/升级/卸载一组 Kubernetes YAML
kubectl 负责:
text
查看/操作 Kubernetes 资源本身
比如 Helm 安装后,你还是用 kubectl 看 Pod:
bash
kubectl get pods -n prefect
kubectl describe pod <pod-name> -n prefect
kubectl logs <pod-name> -n prefect
19. 常见问题
1)install 失败了怎么删?
bash
helm list -A
helm uninstall <release-name> -n <namespace>
如果 release 没有,但资源残留:
bash
kubectl get all -A | grep <name>
kubectl delete <resource> <name> -n <namespace>
2)cannot re-use a name that is still in use
说明 release 名字已经存在。
查看:
bash
helm list -A | grep raycluster
删除:
bash
helm uninstall raycluster -n prefect
或者改名安装:
bash
helm install raycluster2 kuberay/ray-cluster -n prefect
3)namespace 不存在
加:
bash
--create-namespace
例如:
bash
helm install raycluster kuberay/ray-cluster \
-n prefect \
--create-namespace
4)values 不生效
先渲染检查:
bash
helm template raycluster kuberay/ray-cluster \
-n prefect \
-f values.yaml
再查看默认 values:
bash
helm show values kuberay/ray-cluster --version 1.6.0
可能是字段路径写错了。
20. 最常用 10 条
bash
helm version
helm repo add kuberay https://ray-project.github.io/kuberay-helm/
helm repo update
helm search repo kuberay
helm show values kuberay/ray-cluster --version 1.6.0
helm install raycluster kuberay/ray-cluster -n prefect -f values.yaml
helm upgrade raycluster kuberay/ray-cluster -n prefect -f values.yaml
helm upgrade --install raycluster kuberay/ray-cluster -n prefect -f values.yaml
helm list -A
helm uninstall raycluster -n prefect