J'ai installé helm 2.6.2 sur le cluster kubernetes 8. helm init
a bien fonctionné. mais quand je l'exécute helm list
en donnant 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?
kubernetes
kubernetes-helm
sfgroups
la source
la source
--clusterrole=cluster-admin
, ce qui résoudra certainement les problèmes d'autorisations, mais pourrait ne pas être le correctif souhaité. Il est préférable de créer vos propres comptes de service, rôles (cluster) et liaisons de rôle (cluster) avec les autorisations exactes dont vous avez besoin.The accepted answer gives full admin access to Helm which is not the best solution security wise
(voir stackoverflow.com/a/53277281/2777965 ).kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
je reçoisError from server (NotFound): deployments.extensions "tiller-deploy" not found
Réponse plus sécurisée
La réponse acceptée donne un accès administrateur complet à Helm, ce qui n'est pas la meilleure solution en termes de sécurité. Avec un peu plus de travail, nous pouvons restreindre l'accès de Helm à un espace de noms particulier. Plus de détails dans la documentation Helm .
Définissez un rôle qui permet à Tiller de gérer toutes les ressources
tiller-world
comme dansrole-tiller.yaml
:Puis exécutez:
Dans
rolebinding-tiller.yaml
,Puis exécutez:
Ensuite, vous pouvez exécuter
helm init
pour installer Tiller dans l'tiller-world
espace de noms.Maintenant, préfixez toutes les commandes avec
--tiller-namespace tiller-world
ou définiesTILLER_NAMESPACE=tiller-world
dans vos variables d'environnement.Plus de réponses à l'épreuve du futur
Arrêtez d'utiliser Tiller. Helm 3 supprime complètement le besoin de Tiller. Si vous utilisez Helm 2, vous pouvez utiliser
helm template
pour générer le yaml à partir de votre graphique Helm, puis exécuterkubectl apply
pour appliquer les objets à votre cluster Kubernetes.la source
--tiller-namespace tiller-world
ou définirTILLER_NAMESPACE=tiller-world
dans vos variables d'environnement.Helm fonctionne avec le compte de service "par défaut". Vous devez lui fournir des autorisations.
Pour les autorisations en lecture seule:
Pour l'accès administrateur: Par exemple: pour installer des packages.
la source
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
, puis couru,helm list
je reçois toujoursError: configmaps is forbidden: User "system:serviceaccount:tiller:default" cannot list configmaps in the namespace "tiller": no RBAC policy matched
Le compte de service par défaut ne dispose pas des autorisations API. Helm doit probablement se voir attribuer un compte de service et ce compte de service doit disposer des autorisations API. Consultez la documentation RBAC pour accorder des autorisations aux comptes de service: https://kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions
la source
kubectl apply -f your-config-file-name.yaml
puis mettez à jour l'installation de barre pour utiliser serviceAccount:
helm init --service-account tiller --upgrade
la source
J'ai eu cette erreur en essayant d'installer le motoculteur en mode hors ligne, je pensais que le compte de service `` timon '' n'avait pas assez de droits, mais il s'avère qu'une politique réseau bloquait la communication entre le timon et le serveur api.
La solution était de créer une politique de réseau pour le timon permettant toutes les communications de sortie du timon
la source
export TILLER_NAMESPACE=<your-tiller-namespace>
résolu pour moi, si ce<your-tiller-namespace>
n'est pas le caskube-system
. Cela pointe le client Helm vers le bon espace de noms Tiller.la source
Si vous utilisez un cluster EKS AWS et sont confrontés à la question interdit ( par exemple :
forbidden: User ... cannot list resource "jobs" in API group "batch" in the namespace "default"
alors cela a fonctionné pour moi:Solution:
la source