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.

Hinweis

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 im kube-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:

  1. 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.
  2. 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.

  3. 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.

  4. Rufen Sie wie folgt ein Authentifizierungstoken für den oke-admin-Serviceaccount ab:
    1. 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
    2. 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
    3. 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.

    4. Kopieren Sie den Wert des token:-Elements aus der Ausgabe. Mit diesem Token melden Sie sich beim Dashboard an.

  5. Geben Sie in einem Terminalfenster kubectl proxy ein, um das Kubernetes-Dashboard verfügbar zu machen.
  6. Ö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 im kube-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.
  7. Wählen Sie im Kubernetes-Dashboard Token aus, und fügen Sie den zuvor kopierten Wert des Elements token: in das Feld Token ein.

  8. 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