Dashboard-Version: 1.1
Kubernetes-Version: 1.3.6
Betriebssystem: ubuntu14.04
Go -Version: 1.6.2
Stellen Sie Kubernetes und Dashboard als http://kubernetes.io/docs/getting-started-guides/ubuntu/ bereit.
Ich kann auf das Dashboard zugreifen http://master-ip :8080/
bur, wenn ich auf https://master-ip :6443/ zugreife, gebe "Unauthorized" zurück
Warum?
Ich habe das gleiche Problem. Und ich denke, der Autor hat es vielleicht noch nicht bedacht.
https://github.com/kubernetes/dashboard/issues/1116
Ich vermute, dass Ihre Cluster Zertifikate für die sichere Kommunikation über HTTPS verwenden. Hier gibt es 2 Probleme.
Unauthorized
zurückgegeben.Die Autorisierung mit curl ist einfach, da Sie die erforderlichen Daten einfach bereitstellen können.
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Beim Browser ist es komplizierter. Es gibt mehrere Möglichkeiten, auf das Dashboard zuzugreifen:
<MASTER_IP>:<NODE_PORT>
darauf zugreifen. (Nicht sicher)kubectl proxy
und gehen Sie zu http://127.0.0.1:8001/
(Bindungsadresse kann geändert werden). Es verarbeitet SSL-Tunneling, wenn Ihre kubeconfig
-Datei für die Verwendung einer sicheren Verbindung konfiguriert ist.Bezüglich der zweiten Möglichkeit. Ich kann einige Informationen zur Verfügung stellen, wie das mit Firefox gemacht wird.
Your Certificates
. Wenn Sie 2 separate Zertifikate crt
und key
haben, ist es am besten, sie in ein PFX/PKCS#12
-Zertifikat zusammenzuführen, da es einfach direkt in den Browser-Zertifikatsspeicher importiert werden kann. Sie können diese Seite verwenden oder manuell mit openssl
tun.Wenn die Zertifikate korrekt generiert wurden, wird beim nächsten Versuch, über HTTPS auf den API-Server zuzugreifen, ein Popup angezeigt. Möglicherweise müssen Sie den Browser-Cache leeren.
Sie sollten jetzt das Dashboard sehen. :)
Ich weiß nicht, wie man Inhabertoken im Browser verwendet. Möglicherweise erfordert es einige manuelle Arbeiten, um dem HTTP-Header Daten hinzuzufügen, bevor eine Anfrage an den API-Server gesendet wird.
Es gibt natürlich noch andere Möglichkeiten, Benutzer zu autorisieren. Kubernetes unterstützt ABAC, RBAC und vieles mehr.
Der Browser muss sich beim Zugriff auf den gesicherten API-Serverport authentifizieren. Wie https://github.com/kubernetes/kubernetes/issues/31665#issuecomment -247342834 zeigt, kann dies mit zertifikatbasierter Authentifizierung erfolgen.
Bei der tokenbasierten Authentifizierung bieten Ihnen Browser keine Möglichkeit, automatisch Inhabertoken mit Ihren Anforderungen zu senden.
Das Dashboard beschreibt, wie Sie kubectl proxy
verwenden können, wodurch Ihre Authentifizierungsdaten hinzugefügt werden und Sie lokal über den Proxy auf das Dashboard zugreifen können - https://github.com/kubernetes/dashboard#usage
Hilfreichster Kommentar
Ich vermute, dass Ihre Cluster Zertifikate für die sichere Kommunikation über HTTPS verwenden. Hier gibt es 2 Probleme.
Unauthorized
zurückgegeben.Die Autorisierung mit curl ist einfach, da Sie die erforderlichen Daten einfach bereitstellen können.
`
curl https://<MASTER_IP>/version --cacert ca.crt --cert admin.crt --key admin.key
curl https://<MASTER_IP>/version --header "Authorization: Bearer $TOKEN"
Beim Browser ist es komplizierter. Es gibt mehrere Möglichkeiten, auf das Dashboard zuzugreifen:
<MASTER_IP>:<NODE_PORT>
darauf zugreifen. (Nicht sicher)kubectl proxy
und gehen Sie zuhttp://127.0.0.1:8001/
(Bindungsadresse kann geändert werden). Es verarbeitet SSL-Tunneling, wenn Ihrekubeconfig
-Datei für die Verwendung einer sicheren Verbindung konfiguriert ist.Bezüglich der zweiten Möglichkeit. Ich kann einige Informationen zur Verfügung stellen, wie das mit Firefox gemacht wird.
Your Certificates
. Wenn Sie 2 separate Zertifikatecrt
undkey
haben, ist es am besten, sie in einPFX/PKCS#12
-Zertifikat zusammenzuführen, da es einfach direkt in den Browser-Zertifikatsspeicher importiert werden kann. Sie können diese Seite verwenden oder manuell mitopenssl
tun.Wenn die Zertifikate korrekt generiert wurden, wird beim nächsten Versuch, über HTTPS auf den API-Server zuzugreifen, ein Popup angezeigt. Möglicherweise müssen Sie den Browser-Cache leeren.
Sie sollten jetzt das Dashboard sehen. :)
Ich weiß nicht, wie man Inhabertoken im Browser verwendet. Möglicherweise erfordert es einige manuelle Arbeiten, um dem HTTP-Header Daten hinzuzufügen, bevor eine Anfrage an den API-Server gesendet wird.
Es gibt natürlich noch andere Möglichkeiten, Benutzer zu autorisieren. Kubernetes unterstützt ABAC, RBAC und vieles mehr.