helm包管理工具

Helm 是 Kubernetes(K3s/K8s)的包管理器,就像 Linux 的 apt/yum、Python 的 pip,专门用来一键安装、管理、升级集群里的复杂应用

一、一句话定位

Helm = K8s 应用的 “一键安装 + 版本管理 + 配置中心” 工具,底层还是调用 kubectl API,但帮你把一堆 YAML 打包、模板化、可复用

二、三大核心概念(必须懂)

概念通俗理解作用
Chart应用安装包(.tgz包含所有 K8s 资源模板(Deployment/Service/Ingress 等)+ 默认配置
Repository应用商店存放 Chart 的仓库(如 Bitnami、官方仓库),可添加、搜索、下载
Release已安装的应用实例每个 helm install 生成一个 Release,可多实例、可回滚、可卸载

三、Helm 3 核心特点(现在都用 V3)

  • 纯客户端:去掉了旧版的 Tiller 服务端,直接用你的 kubeconfig 权限操作集群,更安全、更简单
  • 模板化配置:用 values.yaml 统一改参数,不用手动改一堆 YAML
  • 版本与回滚helm upgrade/helm rollback 一键升级 / 回退,有历史记录
  • 一键清理helm uninstall 自动删干净所有关联资源,无残留Helm

四、为什么要用 Helm(对比纯 kubectl)

  • 纯 kubectl:写一堆 YAML → 逐个 apply → 改配置要逐个改 → 升级 / 回滚 / 卸载麻烦 → 无版本记录
  • Helm:一条命令安装 → 统一 values.yaml 配置 → 一键升级 / 回滚 / 卸载 → 有版本、可复用、适合生产

五、常用命令:

# 1. 添加仓库(以 Bitnami 为例)
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

# 2. 搜索 Chart
helm search repo nginx

# 3. 安装(生成 Release)
helm install my-nginx bitnami/nginx

# 4. 查看已安装的 Release
helm list

# 5. 升级(改配置后)
helm upgrade my-nginx bitnami/nginx -f values.yaml

# 6. 回滚
helm rollback my-nginx 1

# 7. 卸载(彻底清理)
helm uninstall my-nginx

六、场景:

  • 集群组件:Longhorn、Traefik、Prometheus、Grafana 等 → 必须用 Helm,省心、易维护
  • 简单业务:单个 Nginx、小服务 → 可用 kubectl 或 Helm

一句话总结:Helm 让 K8s 应用部署从 “手动拼积木” 变成 “一键安装软件

七、安装

一键安装:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

查看版本:

知名公共仓库(常用):

标签