我在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所有者帐户(而不是服务帐户)。
我在这里想念什么?
答案 0 :(得分:0)
从错误消息中,我了解到该服务帐户没有权限“ container.clusters.create”。
请在使用以下方式创建群集的服务帐户上添加“ Container Engine群集管理员”角色以及“ Container Engine管理员”角色。
要创建集群,您需要在项目上具有“ container.clusters.create”权限。您还需要将角色“ roles / iam.serviceAccountUser”分配给将使用该服务帐户的用户。这样,用户可以访问GKE的服务帐户。
有关详细信息和深入的教程,请参阅GCP文档中的this article。