Saya telah menginstal helm 2.6.2 di kubernetes 8 cluster. helm init
bekerja dengan baik. tetapi ketika saya menjalankannya helm list
memberikan kesalahan ini.
helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"
Bagaimana cara memperbaiki pesan kesalahan RABC ini?
kubernetes
kubernetes-helm
sfgroups
sumber
sumber
--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.The accepted answer gives full admin access to Helm which is not the best solution security wise
(lihat stackoverflow.com/a/53277281/2777965 ).kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
saya mendapatkanError from server (NotFound): deployments.extensions "tiller-deploy" not found
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 .
Tentukan Peran yang memungkinkan Tiller untuk mengelola semua sumber daya
tiller-world
seperti dirole-tiller.yaml
:Lalu lari:
Dalam
rolebinding-tiller.yaml
,Lalu lari:
Setelah itu Anda dapat menjalankan
helm init
untuk menginstal Tiller ditiller-world
namespace.Sekarang awali semua perintah dengan
--tiller-namespace tiller-world
atau setelTILLER_NAMESPACE=tiller-world
di 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 template
untuk menghasilkan yaml dari bagan Helm Anda dan kemudian menjalankankubectl apply
untuk menerapkan objek ke klaster Kubernetes Anda.sumber
--tiller-namespace tiller-world
atau mengaturTILLER_NAMESPACE=tiller-world
variabel lingkungan Anda.Helm dijalankan dengan akun layanan "default". Anda harus memberikan izin untuk itu.
Untuk izin hanya baca:
Untuk akses admin: Misalnya: untuk menginstal paket.
sumber
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
, dan kemudian larihelm list
saya masih mendapatkanError: configmaps is forbidden: User "system:serviceaccount:tiller:default" cannot list configmaps in the namespace "tiller": no RBAC policy matched
Akun layanan default tidak memiliki izin API. Helm mungkin perlu diberi akun layanan, dan akun layanan tersebut diberi izin API. Lihat dokumentasi RBAC untuk memberikan izin ke akun layanan: https://kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions
sumber
kubectl apply -f your-config-file-name.yaml
dan kemudian perbarui instalasi helm untuk menggunakan serviceAccount:
helm init --service-account tiller --upgrade
sumber
Saya mendapat kesalahan ini ketika mencoba menginstal tiller dalam mode offline, saya pikir akun layanan 'tiller' tidak memiliki cukup hak tetapi ternyata ada kebijakan jaringan yang memblokir komunikasi antara tiller dan server-api.
Solusinya adalah membuat kebijakan jaringan untuk anakan yang memungkinkan semua komunikasi keluar dari anakan
sumber
export TILLER_NAMESPACE=<your-tiller-namespace>
memecahkannya untuk saya, jika<your-tiller-namespace>
tidakkube-system
. Ini mengarahkan klien Helm ke namespace Tiller yang benar.sumber
Jika Anda menggunakan klaster EKS dari AWS dan menghadapi masalah terlarang ( misalnya :
forbidden: User ... cannot list resource "jobs" in API group "batch" in the namespace "default"
maka ini berhasil untuk saya:Larutan:
sumber