J'ai installé un cluster sur Google Kubernetes Engine.
Et puis, j'ai créé un espace de noms "staging"
$ kubectl get namespaces
default Active 26m
kube-public Active 26m
kube-system Active 26m
staging Active 20m
Ensuite, je suis passé à fonctionner dans l'espace de noms de transfert
$ kubectl config use-context staging
$ kubectl config current-context
staging
Et puis, j'ai installé postgresql à l'aide de helm sur l'espace de noms intermédiaire
helm install --name staging stable/postgresql
Mais j'ai:
Erreur: échec de la libération du transfert: les espaces de noms "transfert" sont interdits: utilisateur "système: compte_service: système kube: par défaut" ne peut pas obtenir les espaces de noms dans l'espace de noms "transfert": utilisateur inconnu "système: compte_services: système kube: par défaut"
Qu'est-ce que ça veut dire..?? Comment le faire fonctionner .. ??
Merci..
Comme votre cluster est compatible RBAC, il semble que votre pod tiller
ne dispose pas de suffisamment d'autorisations.
Vous utilisez default
ServiceAccount qui manque suffisamment de permission RBAC, nécessite tiller.
Tout ce dont vous avez besoin pour créer ClusterRole, ClusterRoleBinding et ServiceAccount. Avec eux, vous pouvez fournir l'autorisation nécessaire à votre Pod.
Suivez ces étapes
_1. Créer ClusterRole tiller
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
Remarque: j'ai utilisé la permission complète ici.
_2. Créer un compte de service tiller
dans kube-system
espace de noms
$ kubectl create sa tiller -n kube-system
_3. Créer ClusterRoleBinding tiller
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
apiGroup: ""
roleRef:
kind: ClusterRole
name: tiller
apiGroup: rbac.authorization.k8s.io
Vous devez maintenant utiliser ce ServiceAccount dans votre déploiement de tiller.
Comme vous en avez déjà un, modifiez-le
$ kubectl edit deployment -n kube-system tiller-deploy
Définissez serviceAccountName
sur tiller
sous PodSpec
En savoir plus sur RBAC