使用 GKE Workload Identity 时出现 MetadataServerException

Cha*_*gan 3 gcloud google-kubernetes-engine google-iam

我正在尝试在我的集群上启用Workload Identity,但在从 pod 测试时出现以下错误:

root@workload-identity-test:/# gcloud auth list
ERROR: gcloud crashed (MetadataServerException): HTTP Error 500: Internal Server Error

If you would like to report this issue, please run the following command:
  gcloud feedback

To check gcloud for common problems, please run the following command:
  gcloud info --run-diagnostics
Run Code Online (Sandbox Code Playgroud)

我已启用workload-metadata-from-node

gcloud beta container node-pools update NAME --cluster NAME --workload-metadata-from-node=GKE_METADATA_SERVER
Updating node pool main...done.
Run Code Online (Sandbox Code Playgroud)

即使我添加--log-http到命令中,它似乎也没有显示返回 500 的请求(也不重要的是,它的响应)。

有任何想法吗?(我在新集群上遇到同样的错误)

Cha*_*gan 5

更新我已经能够使用workloadIdentityUser 完成此工作。如果您仍然遇到问题,我建议您遵循John's Answer 中概述的删除-重新创建提示。

根据gke-metadata-xxxx运行测试的节点上的pod记录的错误,我需要使用roles/iam.serviceAccountTokenCreator而不是roles/iam.workloadIdentityUser上面链接的教程中的建议。

这使我可以按预期使用该功能,但是由于该角色未记录在案,我不确定通过进行此切换我可能会授予哪些额外权限。