Jawaban Lebih Aman
Jawaban yang diterima memberikan akses admin penuh ke Helm yang bukan merupakan solusi keamanan terbaik yang bijaksana. Dengan sedikit usaha lagi, kita dapat membatasi akses Helm ke namespace tertentu. Detail selengkapnya ada di dokumentasi Helm .
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
Tentukan Peran yang memungkinkan Tiller untuk mengelola semua sumber daya tiller-worldseperti di 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: ["*"]
Lalu lari:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
Dalam 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
Lalu lari:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
Setelah itu Anda dapat menjalankan helm inituntuk menginstal Tiller di tiller-worldnamespace.
$ helm init --service-account tiller --tiller-namespace tiller-world
Sekarang awali semua perintah dengan --tiller-namespace tiller-worldatau setel TILLER_NAMESPACE=tiller-worlddi variabel lingkungan Anda.
Lebih Banyak Jawaban Bukti Masa Depan
Berhenti menggunakan Tiller. Helm 3 menghilangkan kebutuhan Tiller sepenuhnya. Jika Anda menggunakan Helm 2, Anda dapat menggunakan helm templateuntuk menghasilkan yaml dari bagan Helm Anda dan kemudian menjalankan kubectl applyuntuk menerapkan objek ke klaster Kubernetes Anda.
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
--clusterrole=cluster-admin, yang pasti akan memperbaiki masalah izin, tetapi mungkin bukan perbaikan yang Anda inginkan. Lebih baik membuat akun layanan Anda sendiri, peran (cluster), dan rolebindings (cluster) dengan izin tepat yang Anda butuhkan.