开源项目的Helm Chart如何使用

wen 开源项目 1

本文目录导读:

开源项目的Helm Chart如何使用

  1. 获取 Helm Chart
  2. 配置参数
  3. 部署 Chart
  4. 管理部署(常用命令)
  5. 完整示例:部署一个开源项目(以 Jenkins 为例)
  6. 注意事项

开源项目的 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
  • 如何知道有哪些配置项?

    1. 查看 Chart 文档:通常在项目官网或 README.md 中有详细的配置说明。
    2. 查看默认值:使用 helm show values 命令直接查看 Chart 默认的完整 values.yaml
      helm show values bitnami/nginx

部署 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

注意事项

  1. 命名空间:建议使用 --namespace 参数将不同 Chart 实例隔离。
  2. 版本兼容性:确保 Chart 的 API 版本与你的 Kubernetes 集群版本兼容(helm linter 可检查)。
  3. 依赖关系:Chart 依赖其他 Chart(如数据库),确保已提前准备好或 Chart 会自行部署(例如使用 bitnami/wordpress 时会自动部署 MariaDB)。
  4. 查看文档:强烈建议在使用前运行 helm show readme <chart> 查看说明,或访问项目官网(如 Jenkins 的 Helm Chart 说明页)。

这样,你就可以像使用 Linux 的 yumapt 一样,通过 Helm 优雅地管理开源应用了。

抱歉,评论功能暂时关闭!