Versi dasbor: 1.1
Versi Kubernetes: 1.3.6
Sistem operasi: ubuntu14.04
Buka versi: 1.6.2
Ideploy kubernetes dan dasbor sebagai http://kubernetes.io/docs/getting-started-guides/ubuntu/
Saya dapat mengakses dasbor http://master-ip :8080/
bur ketika saya mengakses https://master-ip :6443/ , kembalikan "Tidak Diotorisasi"
mengapa?
Saya memiliki masalah yang sama. Dan saya rasa penulis mungkin belum mempertimbangkannya.
https://github.com/kubernetes/dashboard/issues/1116
Saya menduga cluster Anda menggunakan sertifikat untuk komunikasi yang aman melalui HTTPS. Ada 2 masalah di sini.
Unauthorized
.Sangat mudah untuk mengotorisasi dengan curl karena Anda dapat dengan mudah memberikan data yang diperlukan.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Dengan browser itu lebih rumit dari itu. Ada beberapa cara untuk mengakses dasbor:
<MASTER_IP>:<NODE_PORT>
. (Tidak aman)kubectl proxy
dan pergi ke http://127.0.0.1:8001/
(alamat pengikatan dapat diubah). Ini akan menangani tunneling SSL jika file kubeconfig
Anda dikonfigurasi untuk menggunakan koneksi aman.Mengenai opsi kedua. Saya dapat memberikan beberapa informasi bagaimana melakukannya menggunakan firefox.
Your Certificates
. Jika Anda memiliki 2 sertifikat terpisah crt
dan key
yang terbaik adalah menggabungkannya menjadi PFX/PKCS#12
sertifikat karena mudah untuk mengimpornya langsung ke toko sertifikat browser. Anda dapat menggunakan halaman ini atau melakukannya secara manual menggunakan openssl
.Jika sertifikat dibuat dengan benar, maka popup akan ditampilkan pada upaya berikutnya untuk mengakses server api melalui HTTPS. Anda mungkin perlu menghapus cache browser.
Anda akan melihat dasbor sekarang. :)
Saya tidak tahu cara menggunakan token pembawa di browser. Mungkin memerlukan beberapa pekerjaan manual untuk menambahkan data ke header HTTP sebelum mengirim permintaan ke server api.
Tentu saja ada opsi lain untuk mengotorisasi pengguna. Kubernetes mendukung ABAC, RBAC, dan banyak lagi.
Browser diperlukan untuk mengautentikasi saat mengakses port server API yang diamankan. Seperti yang ditunjukkan https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834, itu dapat dilakukan dengan otentikasi berbasis sertifikat.
Untuk otentikasi berbasis token, browser tidak memberi Anda cara untuk mengirim token pembawa secara otomatis dengan permintaan Anda.
Dasbor menjelaskan bagaimana Anda dapat menggunakan kubectl proxy
yang menambahkan kredensial otentikasi Anda, dan memungkinkan Anda mengakses dasbor secara lokal melalui proxy - https://github.com/kubernetes/dashboard#usage
Komentar yang paling membantu
Saya menduga cluster Anda menggunakan sertifikat untuk komunikasi yang aman melalui HTTPS. Ada 2 masalah di sini.
Unauthorized
.Sangat mudah untuk mengotorisasi dengan curl karena Anda dapat dengan mudah memberikan data yang diperlukan.
`
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Dengan browser itu lebih rumit dari itu. Ada beberapa cara untuk mengakses dasbor:
<MASTER_IP>:<NODE_PORT>
. (Tidak aman)kubectl proxy
dan pergi kehttp://127.0.0.1:8001/
(alamat pengikatan dapat diubah). Ini akan menangani tunneling SSL jika filekubeconfig
Anda dikonfigurasi untuk menggunakan koneksi aman.Mengenai opsi kedua. Saya dapat memberikan beberapa informasi bagaimana melakukannya menggunakan firefox.
Your Certificates
. Jika Anda memiliki 2 sertifikat terpisahcrt
dankey
yang terbaik adalah menggabungkannya menjadiPFX/PKCS#12
sertifikat karena mudah untuk mengimpornya langsung ke toko sertifikat browser. Anda dapat menggunakan halaman ini atau melakukannya secara manual menggunakanopenssl
.Jika sertifikat dibuat dengan benar, maka popup akan ditampilkan pada upaya berikutnya untuk mengakses server api melalui HTTPS. Anda mungkin perlu menghapus cache browser.
Anda akan melihat dasbor sekarang. :)
Saya tidak tahu cara menggunakan token pembawa di browser. Mungkin memerlukan beberapa pekerjaan manual untuk menambahkan data ke header HTTP sebelum mengirim permintaan ke server api.
Tentu saja ada opsi lain untuk mengotorisasi pengguna. Kubernetes mendukung ABAC, RBAC, dan banyak lagi.