Impossible de créer des rôles de cluster. <> déjà attribué en tant que "administrateur de moteur de conteneur" et "administrateur de cluster de moteur de conteneur"
Error from server (Forbidden): error when creating "prometheus-
operator/prometheus-operator-cluster-role.yaml":
clusterroles.rbac.authorization.k8s.io "prometheus-operator"
is forbidden: attempt to grant extra privileges: [{[create]
[extensions] [thirdpartyresources] [] []} {[*]
[monitoring.coreos.com] [alertmanagers] [] []} {[*]
[monitoring.coreos.com] [prometheuses] [] []} {[*]
[monitoring.coreos.com] [servicemonitors] [] []} {[*]
[apps] [statefulsets] [] []} {[*] [] [configmaps] [] []}
{[*] [] [secrets] [] []} {[list] [] [pods] [] []} {[delete]
[] [pods] [] []} {[get] [] [services] [] []} {[create]
[] [services] [] []} {[update] [] [services] [] []} {[get]
[] [endpoints] [] []} {[create] [] [endpoints] [] []}
{[update] [] [endpoints] [] []} {[list] [] [nodes]
[] []} {[watch] [] [nodes] [] []}]
user=&{<<my_account>>@gmail.com
[system:authenticated] map[]} ownerrules=[{[create]
[authorization.k8s.io] [selfsubjectaccessreviews]
[] []} {[get] [] [] [] [/api /api/* /apis /apis/*
/healthz /swaggerapi /swaggerapi/* /version]}]
ruleResolutionErrors=[]
En raison de la façon dont Container Engine vérifie les autorisations lorsque vous créez un rôle ou ClusterRole, vous devez d'abord créer un RoleBinding qui vous accorde toutes les autorisations incluses dans le rôle que vous souhaitez créer.
Un exemple de solution consiste à créer un RoleBinding qui donne à votre identité Google un rôle d'administrateur de cluster avant d'essayer de créer des rôles ou des clusters de rôles supplémentaires.
Il s'agit d'un problème connu dans la version bêta du contrôle d'accès basé sur les rôles dans Kubernetes et Container Engine version 1.6.
Vous devez donc associer votre compte à un rôle d'administrateur de cluster.
J'ai le même problème sur Google Kubernetes Engine.
Selon la réponse de enj et le commentaire de ccyang2005 veuillez trouver le snipet suivant qui résout mon problème :)
gcloud info | grep Account
Vous affichera quelque chose comme Account: [[email protected]]
kubectl create clusterrolebinding myname-cluster-admin-binding \
--clusterrole=cluster-admin \
[email protected]
Sortira quelque chose comme Clusterrolebinding "myname-cluster-admin-binding" created
Après cela, vous pourrez créer des CusterRoles