GKE集群中Pod缺失服务账户令牌问题咨询
GKE中Pod关联服务账户但未找到令牌目录的原因及解决办法
- GKE默认启用Workload Identity特性,这是它和原生Kubernetes的核心差异之一。当该特性生效时,Pod不会挂载传统的
/var/run/secrets/kubernetes.io/serviceaccount目录,而是通过绑定IAM角色来获取云服务权限,替代了ServiceAccount令牌的挂载机制。 - 检查集群是否启用Workload Identity:
若输出包含gcloud container clusters describe <cluster-name> --zone <cluster-zone> | grep workloadIdentityConfigworkloadIdentityConfig相关配置,说明该特性已启用。 - 如需恢复传统ServiceAccount令牌挂载,可给Pod关联的ServiceAccount添加注解:
这样GKE会自动挂载令牌目录到Pod内。annotations: iam.gke.io/gcp-service-account: "" - 另外排查
automountServiceAccountToken字段:
若返回kubectl get pod <pod-name> -o jsonpath='{.spec.automountServiceAccountToken}' -n <namespace>false,需修改Deployment的spec.template.spec.automountServiceAccountToken为true,强制开启令牌自动挂载。
内容的提问来源于stack exchange,提问作者Dinesh Raj
相关产品推荐
相关产品推荐

