Helm 2.6.2 został zainstalowany w klastrze Kubernetes 8. helm init
działało dobrze. ale kiedy uruchomię helm list
to podając ten błąd.
helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"
Jak naprawić ten komunikat o błędzie RABC?
kubernetes
kubernetes-helm
sfgroups
źródło
źródło
--clusterrole=cluster-admin
, co z pewnością rozwiąże problemy z uprawnieniami, ale może nie być poprawką, której potrzebujesz. Lepiej jest utworzyć własne konta usług, role (klastra) i powiązania ról (klastra) z dokładnymi uprawnieniami, których potrzebujesz.The accepted answer gives full admin access to Helm which is not the best solution security wise
(patrz stackoverflow.com/a/53277281/2777965 ).kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
, dostajęError from server (NotFound): deployments.extensions "tiller-deploy" not found
Bardziej bezpieczna odpowiedź
Zaakceptowana odpowiedź daje pełny dostęp administracyjny do Helm, co nie jest najlepszym rozwiązaniem pod względem bezpieczeństwa. Przy odrobinie pracy możemy ograniczyć dostęp Helma do określonej przestrzeni nazw. Więcej szczegółów w dokumentacji Helm .
Zdefiniuj rolę, która pozwoli Tillerowi zarządzać wszystkimi zasobami
tiller-world
wrole-tiller.yaml
:Następnie uruchomić:
W
rolebinding-tiller.yaml
,Następnie uruchomić:
Następnie możesz uruchomić
helm init
instalację Tillera wtiller-world
przestrzeni nazw.Teraz poprzedzaj wszystkie polecenia zmiennymi środowiskowymi
--tiller-namespace tiller-world
lub ustaw jeTILLER_NAMESPACE=tiller-world
w nich.Więcej odpowiedzi na przyszłość
Przestań używać Tillera. Helm 3 całkowicie eliminuje potrzebę używania Rumpla. Jeśli używasz Helm 2, możesz użyć
helm template
do wygenerowania yaml z wykresu Helm, a następnie uruchomić,kubectl apply
aby zastosować obiekty do klastra Kubernetes.źródło
--tiller-namespace tiller-world
lub je ustawićTILLER_NAMESPACE=tiller-world
.Helm działa z „domyślnym” kontem usługi. Powinieneś nadać mu uprawnienia.
Uprawnienia tylko do odczytu:
Dostęp administratora: Np .: aby zainstalować pakiety.
źródło
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
, a potem uruchomieniuhelm list
nadal dostajęError: configmaps is forbidden: User "system:serviceaccount:tiller:default" cannot list configmaps in the namespace "tiller": no RBAC policy matched
Domyślne konto usługi nie ma uprawnień interfejsu API. Helm prawdopodobnie musi mieć przypisane konto usługi, a to konto usługi ma uprawnienia interfejsu API. Zobacz dokumentację RBAC dotyczącą nadawania uprawnień do kont usług: https://kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions
źródło
kubectl apply -f your-config-file-name.yaml
a następnie zaktualizuj instalację Helm, aby korzystać z serviceAccount:
helm init --service-account tiller --upgrade
źródło
Otrzymałem ten błąd podczas próby zainstalowania tillera w trybie offline, myślałem, że konto usługi „tiller” nie ma wystarczających uprawnień, ale okazuje się, że polityka sieciowa blokuje komunikację między rumpelem a serwerem api.
Rozwiązaniem było stworzenie polityki sieciowej dla rumpla, która umożliwi całą komunikację wyjściową sterownicy
źródło
export TILLER_NAMESPACE=<your-tiller-namespace>
rozwiązał to dla mnie, jeśli<your-tiller-namespace>
niekube-system
. Wskazuje to klientowi Helm na prawą przestrzeń nazw Tiller.źródło
Jeśli używasz klastra EKS z AWS i masz do czynienia z niedozwolonym problemem ( np .
forbidden: User ... cannot list resource "jobs" in API group "batch" in the namespace "default"
To zadziałało dla mnie:Rozwiązanie:
źródło