k8s-helm命令

下面给你一份 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
相关推荐
菜鸟是大神4 小时前
07-Claude Code 的常用命令和快捷键
linux·运维·服务器
hj2862514 小时前
Linux存储空间管理完整笔记
linux·运维·笔记
Championship.23.245 小时前
Linux 3.0 中断机制深度解析:从传统PIC到现代中断架构的转折点
linux·运维·架构·中断
小猫咪015 小时前
Linux OOM Killer 是什么?程序为什么突然被杀?
linux·运维·服务器
404是NotFound呀5 小时前
[FPGA] Ubuntu 22.04 安装 Vivado 2023.1 和 PetaLinux 踩坑记录
linux·ubuntu·fpga开发
lightqjx5 小时前
【Linux】从冯·诺依曼体系到操作系统的理解
linux·运维·服务器·冯·诺依曼体系
kobe_OKOK_5 小时前
分配free空間給ubuntu server
linux·运维·ubuntu
qq_452396236 小时前
第四篇:《Docker 镜像:分层结构、拉取与推送》
运维·docker·容器
我命由我123456 小时前
C++ - 面向对象 - 常成员函数
android·java·linux·c语言·开发语言·c++·算法