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 .
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
Zdefiniuj rolę, która pozwoli Tillerowi zarządzać wszystkimi zasobami tiller-worldw 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: ["*"]
Następnie uruchomić:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
W 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
Następnie uruchomić:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
Następnie możesz uruchomić helm initinstalację Tillera w tiller-worldprzestrzeni nazw.
$ helm init --service-account tiller --tiller-namespace tiller-world
Teraz poprzedzaj wszystkie polecenia zmiennymi środowiskowymi --tiller-namespace tiller-worldlub ustaw je TILLER_NAMESPACE=tiller-worldw 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 templatedo wygenerowania yaml z wykresu Helm, a następnie uruchomić, kubectl applyaby zastosować obiekty do klastra Kubernetes.
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
--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.