Helm 入门系列 02:上手就会——Helm 客户端安装与基础使用手把手教学
前言
上一期我们聊了 Helm 是什么、能解决什么问题,这一期直接上实操——从 Helm 客户端的安装,到连接 K8s 集群、玩转 Chart 仓库/安装/升级/卸载,全程手把手拆解,小白也能跟着做!
Helm 作为 K8s 的“包管理器”,核心就是 helm 这个命令行工具。学会它的安装和基础操作,就能搞定绝大部分日常 K8s 应用部署需求,不用再手写一堆 YAML 文件啦。
一、Helm 客户端安装:3 种主流方式,选最顺手的
Helm 3 是目前的主流(Helm 2 已彻底淘汰),支持 Windows/macOS/Linux 全平台,下面按“推荐程度”排序,挑一种适合自己的就行。
1. 包管理器安装(最推荐!简单易维护)
这是最省事的方式,后续更新也方便,主流系统都能一键搞定:
macOS(用 Homebrew):
brew install helmLinux(用 Snap,需提前安装 Snap):
sudo snap install helm --classicWindows(用 Chocolatey,需提前安装 Choco):
choco install kubernetes-helm
✅ 小提示:安装前最好核对下包管理器里的 Helm 版本,确保是稳定版(别装到 alpha/beta 测试版)。
2. 脚本自动安装(macOS/Linux,自动化场景首选)
如果是 CI/CD 脚本部署,或者想快速装最新版 Helm 3,一行命令就能搞定(自动识别系统架构):
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash3. 手动下载二进制(适合自定义安装路径)
不想用包管理器?手动下载也简单:
- 去 Helm 官方发布页,下载对应系统的压缩包(Windows 是 ZIP,macOS/Linux 是 tar.gz);
- 解压:
- Windows:解压后把
helm.exe所在目录加到系统环境变量PATH; - macOS/Linux:执行
tar -zxf helm-xxx.tar.gz,把解压后的helm文件移到/usr/local/bin(或其他 PATH 目录);
- Windows:解压后把
- 验证:执行
helm help,能看到帮助文本就是装好了。
(可选)从源码构建(适合开发/定制)
如果想改 Helm 源码、做二次开发,才需要这个方式(新手直接跳过):
先装依赖:Go 1.19+、Gnu Make、git;
拉源码+编译:
git clone https://github.com/helm/helm.git cd helm make build验证:编译好的文件在
bin/helm,执行./bin/helm version能输出版本信息就成功了。
✅ 通用验证:不管哪种方式,装完执行 helm version,能看到版本信息就说明安装成功!
二、连接 K8s 集群:不用额外配置,复用 kubectl 就行
Helm 3 去掉了繁琐的 Tiller 组件,直接和 K8s API 通信,而且完全复用 kubectl 的配置,不用额外折腾:
- 自动识别:Helm 会先看
$KUBECONFIG环境变量,没有就用默认路径(Linux/macOS:~/.kube/config;Windows:%USERPROFILE%\.kube\config); - 自定义集群:想指定某个 K8s 上下文,用
--kube-context参数(比如helm list --kube-context my-cluster)。
✅ 小技巧:先确保 kubectl get nodes 能正常运行,Helm 就能直接用,不用额外配置!
三、Helm 核心操作:从仓库到卸载,全程实操
Helm 的核心流程就 6 步:加仓库 → 搜 Chart → 装 Chart → 看实例 → 升级 → 卸载,我们一步步拆。
1. 添加 Chart 仓库:找可用的应用包
Chart 仓库就是 Helm 的“应用商店”,里面存着各种现成的 K8s 应用包(Chart)。我们以最常用的 Bitnami 仓库为例(生产级 Chart,靠谱):
# 语法:helm repo add <仓库名> <仓库地址>
helm repo add bitnami https://charts.bitnami.com/bitnami验证添加是否成功:
helm repo list能看到 bitnami 和对应的 URL,就是加好了。
💡 小提示:添加后 Helm 会缓存仓库索引,后续搜 Chart 靠缓存;想获取最新 Chart 版本,执行 helm repo update 更新缓存。
2. 搜索 Chart:找到想要的应用
用 helm search repo 搜 Chart,比如想找 Drupal(开源 CMS):
# 基础搜索:按关键词匹配
helm search repo drupal
# 看所有版本(默认只显示最新稳定版)
helm search repo drupal --versions这里要分清两个版本(别搞混):
- Chart 版本:Helm 包本身的版本(比如 12.0.0),改 Chart 配置/模板会更这个版本;
- 应用版本:Chart 里打包的实际应用版本(比如 Drupal 10.1.0); 简单说:一个应用版本可能对应多个 Chart 版本(比如修复 Chart 的小 bug,Chart 版本升了,应用版本没变)。
3. 安装 Chart:创建第一个 Release(应用实例)
安装 Chart 本质是创建一个“Release”(可以理解为“应用实例”),同一 Chart 能装多个实例(比如两个 MySQL,名字不一样就行)。
基础安装
# 语法:helm install <实例名> <仓库/Chart名>
helm install my-drupal bitnami/drupalmy-drupal 是自定义的实例名,同一 K8s 命名空间里名字要唯一,不同命名空间可以重名(比如给 test 和 prod 命名空间各装一个 my-drupal):
helm install my-drupal bitnami/drupal --namespace test
helm install my-drupal bitnami/drupal --namespace prod安装后会输出一堆关键信息(比如访问地址、默认密码),丢了的话执行 helm get notes my-drupal 就能重新看。
自定义配置(重点!)
默认配置不一定满足需求,比如改 Drupal 管理员账号、数据库名,有两种方式:
👉 方式 1:YAML 文件配置(推荐!适合生产,可版本控制) 先建个 custom-values.yaml 文件:
# custom-values.yaml
drupalUsername: admin # 管理员用户名
drupalEmail: admin@example.com # 管理员邮箱
mariadb:
db:
name: my-db # 关联的MariaDB数据库名安装时指定这个文件:
helm install my-drupal bitnami/drupal --values custom-values.yaml👉 方式 2:命令行 --set(适合临时改少量参数)
helm install my-drupal bitnami/drupal \
--set drupalUsername=admin \
--set mariadb.db.name=my-db⚠️ 避坑点:配置优先级是 --set > 自定义 YAML > Chart 默认 YAML;生产环境别用 --set 传密码(会被 Shell 历史记录抓到)!
4. 查看已安装实例
装完想看看有哪些实例,用 helm list:
# 看当前命名空间的实例
helm list
# 看指定命名空间的实例
helm list --namespace test
# 看所有命名空间的实例
helm list --all-namespaces输出里的关键字段:
- REVISION:修订版本号(首次装是 1,升级/回滚会递增);
- STATUS:状态(deployed=部署成功,failed=失败,uninstalled=已卸载);
5. 升级实例:改配置/升版本
想改实例配置,或者升级 Chart 版本,用 helm upgrade,每次升级会生成新的修订版本(方便后续回滚)。
场景 1:只改配置(Chart 版本不变)
比如之前装的 Drupal 没开 Ingress,现在要开:
helm upgrade my-drupal bitnami/drupal --set ingress.enabled=true场景 2:只升 Chart 版本(复用旧配置)
# 先更仓库缓存(拿最新Chart版本)
helm repo update
# 升最新版本(复用之前的配置)
helm upgrade my-drupal bitnami/drupal --reuse-values
# 升指定版本(比如11.9.0)
helm upgrade my-drupal bitnami/drupal --version 11.9.0 --reuse-values场景 3:同时改配置+升版本
helm upgrade my-drupal bitnami/drupal \
--version 12.0.0 \ # 升Chart版本
--values custom-values.yaml # 用新配置✅ 小提示:升级时如果不指定 --values/--set,会用 Chart 默认配置(之前的自定义配置会丢),生产环境一定要显式传配置文件!
想查升级历史,执行 helm history my-drupal 就能看所有修订版本。
6. 卸载实例:删除应用
不用的实例可以卸载,用 helm uninstall:
# 基础卸载(当前命名空间)
helm uninstall my-drupal
# 卸载指定命名空间的实例
helm uninstall my-drupal --namespace test⚠️ 注意:默认卸载会删掉所有资源+修订记录,想保留历史(方便审计/回滚),加 --keep-history:
helm uninstall my-drupal --keep-history保留的历史存在 K8s 的 Secret 里,占少量资源,没用的话记得定期清理。
四、核心要点总结
- Helm 3 不用装 Tiller,直接连 K8s API,配置复用 kubectl 的,不用额外折腾;
- Release(实例)名称按 K8s 命名空间隔离,同一命名空间唯一;
- 配置优先用 YAML 文件管理,方便追溯和版本控制;
- 每次升级生成新修订版本,是 Helm 能回滚的关键;
- 卸载默认删光所有东西,保留历史加
--keep-history。
