Kubernetes: dasbor https Tidak sah

Dibuat pada 30 Agu 2016  ·  3Komentar  ·  Sumber: kubernetes/kubernetes

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?

areapiserver

Komentar yang paling membantu

Saya menduga cluster Anda menggunakan sertifikat untuk komunikasi yang aman melalui HTTPS. Ada 2 masalah di sini.

  1. Browser tidak mengenali root CA sehingga tidak dapat mempercayai bahwa koneksi aman. Kita bisa melewati itu dan masih menggunakannya. Bagian ini bukan pemblokir. :)
    zrzut ekranu z 2016-09-15 15-50-35
  2. Server API membutuhkan sertifikat/token/pengguna klien dan lulus (tergantung pada konfigurasi) untuk mengotorisasi klien jika tidak maka akan mengembalikan 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:

  1. Anda dapat mengeksposnya melalui layanan menggunakan NodePort dan mengaksesnya dengan <MASTER_IP>:<NODE_PORT> . (Tidak aman)
  2. Impor sertifikat ke browser Anda.
  3. Gunakan 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.

  1. Impor sertifikat CA yang dihasilkan ke dalam browser.
    zrzut ekranu z 2016-09-15 16-05-47
  2. Impor sertifikat pengguna ke 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 .
    zrzut ekranu z 2016-09-15 16-09-44

Jika sertifikat dibuat dengan benar, maka popup akan ditampilkan pada upaya berikutnya untuk mengakses server api melalui HTTPS. Anda mungkin perlu menghapus cache browser.
zrzut ekranu z 2016-09-15 16-12-04

Anda akan melihat dasbor sekarang. :)
zrzut ekranu z 2016-09-15 16-14-16

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.

Semua 3 komentar

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.

  1. Browser tidak mengenali root CA sehingga tidak dapat mempercayai bahwa koneksi aman. Kita bisa melewati itu dan masih menggunakannya. Bagian ini bukan pemblokir. :)
    zrzut ekranu z 2016-09-15 15-50-35
  2. Server API membutuhkan sertifikat/token/pengguna klien dan lulus (tergantung pada konfigurasi) untuk mengotorisasi klien jika tidak maka akan mengembalikan 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:

  1. Anda dapat mengeksposnya melalui layanan menggunakan NodePort dan mengaksesnya dengan <MASTER_IP>:<NODE_PORT> . (Tidak aman)
  2. Impor sertifikat ke browser Anda.
  3. Gunakan 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.

  1. Impor sertifikat CA yang dihasilkan ke dalam browser.
    zrzut ekranu z 2016-09-15 16-05-47
  2. Impor sertifikat pengguna ke 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 .
    zrzut ekranu z 2016-09-15 16-09-44

Jika sertifikat dibuat dengan benar, maka popup akan ditampilkan pada upaya berikutnya untuk mengakses server api melalui HTTPS. Anda mungkin perlu menghapus cache browser.
zrzut ekranu z 2016-09-15 16-12-04

Anda akan melihat dasbor sekarang. :)
zrzut ekranu z 2016-09-15 16-14-16

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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat