Більш безпечний відповідь
Прийнята відповідь дає повний доступ адміністратора до Helm, що не є найкращим рішенням безпеки. Додавши трохи більше роботи, ми можемо обмежити доступ Helm до певного простору імен. Детальніше в документації Helm .
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
Визначте роль, яка дозволяє Тіллеру керувати всіма ресурсами, tiller-world
як у 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: ["*"]
Потім запустіть:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
В 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
Потім запустіть:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
Після цього можна запустити helm init
інсталяцію Tiller у tiller-world
просторі імен.
$ helm init --service-account tiller --tiller-namespace tiller-world
Тепер приставте всі команди з --tiller-namespace tiller-world
або встановітьTILLER_NAMESPACE=tiller-world
змінними вашого середовища у середовищі.
Більше майбутнього підтвердження відповіді
Перестаньте використовувати Tiller. Helm 3 повністю усуває потребу в Tiller. Якщо ви використовуєте Helm 2, ви можете використовувати helm template
для генерування ямлів зі своєї графіки Helm, а потім запустіть, kubectl apply
щоб застосувати об'єкти до кластеру Kubernetes.
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
--clusterrole=cluster-admin
, що, безумовно, виправить проблеми з дозволами, але може бути не потрібним виправленням. Краще створити власні облікові записи служб, (кластерні) ролі та (кластерні) рольові зв’язки з точними потрібними дозволами.