GCP:无法使用自定义服务帐户创建k8s集群

时间:2018-12-03 09:15:44

标签: google-cloud-platform gcloud google-kubernetes-engine service-accounts

我在GCP中创建了一个特定的服务帐户来配置项目中的集群:

yii\grid\GridView::initColumns()

当我运行命令class MyGridView extends \yii\grid\GridView { public $expandColumns = []; protected function initColumns() { parent::initColumns(); \yii\helpers\ArrayHelper::merge($this->columns, $this->expandColumns); } } // in view $widget = Yii::createObject([ 'class' => MyGridView::class, 'dataProvider' => $dataProvider, 'expandColumns' => [ [ 'class' => \yii\grid\CheckboxColumn::class, ], ] ]);

我总是得到:

  

错误:(gcloud.container.clusters.create)ResponseError:代码= 403,   message =所需的“ container.clusters.create”权限   “项目/上下文平台分段”。看到   https://cloud.google.com/kubernetes-engine/docs/troubleshooting#gke_service_account_deleted   有关更多信息。

如您所见,我使用gcloud iam service-accounts create [sa_name] gcloud projects add-iam-policy-binding \ [project_id] \ --role=roles/container.admin \ --member=serviceAccount:[sa_name]@[project_id].iam.gserviceaccount.com gcloud iam service-accounts keys create [keyfile_name] \ --iam-account=[sa_name]@[project_id].iam.gserviceaccount.com gcloud auth activate-service-account --key-file=[keyfile_name] ,但甚至尝试将gcloud container clusters create [cluster_name]roles/container.admin应用于此服务帐户,行为相同。

此命令到目前为止唯一有效的方法是使用我的主要Google所有者帐户(而不是服务帐户)。

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

从错误消息中,我了解到该服务帐户没有权限“ container.clusters.create”。

请在使用以下方式创建群集的服务帐户上添加“ Container Engine群集管理员”角色以及“ Container Engine管理员”角色。

要创建集群,您需要在项目上具有“ container.clusters.create”权限。您还需要将角色“ roles / iam.serviceAccountUser”分配给将使用该服务帐户的用户。这样,用户可以访问GKE的服务帐户。

有关详细信息和深入的教程,请参阅GCP文档中的this article