本文目录导读:

开源项目的 Helm Chart 使用主要分为三个步骤:获取 Chart 包、配置参数、部署应用,以下是详细的操作指南:
获取 Helm Chart
开源项目通常会提供以下几种方式来让你获取其 Chart:
-
直接添加 Helm 仓库(推荐) 大多数流行的开源项目(如 Nginx、Elasticsearch、Jenkins、ArgoCD)都有官方的 Helm 仓库。
# 1. 添加官方 Helm 仓库到本地 helm repo add <repo-name> <repo-url> # 添加 Bitnami 仓库(很多开源项目托管在此) helm repo add bitnami https://charts.bitnami.com/bitnami # 或者添加项目官方仓库,如 Jenkins helm repo add jenkins https://charts.jenkins.io/ # 2. 更新仓库索引,获取最新版本 helm repo update
-
从源代码中解压 项目在 GitHub 仓库中通常包含
/charts或/deploy/helm文件夹,你可以直接下载该文件夹到本地。# 克隆项目仓库 git clone <项目Git地址> # 进入 Helm Chart 目录(通常是 charts/项目名 或 deploy/helm) cd 项目目录/charts/项目名
-
使用 OCI 注册表(新趋势) 部分现代项目将 Chart 打包成 OCI 镜像存储在 Docker Hub 或 Harbor 中。
# 直接从 OCI 注册表拉取(无需添加仓库) helm install my-release oci://registry-1.docker.io/bitnamicharts/nginx
配置参数
通常不需要使用复杂参数,直接使用默认值即可,但为了生产环境或自定义需求,你需要覆盖默认的 values.yaml。
-
直接命令行覆盖(适合少量修改)
# 格式:--set 路径=值 helm install my-nginx bitnami/nginx --set service.type=NodePort --set replicaCount=3
-
使用自定义
values.yaml文件(推荐生产环境) 先在本地创建一个名为my-values.yaml的文件,内容如下:# my-values.yaml replicaCount: 3 image: tag: "latest" service: type: LoadBalancer ingress: enabled: true hostname: myapp.example.com
然后部署时指定该文件:
helm install my-release bitnami/nginx -f my-values.yaml
-
如何知道有哪些配置项?
- 查看 Chart 文档:通常在项目官网或
README.md中有详细的配置说明。 - 查看默认值:使用
helm show values命令直接查看 Chart 默认的完整values.yaml。helm show values bitnami/nginx
- 查看 Chart 文档:通常在项目官网或
部署 Chart
这是最重要的一步,使用 helm install 命令。
# 语法:helm install [release名称] [chart名称] [可选参数] # release名称由你自定义,用于管理该次部署 # 最简单部署(使用默认值) helm install my-release bitnami/nginx # 带自定义文件部署 helm install my-release bitnami/nginx -f my-values.yaml # 从本地目录部署(适用于方式二) helm install my-release ./path/to/your/chart
管理部署(常用命令)
一旦部署成功,就可以使用 Helm 进行全生命周期管理:
- 查看部署列表:
helm list - 查看部署状态:
helm status my-release - 升级版本(修改配置、更新镜像):
helm upgrade my-release -f new-values.yaml - 回滚到上一个版本:
helm rollback my-release 1 - 卸载:
helm uninstall my-release
完整示例:部署一个开源项目(以 Jenkins 为例)
假设你想在 Kubernetes 上安装 Jenkins:
# 1. 添加仓库
helm repo add jenkins https://charts.jenkins.io/
helm repo update
# 2. 查看默认配置(了解需要配置哪些参数)
helm show values jenkins/jenkins
# 3. 创建一个自定义的 jenkins-values.yaml 文件,修改内容如下:
cat > jenkins-values.yaml << EOF
# jenkins-values.yaml
controller:
adminUser: "admin"
adminPassword: "myStrongPassword"
serviceType: LoadBalancer
ingress:
enabled: true
hostName: jenkins.example.com
persistence:
size: 10Gi
EOF
# 4. 部署(ret 是自定义的 release 名称)
helm install my-jenkins jenkins/jenkins -f jenkins-values.yaml --namespace jenkins --create-namespace
# 5. 查看部署进度
helm status my-jenkins -n jenkins
kubectl get pods -n jenkins -w
注意事项
- 命名空间:建议使用
--namespace参数将不同 Chart 实例隔离。 - 版本兼容性:确保 Chart 的 API 版本与你的 Kubernetes 集群版本兼容(
helm linter可检查)。 - 依赖关系:Chart 依赖其他 Chart(如数据库),确保已提前准备好或 Chart 会自行部署(例如使用
bitnami/wordpress时会自动部署 MariaDB)。 - 查看文档:强烈建议在使用前运行
helm show readme <chart>查看说明,或访问项目官网(如 Jenkins 的 Helm Chart 说明页)。
这样,你就可以像使用 Linux 的 yum 或 apt 一样,通过 Helm 优雅地管理开源应用了。