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

GitHub Actions工作流Kustomization阶段部署GKE失败问题求助

根因分析

报错核心原因是执行kustomize命令的目录下不存在kustomization.yaml文件,结合你提供的工作流配置,触发问题的具体逻辑如下:

  1. 你在job的全局配置中指定了defaults.run.working-directory: api,所有run步骤默认都会在api子目录下执行
  2. 你的kustomization.yaml文件要么未提交到仓库,要么存放在api目录以外的位置(比如仓库根目录、专门的k8s配置目录)

修复方案

  • 第一步先确认你已经在仓库中提交了kustomization.yaml文件,该文件是Kustomize的基础配置文件,需要提前编写好声明依赖的K8s资源,基础示例如下:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  # 替换为你实际的deployment、service等资源文件路径
  - deployment.yaml
  - service.yaml
images:
  - name: gcr.io/PROJECT_ID/IMAGE:TAG
    newName: placeholder
    newTag: placeholder
  • 如果kustomization.yaml存放在仓库根目录,修改Deploy步骤,显式指定工作目录覆盖全局配置:
- name: Deploy
  # 切换到仓库根目录执行命令
  working-directory: .
  run: |-
    ./kustomize edit set image gcr.io/PROJECT_ID/IMAGE:TAG=gcr.io/$PROJECT_ID/$IMAGE:$GITHUB_SHA
    ./kustomize build . | kubectl apply -f -
    kubectl rollout status deployment/$DEPLOYMENT_NAME
    kubectl get services -o wide

如果kustomization.yaml存放在其他目录,将working-directory的值替换为对应路径即可。

  • 可选优化:调整Kustomize安装步骤,将二进制文件放到系统PATH路径下,避免不同工作目录下找不到执行文件的问题:
- name: Set up Kustomize
  run: |-
    curl -sfLo kustomize https://github.com/kubernetes-sigs/kustomize/releases/download/v3.1.0/kustomize_3.1.0_linux_amd64
    chmod u+x ./kustomize
    sudo mv ./kustomize /usr/local/bin/

修改后后续所有步骤都可以直接调用kustomize命令,无需加./前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 02:15:03