Ich habe gerade kubeadm und kubelet auf v1.8.0 aktualisiert. Installieren Sie das Dashboard gemäß dem offiziellen Dokument .
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Danach habe ich das Dashboard durch Ausführen gestartet
$ kubectl proxy --address="192.168.0.101" -p 8001 --accept-hosts='^*$'
Dann konnte ich glücklicherweise über http://192.168.0.101:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ auf das Dashboard zugreifen.
Ich wurde auf eine Anmeldeseite wie diese weitergeleitet, die ich noch nie zuvor getroffen hatte. Es sieht so aus, als gäbe es zwei Möglichkeiten der Authentifizierung.
Ich habe versucht, die /etc/kubernetes/admin.conf
als kubeconfig hochzuladen, bin aber fehlgeschlagen. Dann habe ich versucht, das Token zu verwenden, von dem ich mich angemeldet habe kubeadm token list
, aber es ist erneut fehlgeschlagen.
Die Frage ist, wie ich mich im Dashboard anmelden kann. Es sieht so aus, als hätten sie viel Sicherheitsmechanismus hinzugefügt als zuvor. Vielen Dank.
quelle
Antworten:
- - Dashboard auf Github
Zeichen
Hier
Token
kann seinStatic Token
,Service Account Token
,OpenID Connect Token
von Kubernetes Authentifizieren , aber nicht die kubeadmBootstrap Token
.Mit kubectl können wir ein Dienstkonto (z. B. Deployment Controller) erhalten, das standardmäßig in Kubernetes erstellt wird.
Kubeconfig
Das Dashboard benötigt den Benutzer in der kubeconfig-Datei entweder
username & password
odertoken
, hat aberadmin.conf
nurclient-certificate
. Sie können die Konfigurationsdatei bearbeiten, um das Token hinzuzufügen, das mit der oben beschriebenen Methode extrahiert wurde.Alternative (Nicht für die Produktion empfohlen)
Hier sind zwei Möglichkeiten, um die Authentifizierung zu umgehen, aber zur Vorsicht zu verwenden.
Stellen Sie das Dashboard mit HTTP bereit
Das Dashboard kann unter http: // localhost: 8001 / ui mit geladen werden
kubectl proxy
.Gewähren von Administratorrechten für das Dashboard-Dienstkonto
Anschließend können Sie die SkipOption auf der Anmeldeseite verwenden, um auf das Dashboard zuzugreifen.
Wenn Sie die Dashboard-Version v1.10.1 oder höher verwenden, müssen Sie auch
--enable-skip-login
die Befehlszeilenargumente der Bereitstellung ergänzen . Sie können dies tun , um es in die durch Zugabe vonargs
inkubectl edit deployment/kubernetes-dashboard --namespace=kube-system
.Beispiel:
quelle
TL; DR
So erhalten Sie den Token in einem einzigen Oneliner:
Dies setzt voraus, dass Ihre ~ / .kube / config vorhanden und gültig ist. Und auch das
kubectl config get-contexts
dass Sie den richtigen Kontext (Cluster und Namespace) für das Dashboard verwenden, bei dem Sie sich anmelden.Erläuterung
Ich habe diese Antwort aus dem abgeleitet, was ich aus der Antwort von @ silverfox gelernt habe. Das ist eine sehr informative Zusammenfassung. Leider kann man nicht sagen, wie man die Informationen tatsächlich in die Praxis umsetzt. Vielleicht habe ich DevOps zu lange gemacht, aber ich denke in Shell. Es ist viel schwieriger für mich, Englisch zu lernen oder zu lehren.
Hier ist der Oneliner mit Zeilenumbrüchen und Einrückungen zur besseren Lesbarkeit:
Es gibt 4 verschiedene Befehle, die in dieser Reihenfolge aufgerufen werden:
deployment-controller-token-
(dies ist der Pod-Name).quelle
kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}'
Oder schieben Sie es direkt in Ihre Zwischenablagekubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}' | xclip -selection clipboard -i
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | sls admin-user | ForEach-Object { $_ -Split '\s+' } | Select -First 1)
von github.com/kubernetes/dashboard/blob/master/docs/user/…Wenn Sie dem Dashboard-Dienstkonto keine Administratorberechtigung erteilen möchten, können Sie ein Cluster-Verwaltungsdienstkonto erstellen.
Anschließend können Sie das Token des gerade erstellten Cluster-Verwaltungsdienstkontos verwenden.
Ich habe es aus dem giantswarm-Leitfaden zitiert - https://docs.giantswarm.io/guides/install-kubernetes-dashboard/
quelle
Zwei Antworten kombinieren : 49992698 und 47761914 :
quelle
Ein selbsterklärender einfacher Einzeiler zum Extrahieren von Token für die Kubernetes-Dashboard-Anmeldung.
Kopieren Sie das Token und fügen Sie es in das Kubernetes-Dashboard unter der Token-Anmeldeoption ein. Sie können das Kubernetes-Dashboard auch verwenden
quelle
Alle vorherigen Antworten sind gut zu mir. Eine direkte Antwort auf meiner Seite würde jedoch von https://github.com/kubernetes/dashboard/wiki/Creating-sample-user#bearer-token kommen . Einfach benutzen
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
. Sie werden für einige Tasten viele Werte haben (Name
,Namespace
,Labels
, ...,token
). Das wichtigste ist dastoken
, das Ihrem Namen entspricht. Kopieren Sie dieses Token und fügen Sie es in das Token-Feld ein. Hoffe das hilft.quelle
Sie müssen diese Schritte vor der Tokenauthentifizierung ausführen
Erstellen Sie ein Cluster Admin-Dienstkonto
Fügen Sie die Clusterbindungsregeln zu Ihrem Dashboard-Konto hinzu
Holen Sie sich das geheime Token mit diesem Befehl
Wählen Sie die Token-Authentifizierung auf der Anmeldeseite des Kubernetes-Dashboards
Jetzt können Sie sich anmelden
quelle
Laden Sie https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml herunter
hinzufügen
Führen Sie dann diesen Befehl aus:
Suchen Sie den exponierten Port mit dem folgenden Befehl:
Sie sollten in der Lage sein, das Dashboard unter http: // Hostname: Exposedport / ohne Authentifizierung abzurufen
quelle
Das Überspringen der Anmeldung wurde aus Sicherheitsgründen standardmäßig deaktiviert. https://github.com/kubernetes/dashboard/issues/2672
Fügen Sie in Ihrem Dashboard yaml dieses Argument hinzu
um es zurückzubekommen
quelle
The skip login has been disabled by default due to security issues
. Der Antwortversuch ist- --enable-skip-login
. Es ist vielleicht nicht die beste Antwort, aber dies ist keine Link-Antwort.The skip login has been disabled by default due to security issues
. Der Antwortversuch ist- --enable-skip-login
. Es ist vielleicht nicht die beste Antwort, aber dies ist keine Link-Antwort.