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

GKE同命名空间下Job使用cloudsql-proxy配合Workload Identity出现scope检查超时问题

问题根因及解决方案

你的报错本质是Pod无法通过GKE Workload Identity的元数据代理服务获取到对应服务账号的权限配置,同命名空间同KSA的Deployment正常,说明GSA-KSA绑定本身没有问题,问题出在Job的Pod配置差异上,按以下优先级排查修复:

1. 检查Job是否正确配置了服务账号

你必须在Job.spec.template.spec中显式指定serviceAccountName为绑定了GSA的KSA名称,不可省略或使用默认的default服务账号:

apiVersion: batch/v1
kind: Job
spec:
  template:
    spec:
      serviceAccountName: 【你的绑定了GSA的KSA名称】 # 必须和正常运行的Deployment使用的SA完全一致
      # 禁止配置 hostNetwork: true,该配置会绕过Workload Identity的元数据代理

特别注意:不要在Job的Pod配置中开启hostNetwork: true,开启后会直接访问节点元数据服务器,绕过Workload Identity代理逻辑,直接触发超时错误

2. 新增参数跳过云API作用域检查

Workload Identity模式下不需要依赖节点的OAuth作用域配置,你可以直接给cloudsql-proxy启动命令添加-skip_scopes_check=true参数跳过报错的检查步骤,修改后的args配置如下:

args:
  - |
    /cloud_sql_proxy -instances={{ $global.Values.cloudsql.connection_string }}=tcp:{{ $global.Values.cloudsql.port }} -term_timeout=30s -log_debug_stdout=true -skip_scopes_check=true &
    CHILD_PID=$!
    ls -al
    (while true; do if [[ -f "/signals/finished" ]]; then kill $CHILD_PID; fi; sleep 1; done) &
    wait $CHILD_PID
    if [[ -f "/signals/finished" ]]; then exit 0; fi

3. 检查禁用Workload Identity的错误注解

确认Job.spec.template.metadata.annotations中没有配置iam.gke.io/skip-workload-identity: "true",该注解会强制关闭当前Pod的Workload Identity能力。

4. 升级cloudsql-proxy版本

你当前使用的1.15版本是2020年发布的老旧版本,对Workload Identity的适配存在已知缺陷,建议升级到最新稳定版本gcr.io/cloudsql-docker/gce-proxy:1.33.14即可解决兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:36:03