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

在GKE中使用Workload Identity(.NET)无法获取访问令牌

GKE Workload Identity令牌获取404问题排查方案
  • 验证IAM服务账号状态
    执行命令确认目标IAM SA是否存在且状态正常:

    gcloud iam service-accounts describe <sa_name>@<project_id>.iam.gserviceaccount.com
    

    若返回NOT_FOUND,说明SA已被删除,需重新创建并关联K8s SA;状态正常则继续下一步。

  • 检查Workload Identity绑定关系

    1. 查看IAM SA的IAM策略,确认是否授予K8s SAroles/iam.workloadIdentityUser权限:
      gcloud iam service-accounts get-iam-policy <sa_name>@<project_id>.iam.gserviceaccount.com
      
      需确保存在成员绑定:serviceAccount:<project_id>.svc.id.goog[<namespace>/<k8s_sa_name>]
    2. 检查K8s SA的注解配置:
      kubectl describe serviceaccount <k8s_sa_name> -n <namespace>
      
      确认iam.gke.io/gcp-service-account注解值与目标IAM SA完全一致,无拼写错误。
  • 确认节点池Workload Identity配置
    检查节点池是否启用GKE元数据模式:

    gcloud container node-pools describe <node_pool_name> --cluster <cluster_name> --zone <zone>
    

    确保workloadMetadataConfig.mode为GKE_METADATA。若未启用,更新节点池并重启Pod:

    gcloud container node-pools update <node_pool_name> --cluster <cluster_name> --zone <zone> --workload-metadata=GKE_METADATA
    
  • 验证Pod的服务账号挂载
    查看Pod的服务账号配置:

    kubectl describe pod <pod_name> -n <namespace>
    

    确认Service Account字段为目标K8s SA,且AutomountServiceAccountToken为true。若配置错误,重新部署Pod并指定正确的spec.serviceAccountName。

  • 修复IAM SA绑定异常
    针对"Gaia id not found"错误,重新建立K8s SA与IAM SA的绑定:

    # 移除旧绑定
    gcloud iam service-accounts remove-iam-policy-binding <sa_name>@<project_id>.iam.gserviceaccount.com \
      --member="serviceAccount:<project_id>.svc.id.goog[<namespace>/<k8s_sa_name>]" \
      --role="roles/iam.workloadIdentityUser"
    # 添加新绑定
    gcloud iam service-accounts add-iam-policy-binding <sa_name>@<project_id>.iam.gserviceaccount.com \
      --member="serviceAccount:<project_id>.svc.id.goog[<namespace>/<k8s_sa_name>]" \
      --role="roles/iam.workloadIdentityUser"
    

    等待1-2分钟让IAM策略同步,重启测试Pod后重试令牌获取操作。

  • 排查元数据服务器端点
    列出所有可用的服务账号,确认默认SA是否存在:

    curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/
    

    若默认SA不在列表中,说明Pod的Workload Identity身份未正确注入,需重新检查节点池和Pod配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:05:26