创建GKE Standard集群遇PERMISSIONS_ERROR权限错误求助
GKE Standard集群创建权限错误解析与修复
1. 报错中的陌生服务账号说明
874xxxxxxx@cloudservices.gserviceaccount.com是GCP的默认托管服务账号,属于GCP内部维护的系统账号,不会显示在IAM控制台的自定义服务账号列表中。GKE在创建节点池的底层流程中,会调用这个账号操作Compute Engine等资源,它的权限配置是集群创建的必要前提,和你选择的自定义节点服务账号是完全独立的两类账号。
2. 报错核心原因
你选中的自定义服务账号是给GKE节点及Pod使用的,但集群创建阶段的底层资源(如VM实例)创建操作,依赖的是这个托管服务账号的权限——它缺少compute.instances.create等关键权限,导致创建失败。
3. 正确的服务账号配置与权限要求
需要区分两类服务账号的作用及权限:
- 托管服务账号(报错中的系统账号):
需分配以下角色(或包含对应权限的自定义角色):roles/compute.instanceAdmin.v1:具备创建、管理Compute实例的完整权限roles/container.admin:GKE集群管理的核心权限roles/iam.serviceAccountUser:允许该账号使用节点服务账号的权限
- 自定义节点服务账号:
这是节点上Pod默认使用的账号,根据你的业务需求分配权限即可(比如roles/storage.objectViewer用于访问GCS),在集群创建的「节点池」配置的「服务账号」选项中选择它即可。
4. 修复步骤
- 打开GCP IAM控制台,切换到「所有服务账号」视图,通过搜索
cloudservices.gserviceaccount.com找到该托管账号 - 点击「添加角色」,为其分配上述必要角色
- 重新尝试创建GKE Standard集群
内容的提问来源于stack exchange,提问作者Abhishek Solanki
相关产品推荐
相关产品推荐

