GCP K8s (kubectl) 错误消息(需要 "container.leases.get" 权限)

GCP K8s (kubectl) error message (Required "container.leases.get" permission)

我在 运行 一些 kubectl 命令(GCP 命令行 - gcloud)后收到一条错误消息。我在 GKE 中创建了一个 K8S 集群。

示例:

kubectl describe node

gke_k8s_cluster_name 来自服务器的错误(禁止):leases.coordination.k8s.io "gke_k8s_cluster_name" 被禁止:用户 "MY_SERVICE_ACCOUNT" 无法在 API 组 [=31] 中获取资源 "leases" =] 在命名空间 "kube-node-lease" 中:需要 "container.leases.get" 权限。

重点是 "container.leases.get" 权限未在 IAM 中列出(作为自定义权限或常规角色)。

我如何才能将该权限授予 GCP 中的服务帐户?

谢谢, 何塞

您可能需要在 GCP IAM 和 GKE 端授予自己额外的权限,例如:

PROJECT_ID=$(gcloud config get-value core/project)
USER_ID=$(gcloud config get-value core/account)
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member=user:${USER_ID} --role=roles/container.admin
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user ${USER_ID}

另见 GCP IAM & GKE RBAC integration