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

为何GCP无官方Helm Cloud Builder?alpine/helm部署失败求方案

问题解答

一、为什么GCP官方Cloud Builders列表中没有Helm Cloud Builder?

  • 官方Cloud Builders优先覆盖GCP原生核心服务,Helm属于Kubernetes生态工具,官方认为用户可通过自定义镜像或现有工具组合实现需求
  • 社区已有成熟的第三方Helm镜像(比如你使用的alpine/helm),官方无需重复维护
  • Helm版本迭代频繁,官方维护镜像需要持续跟进版本更新,成本较高

二、Cloud Build中使用Helm报错gke-gcloud-auth-plugin not found的解决方案

你遇到的核心问题是alpine/helm镜像未预装gke-gcloud-auth-plugin工具,仅设置USE_GKE_GCLOUD_AUTH_PLUGIN=True环境变量无效——这个变量只是告知kubectl/helm要使用插件,但插件本身不存在。以下是几种可行方案:

方案1:基于官方gcloud镜像安装Helm和认证插件

直接使用GCP官方的gcr.io/cloud-builders/gcloud镜像,在步骤中完成Helm和gke-gcloud-auth-plugin的安装,确保凭证与工具兼容:

steps:
  # 原有构建、推送镜像步骤保持不变...

  # 获取GKE集群凭证
  - name: "gcr.io/cloud-builders/gcloud"
    args:
      - "container"
      - "clusters"
      - "get-credentials"
      - "$_CUSTOM_CLUSTER"
      - "--region"
      - "$_CUSTOM_REGION"
    env:
      - "KUBECONFIG=/workspace/.kube/config"

  # 安装Helm、认证插件并执行部署
  - name: "gcr.io/cloud-builders/gcloud"
    entrypoint: "bash"
    args:
      - "-c"
      - |
        # 安装Helm
        curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
        # 安装gke-gcloud-auth-plugin
        gcloud components install gke-gcloud-auth-plugin
        # 执行Helm部署
        helm upgrade -i $_CONTAINER_NAME ./cloudbuild/$_CONTAINER_NAME/k8s \
          --set image.repository=$_IMAGE_REPO/$_CONTAINER_NAME,image.tag=$COMMIT_SHA \
          -f ./cloudbuild/$_CONTAINER_NAME/k8s/values.yaml
    env:
      - "KUBECONFIG=/workspace/.kube/config"
      - "USE_GKE_GCLOUD_AUTH_PLUGIN=True"

方案2:自定义包含Helm和认证插件的Cloud Builder镜像

构建专属镜像,预装Helm、gcloud和gke-gcloud-auth-plugin,后续Cloud Build直接复用该镜像:
Dockerfile示例:

FROM gcr.io/cloud-builders/gcloud
RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
RUN gcloud components install gke-gcloud-auth-plugin
ENV USE_GKE_GCLOUD_AUTH_PLUGIN=True

构建并推送到GCR:

docker build -t gcr.io/your-project/helm-gcloud-builder .
docker push gcr.io/your-project/helm-gcloud-builder

修改cloudbuild.yaml中的部署步骤:

- name: "gcr.io/your-project/helm-gcloud-builder"
  args:
    - "upgrade"
    - "-i"
    - "$_CONTAINER_NAME"
    - "./cloudbuild/$_CONTAINER_NAME/k8s"
    - "--set"
    - "image.repository=$_IMAGE_REPO/$_CONTAINER_NAME,image.tag=$COMMIT_SHA"
    - "-f"
    - "./cloudbuild/$_CONTAINER_NAME/k8s/values.yaml"
  env:
    - "KUBECONFIG=/workspace/.kube/config"

方案3:修改kubeconfig跳过插件使用(临时过渡)

如果不想安装插件,可临时修改kubeconfig,移除调用gke-gcloud-auth-plugin的配置,回到旧认证方式(注意:该方式未来可能被GKE弃用):

# 在kubectl配置步骤后添加:
- name: "gcr.io/cloud-builders/kubectl"
  entrypoint: "bash"
  args:
    - "-c"
    - |
      sed -i '/exec:/,+4d' /workspace/.kube/config

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:35:30