Helm: Kesalahan: configmaps dilarang: Pengguna "system:serviceaccount:kube-system:default" tidak dapat mencantumkan sumber daya "configmaps" di grup API "" di namespace "kube-system"

Dibuat pada 26 Des 2018  ·  16Komentar  ·  Sumber: helm/helm

Saya mencoba mengikuti INSTALLING TILLER , namun mengalami kesalahan berikut:

$ helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
$

Keluaran dari helm version :

$ helm version
Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
$ 

Keluaran dari kubectl version :

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:39:04Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:31:33Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
$ 

Penyedia/Platform Cloud (AKS, GKE, Minikube, dll.):

logam kosong, linux

mungkin terkait, saya juga mencoba mengakses Tiller dan Kontrol Akses Berbasis Peran , namun mendapatkan 404.

Komentar yang paling membantu

Tidak baik menutup masalah tanpa menjelaskan cara memperbaikinya :-)
Biarkan aku melakukannya sebagai gantinya.

Kesalahan: configmaps dilarang: Pengguna " system:serviceaccount :kube- system:default " tidak dapat mendaftar

Pertama, beberapa informasi untuk pemula.
Di Kubernetes ada:

  • Akun - sesuatu seperti ID Anda. Contoh: john
  • Peran - beberapa kelompok dalam proyek diizinkan untuk melakukan sesuatu. Contoh: cluster-admin, it-support, ...
  • Binding - bergabung dengan Akun ke Peran. "John di dalamnya-dukungan" - adalah mengikat.

Jadi, dalam pesan kami di atas, kami melihat bahwa Tiller kami bertindak sebagai akun "default" yang terdaftar di namespace "kube-system". Kemungkinan besar Anda tidak mengikatnya ke peran yang memadai.

Sekarang kembali ke masalah.
Bagaimana cara kami melacaknya:

  • periksa apakah Anda memiliki akun khusus untuk anakan. Biasanya memiliki nama yang sama - "anakan":
    kubectl [--namespace kube-system] get serviceaccount
    buat jika tidak:
    kubectl [--namespace kube-system] create serviceaccount tiller
  • periksa apakah Anda memiliki peran atau peran kluster (peran kluster "lebih baik" untuk pemula - ini adalah peran kluster tidak seperti peran di seluruh namespace). Jika ini bukan produksi, Anda dapat menggunakan peran "cluster-admin" yang sangat istimewa:
    kubectl [--namespace kube-system] get clusterrole
    Anda dapat memeriksa konten peran melalui:
    kubectl [--namespace kube-system] get clusterrole cluster-admin -o yaml
  • periksa apakah akun "tiller" di klausa pertama memiliki ikatan dengan clusterrole "cluster-admin" yang Anda anggap cukup:
    kubectl [--namespace kube-system] get clusterrolebinding
    jika sulit untuk mengetahui berdasarkan nama, Anda cukup membuat yang baru:
    kubectl [--namespace kube-system] create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
  • akhirnya, ketika Anda memiliki akun, peran dan ikatan di antara mereka, Anda dapat memeriksa apakah Anda benar-benar bertindak sebagai akun ini:
    kubectl [--namespace kube-system] get deploy tiller-deploy -o yaml

Saya menduga output Anda tidak akan memiliki pengaturan "serviceAccount" dan "serviceAccountName":

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
...

jika ya, tambahkan akun yang ingin Anda gunakan oleh tiller:
kubectl [--namespace kube-system] patch deploy tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
(jika Anda menggunakan PowerShell, periksa di bawah untuk posting dari @snpdev)
Sekarang Anda ulangi perintah pemeriksaan sebelumnya dan lihat perbedaannya:

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: tiller                     <-- new line
serviceAccountName: tiller          <-- new line
terminationGracePeriodSeconds: 30
...

Ya. Sesuatu seperti itu.

Semua 16 komentar

URL baru untuk siapa saja yang mencari: https://helm.sh/docs/rbac/#role -based-access-control

Tidak baik menutup masalah tanpa menjelaskan cara memperbaikinya :-)
Biarkan aku melakukannya sebagai gantinya.

Kesalahan: configmaps dilarang: Pengguna " system:serviceaccount :kube- system:default " tidak dapat mendaftar

Pertama, beberapa informasi untuk pemula.
Di Kubernetes ada:

  • Akun - sesuatu seperti ID Anda. Contoh: john
  • Peran - beberapa kelompok dalam proyek diizinkan untuk melakukan sesuatu. Contoh: cluster-admin, it-support, ...
  • Binding - bergabung dengan Akun ke Peran. "John di dalamnya-dukungan" - adalah mengikat.

Jadi, dalam pesan kami di atas, kami melihat bahwa Tiller kami bertindak sebagai akun "default" yang terdaftar di namespace "kube-system". Kemungkinan besar Anda tidak mengikatnya ke peran yang memadai.

Sekarang kembali ke masalah.
Bagaimana cara kami melacaknya:

  • periksa apakah Anda memiliki akun khusus untuk anakan. Biasanya memiliki nama yang sama - "anakan":
    kubectl [--namespace kube-system] get serviceaccount
    buat jika tidak:
    kubectl [--namespace kube-system] create serviceaccount tiller
  • periksa apakah Anda memiliki peran atau peran kluster (peran kluster "lebih baik" untuk pemula - ini adalah peran kluster tidak seperti peran di seluruh namespace). Jika ini bukan produksi, Anda dapat menggunakan peran "cluster-admin" yang sangat istimewa:
    kubectl [--namespace kube-system] get clusterrole
    Anda dapat memeriksa konten peran melalui:
    kubectl [--namespace kube-system] get clusterrole cluster-admin -o yaml
  • periksa apakah akun "tiller" di klausa pertama memiliki ikatan dengan clusterrole "cluster-admin" yang Anda anggap cukup:
    kubectl [--namespace kube-system] get clusterrolebinding
    jika sulit untuk mengetahui berdasarkan nama, Anda cukup membuat yang baru:
    kubectl [--namespace kube-system] create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
  • akhirnya, ketika Anda memiliki akun, peran dan ikatan di antara mereka, Anda dapat memeriksa apakah Anda benar-benar bertindak sebagai akun ini:
    kubectl [--namespace kube-system] get deploy tiller-deploy -o yaml

Saya menduga output Anda tidak akan memiliki pengaturan "serviceAccount" dan "serviceAccountName":

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
...

jika ya, tambahkan akun yang ingin Anda gunakan oleh tiller:
kubectl [--namespace kube-system] patch deploy tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
(jika Anda menggunakan PowerShell, periksa di bawah untuk posting dari @snpdev)
Sekarang Anda ulangi perintah pemeriksaan sebelumnya dan lihat perbedaannya:

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: tiller                     <-- new line
serviceAccountName: tiller          <-- new line
terminationGracePeriodSeconds: 30
...

Ya. Sesuatu seperti itu.

@m-abramovich solusi bekerja untuk saya.

Catatan: jika menggunakan Powershell, perintahnya adalah:

kubectl --namespace kube-system patch deploy tiller-deploy -p '{\"spec\":{\"template\":{\"spec\":{\"serviceAccount\":\"tiller\"}}}}'

dan 2 bulan dan 1/2 penjelasan Anda masih sangat membantu terima kasih banyak telah meluangkan waktu dari jadwal sibuk Anda menjadi detail dan bermanfaat. @m-abramovich tidak seperti @bacongobbler

dan 2 bulan dan 1/2 penjelasan Anda masih sangat membantu terima kasih banyak telah meluangkan waktu dari jadwal sibuk Anda menjadi detail dan bermanfaat. @m-abramovich tidak seperti @bacongobbler

Orang yang menutup masalah ini adalah orang yang membukanya. Jelas mereka merasa masalah ini telah diselesaikan.

Selanjutnya, deskripsi asli meminta tautan yang tepat ke dokumentasi kontrol akses berbasis peran, yang diberikan tanpa menutup masalah.

Akhirnya, @bacongobbler meluangkan waktu untuk memberikan informasi yang diminta pada tanggal 25 Desember, yang bagi banyak orang merupakan hari libur penting. Maaf @iamaverrick tapi menurut saya komentar Anda sangat tidak pantas.

Wow. Saya bahkan tidak ingat pernah menjawab utas ini... Sudah lama.

Asumsi @marckhouzam di sini benar: masalah dibuka pada Hari Natal. Saya kebetulan bersama keluarga saya hari itu, tetapi saya melihat pertanyaan singkat ini dari OP:

mungkin terkait, saya juga mencoba mengakses Tiller dan Kontrol Akses Berbasis Peran , namun mendapatkan 404.

Jadi saya pikir saya akan memberikan jawaban cepat dengan tautan yang benar dan kembali merayakan Natal. Hari berikutnya, OP menutup masalah, jadi saya berasumsi tidak ada tindak lanjut lebih lanjut yang diperlukan.

Saya benar-benar kesal karena komentar saya dianggap singkat atau tidak membantu. Saya tidak mencoba untuk memecahkan masalah; Saya hanya memberikan konteks sementara OP mencoba menemukan solusinya sendiri selama musim liburan.

Terima kasih @m-abramovich dan @snpdev telah menindaklanjuti dan memberikan jawaban atas masalah OP.

@iamaverrick Untuk memberikan tautan ke dokumentasi tidak jarang ketika menanggapi suatu masalah. Ini bukannya tidak membantu tetapi keyakinan pada dokumentasi kami yang kami sebagai komunitas menginvestasikan banyak waktu. jika dokumentasi tidak memadai maka orang tersebut biasanya merespons dan ini kemudian memberi responden kesempatan untuk memberikan lebih banyak konteks. Itu juga membuat kami sadar bahwa doc perlu perbaikan. Tanpa interaksi atau umpan balik seperti ini dari pengguna, dokumen tidak akan meningkat.

Dalam jangka panjang, dokumentasi yang lebih baik membantu orang lebih daripada harus mengangkat masalah untuk bug atau fitur yang tidak terkait.

Di level lain, respons @bacongobbler selama musim liburan cukup mengesankan. Ingatlah bahwa kita semua adalah orang-orang yang berusaha melakukan yang terbaik.

Teman-teman, tolong santai saja.
Kita semua adalah pengembang perangkat lunak, berbagi nilai yang sama dalam hidup. Kami memiliki lebih banyak kesamaan daripada yang bisa Anda gambarkan. Mari saling menghormati.

@marckhouzam tidak pantas ? Dalam bentuk atau bentuk apa pun saya tidak menghormati siapa pun dengan komentar saya. Saya hanya menyatakan fakta dari sudut pandang saya. Komentar ini langsung disebutkan @bacongobbler bukan orang lain yang memasukkan 2 sen ke sana. Saya menghargai @bacongobbler karena menempelkan tautan pada hari libur. Pertanyaan awal menyatakan dia mengalami masalah dan membutuhkan panduan, bukan tautan. Guys jika Anda tidak dapat menerima kritik yang membangun maka jangan memposting apa pun di utas ini. Kami semua adalah pengembang perangkat lunak yang berusaha menjadi lebih baik dan memberikan informasi yang lebih baik.

Saya minta maaf karena tidak membuktikan jawaban saya dengan detail yang lebih besar karena saya mengisyaratkan jawaban dalam pertanyaan saya dan kemudian @bacongobbler mengkonfirmasi jawaban saya, diikuti oleh komentar bagus oleh @m-abramovich

Saya sangat menghargai bantuan dan/atau masukan semua orang dan saya akan mencoba melakukan pekerjaan yang lebih baik lain kali, saya berjanji!

dan sekali lagi, saya minta maaf karena menyebabkan ini (saya benar-benar tidak berpikir itu akan sampai ke sana ...

Dua sen saya: ketika mengikuti https://helm.sh/docs/intro/quickstart/ , tidak disebutkan tentang RBAC dan instruksi di sana mengarah pada instalasi tiller yang tidak berfungsi. Pencarian google kemudian mengarah ke masalah ini di sini.

Mungkin dapat dibuka kembali sebagai "meningkatkan panduan memulai cepat sehingga memperingatkan pemula tentang jebakan ini"?

Ada "Memutuskan konfigurasi keamanan apa yang akan diterapkan ke instalasi Anda, jika ada" di bawah prasyarat, tetapi karena saya baru saja mencobanya di cluster sekali pakai, "jika ada" menyiratkan kepada saya bahwa karena saya tidak peduli, saya tidak tidak perlu melakukan apapun.

Bahkan jika saya menyadari bahwa saya perlu melakukan sesuatu, tidak ada tautan ke instruksi.

Dua sen saya: ketika mengikuti https://helm.sh/docs/intro/quickstart/ , tidak disebutkan tentang RBAC dan instruksi di sana mengarah pada instalasi tiller yang tidak berfungsi. Pencarian google kemudian mengarah ke masalah ini di sini.

Mungkin dapat dibuka kembali sebagai "meningkatkan panduan memulai cepat sehingga memperingatkan pemula tentang jebakan ini"?

@pohly
Patrick, saya yakin ini tidak relevan lagi.
Helm v3 tidak menggunakan Tiller. Jadi, mungkin, semua itu tidak berharga sekarang.

@m-abramovich Terima kasih! Panduan terperinci Anda membantu saya mengatasi masalah ini. Saya sangat menghargai waktu yang Anda luangkan untuk menulis tanggapan Anda.

Penjelasan ini bagus! Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat