You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google Cloud Build使用Helm Charts完成K8s应用部署

Cloud Build Helm 步骤故障修复

你当前的helm步骤无法运行主要有两个问题:

  1. Cloud Build的默认服务账号没有操作GKE集群的权限,你需要先在GCP IAM控制台为[项目ID]@cloudbuild.gserviceaccount.com账号授予Kubernetes Engine Developer角色
  2. helm upgrade命令格式错误,覆写Chart values需要加--set参数,且运行helm前需要先获取GKE集群的访问凭证

修正后的cloudbuild.yaml示例

steps:
  # 原有镜像构建、推送步骤不变
  - name: 'gcr.io/cloud-builders/docker'
    args: ["build", "-t", "gcr.io/kubernetes-amit-test/github.com/0xvoila/apache/phoenix:$SHORT_SHA", "."]

  - name: "gcr.io/cloud-builders/docker"
    args: ["push", "gcr.io/kubernetes-amit-test/github.com/0xvoila/apache/phoenix:$SHORT_SHA"]

  # 修复后的helm部署步骤
  - name: 'gcr.io/cloud-builders/gcloud'
    entrypoint: 'bash'
    args:
      - '-c'
      - |
        # 拉取GKE集群访问凭证
        gcloud container clusters get-credentials 你的集群名称 --zone 集群所在可用区 --project kubernetes-amit-test
        # 执行helm升级,--install表示如果release不存在就先安装
        helm upgrade --install phoenix ./你的Chart本地路径 --set image.repository=gcr.io/kubernetes-amit-test/github.com/0xvoila/apache/phoenix,image.tag=$SHORT_SHA

如果你的Chart存放在远程Helm仓库,需要先执行helm repo add添加仓库,再替换./你的Chart本地路径为仓库名/Chart名即可。


疑问解答

1. 如何使用helm升级到最新版本的Chart?

分两种场景处理:

  • Chart和业务代码同仓库/本地存储:CI运行时拉取最新的仓库代码,直接执行上述helm upgrade命令即可自动使用最新版本的Chart模板升级
  • Chart存放在远程Helm仓库:执行升级前先运行helm repo update拉取最新的仓库索引,helm upgrade时如果不指定--version参数默认会使用最新的稳定版本,也可以手动指定版本号升级。

2. 该方式是否是K8s部署的最佳实践?行业内是否普遍使用helm?

Helm是目前Kubernetes生态应用包管理的事实标准,几乎所有开源项目和企业都在使用Helm管理K8s资源模板,属于行业通用工具,新手可以放心学习使用。
你当前使用Cloud Build+Helm的推送式CI/CD方案,适合小团队、项目数量较少的场景,是合理可行的。如果后续团队规模扩大、项目增多,更推荐使用Argo CD、Flux CD这类GitOps工具实现拉取式部署,不需要给CI系统开放集群操作权限,安全性、可观测性和回滚能力都会更强,属于大规模场景下的最佳实践。


内容的提问来源于stack exchange,提问作者voila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:54:02