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 .
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
Définissez un rôle qui permet à Tiller de gérer toutes les ressources tiller-world
comme dans 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: ["*"]
Puis exécutez:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
Dans 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
Puis exécutez:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
Ensuite, vous pouvez exécuter helm init
pour installer Tiller dans l' tiller-world
espace de noms.
$ helm init --service-account tiller --tiller-namespace tiller-world
Maintenant, préfixez toutes les commandes avec --tiller-namespace tiller-world
ou définies TILLER_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écuter kubectl apply
pour appliquer les objets à votre cluster Kubernetes.
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
--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.