Mit dem Kubernetes-Dashboard auf Cluster zugreifen
Erfahren Sie, wie Sie das Kubernetes-Dashboard starten, um die Cluster anzuzeigen, die Sie mit der Kubernetes Engine (OKE) erstellt haben.
Sie können das Kubernetes-Dashboard nicht mit virtuellen Knotenpools verwenden.
Das Kubernetes-Dashboard ist eine webbasierte Managementoberfläche, mit der Sie folgende Aufgaben ausführen können:
- Containerisierte Anwendungen bereitstellen und bearbeiten
- Status von containerisierten Anwendungen beurteilen
- Fehler in containerisierten Anwendungen beheben
Das Kubernetes-Dashboard ist besonders für neue Kubernetes-Benutzer hilfreich. Weitere Informationen zum Kubernetes-Dashboard (manchmal als Web-UI oder Dashboard-UI bezeichnet) finden Sie in der Kubernetes-Dokumentation unter dem Thema Web-UI (Dashboard).
Das Kubernetes-Dashboard wird nicht standardmäßig in Clustern bereitgestellt. Sie können das Kubernetes-Dashboard jedoch in Clustern, die Sie mit der Kubernetes-Engine erstellen, wie folgt bereitstellen:
-
Weitere Informationen zur manuellen Bereitstellung des Kubernetes-Dashboards in einem vorhandenen Cluster finden Sie in der Kubernetes-Dokumentation. Wenn Sie die Anweisungen zum manuellen Deployment des Kubernetes-Dashboard befolgen, wird es im
kubernetes-dashboard
-Namespace bereitgestellt (nicht imkube-system
-Namespace). Die URL zum Anzeigen eines manuell bereitgestellten Kubernetes-Dashboards lautet:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
- Damit die Kubernetes-Engine das Kubernetes-Dashboard während der erweiterten Clustererstellung automatisch bereitstellt, können Sie:
- Erstellen Sie das erweiterte Cluster mit dem Workflow "Benutzerdefinierte Erstellung" in der Konsole, und konfigurieren Sie das Kubernetes-Dashboard-Cluster-Add-on.
- Erstellen Sie das Cluster mit der API, und setzen Sie das Attribut isKubernetesDashboardEnabled auf "true".
Wenn Kubernetes Engine das Kubernetes-Dashboard automatisch bereitstellt, wird es im
kube-system
-Namespace bereitgestellt. Die URL zum Anzeigen eines automatisch bereitgestellten Kubernetes-Dashboards lautet:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Beachten Sie Folgendes:
- Sie können das Kubernetes-Dashboard nicht in Cloud Shell ausführen.
- Es wird nicht empfohlen, das Kubernetes-Dashboard auf Produktionsclustern zu installieren, da keine erweiterbare Authentifizierungsunterstützung vorhanden ist. Wenn Sie das Kubernetes-Dashboard installieren, wird empfohlen, den Zugriff innerhalb des Clusters einzuschränken, anstatt es extern über einen Load Balancer oder einen Ingress-Controller zugänglich zu machen. Das Kubernetes-Dashboard ist ein häufiger Angriffsvektor, um sich Zugang zu Kubernetes-Clustern zu erhalten.
- Die Befehle zum Löschen des Kubernetes-Dashboards aus einem Cluster hängen von der Kubernetes-Version ab, die auf dem Cluster ausgeführt wird. Siehe Hinweise zum Löschen des Kubernetes-Dashboards.
- Ein Oracle Cloud Infrastructure-CLI-Befehl in der kubeconfig-Datei generiert Authentifizierungstoken, die kurzfristig, auf Cluster ausgelegt und benutzerspezifisch sind. Daher können kubeconfig-Dateien für den Zugriff auf Kubernetes-Cluster nicht von mehreren Benutzern gemeinsam verwendet werden. Die generierten Authentifizierungstoken sind auch nicht geeignet, wenn Sie andere Prozesse und Tools für den Zugriff auf das Cluster benötigen, wie Tools für kontinuierliche Integration und Bereitstellung (CI/CD). In diesem Fall sollten Sie einen Kubernetes-Serviceaccount erstellen und das zugehörige Authentifizierungstoken der kubeconfig-Datei hinzufügen. Weitere Informationen finden Sie unter Authentifizierungstoken von Serviceaccount zu einer Kubeconfig-Datei hinzufügen.
- Sie können das Kubernetes-Dashboard mit verwalteten Knotenpools verwenden, jedoch nicht mit virtuellen Knotenpools.
Mit dem Kubernetes-Dashboard auf Cluster zugreifen
So greifen Sie mit dem Kubernetes-Dashboard auf ein Cluster zu:
-
Falls noch nicht geschehen, führen Sie die Schritte zum Einrichten der kubeconfig-Konfigurationsdatei des Clusters aus, und legen Sie (gegebenenfalls) die Umgebungsvariable KUBECONFIG so fest, dass sie auf die Datei verweist. Beachten Sie, dass Sie Ihre eigene kubeconfig-Datei einrichten müssen. Sie können nicht mit einer kubeconfig-Datei, die von einem anderen Benutzer eingerichtet wurde, auf ein Cluster zugreifen. Siehe Clusterzugriff einrichten.
-
Erstellen Sie in einem Texteditor eine Datei (Beispiel: oke-admin-service-account.yaml) mit dem folgenden Inhalt:
apiVersion: v1 kind: ServiceAccount metadata: name: oke-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: oke-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: oke-admin namespace: kube-system
Die Datei definiert einen Administratorserviceaccount und ein clusterrolebinding, die beide als "oke-admin" bezeichnet werden.
-
Erstellen Sie den Serviceaccount und das clusterrolebinding im Cluster, indem Sie Folgendes eingeben:
kubectl apply -f <filename>
Hierbei ist
<filename>
der Name der Datei, die Sie zuvor erstellt haben. Beispiel:kubectl apply -f oke-admin-service-account.yaml
Die Ausgabe aus dem Befehl oben bestätigt die Erstellung des Serviceaccounts und des clusterrolebinding:
serviceaccount "oke-admin" created clusterrolebinding.rbac.authorization.k8s.io "oke-admin" created
Mit dem oke-admin-Serviceaccount können Sie das Cluster jetzt anzeigen und steuern und eine Verbindung zum Kubernetes-Dashboard herstellen.
- Rufen Sie wie folgt ein Authentifizierungstoken für den oke-admin-Serviceaccount ab:
- Erstellen Sie in einem Texteditor eine Datei (z.B. oke-admin-sa-token.yaml), um ein Secret (z.B. oke-admin-sa-token) mit dem folgenden Inhalt zu erstellen.
apiVersion: v1 kind: Secret metadata: name: oke-admin-sa-token namespace: kube-system annotations: kubernetes.io/service-account.name: oke-admin type: kubernetes.io/service-account-token
-
Erstellen Sie das Serviceaccounttoken, indem Sie Folgendes eingeben:
kubectl apply -f <filename>
Hierbei ist
<filename>
der Name der Datei, die Sie zuvor erstellt haben. Beispiel:kubectl apply -f oke-admin-sa-token.yaml
-
Zeigen Sie die Details des Secrets an, indem Sie Folgendes eingeben:
kubectl describe secrets oke-admin-sa-token -n kube-system
Die Ausgabe aus dem obigen Befehl beinhaltet ein Authentifizierungstoken (eine lange alphanumerische Zeichenfolge) als Wert des Elements
token:
, wie unten dargestellt:Name: oke-admin-sa-token Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name: oke-admin kubernetes.io/service-account.uid: 3a7fcd8e-e123-11e9-81ca-0a580aed8570 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1289 bytes namespace: 11 bytes token: eyJh______px1Q
Im obigen Beispiel ist
eyJh______px1Q
(zur besseren Lesbarkeit abgekürzt) das Authentifizierungstoken. -
Kopieren Sie den Wert des
token:
-Elements aus der Ausgabe. Mit diesem Token melden Sie sich beim Dashboard an.
- Erstellen Sie in einem Texteditor eine Datei (z.B. oke-admin-sa-token.yaml), um ein Secret (z.B. oke-admin-sa-token) mit dem folgenden Inhalt zu erstellen.
- Geben Sie in einem Terminalfenster
kubectl proxy
ein, um das Kubernetes-Dashboard verfügbar zu machen. - Öffnen Sie einen Browser, und navigieren Sie zu der folgenden URL, um das Kubernetes-Dashboard anzuzeigen, das beim Erstellen des Clusters bereitgestellt wurde:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Hinweis: Wenn Sie die Anweisungen zum manuellen Deployment des Kubernetes-Dashboards auf einem vorhandenen Cluster in der Kubernetes-Dokumentation befolgen, wird es im
kubernetes-dashboard
-Namespace und nicht imkube-system
-Namespace bereitgestellt. Infolgedessen lautet die URL zum Anzeigen des manuell bereitgestellten Kubernetes-Dashboards wie folgt:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login.
-
Wählen Sie im Kubernetes-Dashboard Token aus, und fügen Sie den zuvor kopierten Wert des Elements
token:
in das Feld Token ein. - Wählen Sie im Kubernetes-Dashboard die Option Anmelden aus, und wählen Sie Überblick aus, um die im Cluster bereitgestellten Anwendungen anzuzeigen.
Hinweise zum Löschen des Kubernetes-Dashboards
Wenn Sie das Kubernetes-Dashboard manuell aus einem Cluster löschen möchten, führen Sie die folgenden kubectl-Befehle aus:
kubectl delete deployment kubernetes-dashboard -n kube-system
kubectl delete sa -n kube-system kubernetes-dashboard
kubectl delete svc -n kube-system kubernetes-dashboard
kubectl delete secret -n kube-system kubernetes-dashboard-certs
kubectl delete secret -n kube-system kubernetes-dashboard-csrf
kubectl delete secret -n kube-system kubernetes-dashboard-key-holder
kubectl delete cm -n kube-system kubernetes-dashboard-settings
kubectl delete role -n kube-system kubernetes-dashboard
kubectl delete rolebinding -n kube-system kubernetes-dashboard
kubectl delete clusterrole -n kube-system kubernetes-dashboard
kubectl delete clusterrolebinding -n kube-system kubernetes-dashboard
kubectl delete deploy -n kube-system kubernetes-dashboard