111 votes

helm list: impossible de lister les cartes de configuration dans l'espace de noms "kube-system"

J'ai installé helm 2.6.2 sur le cluster kubernetes 8. helm init a bien travaillé. mais quand je lance helm list il donne cette erreur.

  helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"
 

Comment réparer ce message d'erreur RABC?

234voto

sfgroups Points 692

Une fois ces commandes:

 kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'      
helm init --service-account tiller --upgrade
 

ont été exécutés, le problème a été résolu.

36voto

Rehan Saeed Points 125

Plus Sûr Répondre

La accepté de répondre donne le plein accès admin à la Barre de ce qui n'est pas la meilleure solution sage de la sécurité. Avec un peu plus de travail, nous pouvons restreindre l'Barre l'accès à un espace de nom particulier. Plus de détails dans la Barre de documentation.

$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created

Définir un Rôle qui permet de Talle de gérer toutes les ressources en tiller-world comme en role-tiller.yaml:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller-manager
  namespace: tiller-world
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]

Ensuite, exécutez:

$ kubectl create -f role-tiller.yaml
role "tiller-manager" created

En rolebinding-tiller.yaml,

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller-binding
  namespace: tiller-world
subjects:
- kind: ServiceAccount
  name: tiller
  namespace: tiller-world
roleRef:
  kind: Role
  name: tiller-manager
  apiGroup: rbac.authorization.k8s.io

Ensuite, exécutez:

$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created

Ensuite, vous pouvez exécuter helm init installer Laboureur en la tiller-world d'espace de noms.

$ helm init --service-account tiller --tiller-namespace tiller-world

Maintenant préfixe toutes les commandes avec --tiller-namespace tiller-world ou un ensemble TILLER_NAMESPACE=tiller-world dans vos variables d'environnement.

Plus L'Avenir De Réponse

Arrêt à l'aide de la barre franche. Barre 3 supprime la nécessité pour Motoculteur complètement. Si vous êtes à l'aide de la Barre 2, vous pouvez utiliser helm template pour générer le fichier yaml à partir de votre Barre de graphique, puis exécutez kubectl apply d'appliquer les objets de votre Kubernetes cluster.

helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml

20voto

suresh Palemoni Points 373

Helm fonctionne avec un compte de service "par défaut". Vous devez lui donner des autorisations.

Pour les autorisations en lecture seule:

 kubectl create rolebinding default-view --clusterrole=view --serviceaccount=kube-system:default --namespace=kube-system
 

Pour un accès administrateur, par exemple: installer des packages.

 kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
 

4voto

Jordan Liggitt Points 828

Le compte de service par défaut ne dispose pas d'autorisations d'API. Helm doit probablement se voir attribuer un compte de service, et ce compte de service dispose d'autorisations API. Consultez la documentation RBAC pour l'octroi d'autorisations aux comptes de service: https://kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions

0voto

 apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
 

kubectl apply -f your-config-file-name.yaml

puis mettez à jour instalation de la barre pour utiliser serviceAccount:

helm init --service-account tiller --upgrade

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X