Sicherere Antwort
Die akzeptierte Antwort gibt dem Administrator vollen Zugriff auf Helm, was in Bezug auf die Sicherheit nicht die beste Lösung ist. Mit etwas mehr Arbeit können wir Helms Zugriff auf einen bestimmten Namespace einschränken. Weitere Details in der Helm-Dokumentation .
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
Definieren Sie eine Rolle, mit der Tiller alle Ressourcen tiller-world
wie folgt verwalten kann 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: ["*"]
Dann renne:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
In 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
Dann renne:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
Anschließend können Sie helm init
Tiller im tiller-world
Namespace installieren .
$ helm init --service-account tiller --tiller-namespace tiller-world
Stellen Sie nun allen Befehlen Ihre Umgebungsvariablen voran --tiller-namespace tiller-world
oder legen TILLER_NAMESPACE=tiller-world
Sie sie fest.
Weitere zukunftssichere Antwort
Verwenden Sie Tiller nicht mehr. Helm 3 macht Tiller komplett überflüssig. Wenn Sie Helm 2 verwenden, können Sie helm template
das Yaml aus Ihrem Helmdiagramm generieren und dann ausführen kubectl apply
, um die Objekte auf Ihren Kubernetes-Cluster anzuwenden.
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
--clusterrole=cluster-admin
, die sicherlich Berechtigungsprobleme beheben, aber möglicherweise nicht die gewünschte Lösung sind. Es ist besser, eigene Dienstkonten, (Cluster-) Rollen und (Cluster-) Rollenbindungen mit genau den Berechtigungen zu erstellen, die Sie benötigen.