Skip to content

Helm 入门系列 02:上手就会——Helm 客户端安装与基础使用手把手教学

约 2076 字大约 7 分钟

Helm 入门系列云原生Helm

2026-03-31

前言

上一期我们聊了 Helm 是什么、能解决什么问题,这一期直接上实操——从 Helm 客户端的安装,到连接 K8s 集群、玩转 Chart 仓库/安装/升级/卸载,全程手把手拆解,小白也能跟着做!

Helm 作为 K8s 的“包管理器”,核心就是 helm 这个命令行工具。学会它的安装和基础操作,就能搞定绝大部分日常 K8s 应用部署需求,不用再手写一堆 YAML 文件啦。

一、Helm 客户端安装:3 种主流方式,选最顺手的

Helm 3 是目前的主流(Helm 2 已彻底淘汰),支持 Windows/macOS/Linux 全平台,下面按“推荐程度”排序,挑一种适合自己的就行。

1. 包管理器安装(最推荐!简单易维护)

这是最省事的方式,后续更新也方便,主流系统都能一键搞定:

  • macOS(用 Homebrew):

    brew install helm
  • Linux(用 Snap,需提前安装 Snap):

    sudo snap install helm --classic
  • Windows(用 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 | bash

3. 手动下载二进制(适合自定义安装路径)

不想用包管理器?手动下载也简单:

  1. Helm 官方发布页,下载对应系统的压缩包(Windows 是 ZIP,macOS/Linux 是 tar.gz);
  2. 解压:
    • Windows:解压后把 helm.exe 所在目录加到系统环境变量 PATH
    • macOS/Linux:执行 tar -zxf helm-xxx.tar.gz,把解压后的 helm 文件移到 /usr/local/bin(或其他 PATH 目录);
  3. 验证:执行 helm help,能看到帮助文本就是装好了。

(可选)从源码构建(适合开发/定制)

如果想改 Helm 源码、做二次开发,才需要这个方式(新手直接跳过):

  1. 先装依赖:Go 1.19+、Gnu Make、git;

  2. 拉源码+编译:

    git clone https://github.com/helm/helm.git
    cd helm
    make build
  3. 验证:编译好的文件在 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/drupal

my-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 里,占少量资源,没用的话记得定期清理。

四、核心要点总结

  1. Helm 3 不用装 Tiller,直接连 K8s API,配置复用 kubectl 的,不用额外折腾;
  2. Release(实例)名称按 K8s 命名空间隔离,同一命名空间唯一;
  3. 配置优先用 YAML 文件管理,方便追溯和版本控制;
  4. 每次升级生成新修订版本,是 Helm 能回滚的关键;
  5. 卸载默认删光所有东西,保留历史加 --keep-history