Mit Headlamp auf Cluster Zugriff

Erfahren Sie, wie Sie mit Headlamp erstellte Cluster mit Kubernetes Engine (OKE) anzeigen und verwalten.

Headlamp ist eine Open-Source-Kubernetes-Benutzeroberfläche, mit der Sie Workloads prüfen, Logs und Ereignisse anzeigen, Ressourcen bearbeiten, Anwendungen beheben und Vorgänge ausführen können, die von Ihren Kubernetes-RBAC-Berechtigungen zulässig sind. Sie können Headlamp als Desktopanwendung ausführen oder in einem Kubernetes-Cluster bereitstellen.

Wichtig

Das Upstream-Kubernetes-Projekt empfiehlt Headlamp als Ersatz für das Kubernetes-Dashboard. Das Kubernetes-Dashboard-Projekt wurde archiviert und wird nicht mehr verwaltet. Headlamp bietet ähnliche Cluster-Management-Workflows sowie Multi-Cluster-Unterstützung, Erweiterbarkeit und sowohl Desktop- als auch Cluster-Bereitstellungsoptionen. Weitere Informationen finden Sie unter Von Kubernetes-Dashboard zu Scheinwerfer: Übergang verstehen.

Wählen Sie, wie Headlamp basierend auf dem Zugriff auf Cluster ausgeführt werden soll:

  • Für einzelne Administratoren und Entwickler verwenden Sie Headlamp Desktop. Headlamp Desktop wird auf Ihrer Workstation ausgeführt und stellt über die Kubernetes-kubeconfig-Datei eine Verbindung zu Clustern her. Sie müssen keine Headlamp-Komponenten in jedem Cluster bereitstellen.
  • Stellen Sie Headlamp für eine gemeinsam verwendete browserbasierte Oberfläche in einem Cluster bereit. Das Projekt "Headlamp" stellt ein Helm-Diagramm für In-Cluster-Deployments bereit.

In beiden Fällen bestimmen Kubernetes-Authentifizierung und RBAC, welche Ressourcen Benutzer anzeigen können und welche Vorgänge sie ausführen können.

Headlamp Desktop verwenden

Verwenden Sie Headlamp Desktop, wenn Sie von einer Workstation aus auf ein oder mehrere Cluster zugreifen möchten, ohne dass Headlamp in den Clustern bereitgestellt wird.

So verwenden Sie Headlamp Desktop für den Zugriff auf ein Cluster:

  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. Prüfen Sie, ob die kubeconfig-Datei den Kubernetes-Kontext für das Cluster enthält, auf das Sie zugreifen möchten, indem Sie Folgendes eingeben:

    kubectl config get-contexts
  3. Installieren Sie Headlamp Desktop, indem Sie die Anweisungen für Ihr Betriebssystem in der Dokumentation zu Headlamp Desktop befolgen.

    Unter macOS können Sie beispielsweise Headlamp Desktop mit Homebrew installieren, indem Sie Folgendes eingeben:

    brew install --cask headlamp
  4. Starten Sie Headlamp Desktop.
  5. Wählen Sie das Cluster oder den Kubernetes-Kontext aus, auf den Sie zugreifen möchten.
  6. Schließen Sie die Authentifizierung ab, wenn Sie dazu aufgefordert werden.

In "Headlamp" werden die Kubernetes-Ressourcen angezeigt, auf die die Identität in der kubeconfig-Datei zugreifen darf. Die in Headlamp verfügbaren Vorgänge hängen von den Kubernetes-RBAC-Berechtigungen ab, die dieser Identität erteilt wurden.

Da Headlamp Desktop auf Ihrer Workstation ausgeführt wird, verbraucht Headlamp Desktop keine Worker-Knotenressourcen und unterliegt selbst nicht den Workload-Einschränkungen für virtuelle Knoten.

Installation von Scheinwerfern im Cluster

Stellen Sie Headlamp in einem Cluster bereit, wenn Sie eine gemeinsame browserbasierte Schnittstelle bereitstellen möchten.

Stellen Sie vor der Installation der Stirnlampe Folgendes sicher:

  • Sie haben den Zugriff auf das Cluster eingerichtet. Sie können den Zugriff prüfen, indem Sie kubectl get nodes eingeben. Siehe Clusterzugriff einrichten.
  • Helm ist in Ihrer Umgebung installiert und verfügbar. Sie können die Installation prüfen, indem Sie helm version eingeben.
  • Ihre Kubernetes-Identität verfügt über ausreichende Berechtigungen zum Erstellen der Ressourcen im Headlamp-Helm-Diagramm.

So installieren Sie Headlamp mit Helm:

  1. Fügen Sie das Headlamp-Helm-Repository hinzu, indem Sie Folgendes eingeben:

    helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/
    helm repo update
  2. Erstellen Sie einen Namespace für Headlamp, indem Sie Folgendes eingeben:

    kubectl create namespace headlamp
  3. Installieren Sie den Scheinwerfer, indem Sie Folgendes eingeben:

    helm install headlamp headlamp/headlamp --namespace headlamp
  4. Prüfen Sie die Installation:

    kubectl get deployment,pods,service -n headlamp

    Warten Sie, bis der Headlamp-Pod läuft und bereit ist.

Authentifizierung bei einem In-Cluster-Headlamp-Deployment

Headlamp verwendet Kubernetes-Authentifizierung und RBAC, um zu bestimmen, auf welche Clusterressourcen Benutzer zugreifen können.

So authentifizieren Sie sich bei dem mit dem Helm-Diagramm installierten Headlamp-Deployment:

  1. Prüfen Sie das Headlamp-Servicekonto, indem Sie Folgendes eingeben:

    kubectl get serviceaccount headlamp -n headlamp
  2. Prüfen Sie ClusterRoleBinding, indem Sie Folgendes eingeben:

    kubectl get clusterrolebinding headlamp-admin -o yaml
    Wichtig

    Standardmäßig erstellt das Headlamp-Helm-Diagramm ein headlamp-admin ClusterRoleBinding, das dem headlamp-Serviceaccount die Rolle cluster-admin erteilt. Die Rolle cluster-admin bietet uneingeschränkten Zugriff auf das Cluster. Erteilen Sie zur Verwendung in der Produktion nur die Berechtigungen, die für Ihre Umgebung erforderlich sind.

  3. Erstellen Sie ein temporäres Token für das Headlamp-Servicekonto, indem Sie Folgendes eingeben:

    kubectl create token headlamp -n headlamp
  4. Kopieren Sie das Token aus der Befehlsausgabe. Sie geben dieses Token ein, wenn Sie auf "Scheinwerfer" zugreifen.

Bei gemeinsamen Deployments sollten Sie die OpenID Connect-(OIDC-)Authentifizierung konfigurieren, anstatt Serviceaccounttoken zu verteilen. Weitere Informationen finden Sie in der Dokumentation zu Frontscheinwerfern.

Auf Deployment von In-Cluster-Headlamp zugreifen

Für den lokalen administrativen Zugriff können Sie kubectl port-forward verwenden, um auf den Headlamp-Service zuzugreifen.

  1. Leiten Sie den lokalen Port 8080 zum Scheinwerferdienst weiter, indem Sie Folgendes eingeben:

    kubectl port-forward -n headlamp service/headlamp 8080:80
  2. Öffnen Sie einen Browser, und gehen Sie zu:

    http://localhost:8080
  3. Wenn Sie dazu aufgefordert werden, geben Sie das zuvor erstellte Authentifizierungstoken ein.
Wichtig

Der Befehl kubectl port-forward wird für Pods, die auf virtuellen Knoten ausgeführt werden, nicht unterstützt. Wenn der Headlamp-Pod auf einem virtuellen Knoten ausgeführt wird, stellen Sie Headlamp stattdessen mit einer Ingress- oder einer anderen von Ihrer Umgebung unterstützten Zugriffsmethode bereit.

Konfigurieren Sie für gemeinsamen Produktionszugriff Ingress, TLS und einen geeigneten Authentifizierungsmechanismus, anstatt sich auf die Portweiterleitung zu verlassen. Weitere Informationen finden Sie in der Dokumentation zu Frontscheinwerfern.

Scheinwerfer mit virtuellen Knoten verwenden

Sie können Headlamp mit Clustern verwenden, die virtuelle Knotenpools enthalten.

  • Headlamp Desktop wird außerhalb des Clusters ausgeführt und unterliegt selbst nicht den Workload-Einschränkungen für virtuelle Knoten. Workloads, die Sie prüfen oder verwalten, unterliegen weiterhin den Funktionen und Einschränkungen des Knotentyps, auf dem sie ausgeführt werden.
  • Ein Headlamp-Deployment im Cluster wird als Kubernetes-Pods ausgeführt. Wenn Headlamp-Pods auf virtuellen Knoten geplant werden, unterliegen die Pods denselben Kubernetes-Feature-, Netzwerk-, Speicher- und Ressourcen-Constraints wie andere Workloads, die auf virtuellen Knoten ausgeführt werden.

Insbesondere wird kubectl port-forward für Pods auf virtuellen Knoten nicht unterstützt. Siehe Virtuelle Knoten mit verwalteten Knoten vergleichen und Ressourcen, die Pods zugewiesen sind, die von virtuellen Knoten bereitgestellt werden.

Zugriff auf Scheinwerfer prüfen

Nach der Verbindung mit dem Cluster mit Headlamp:

  1. Wählen Sie das Cluster.
  2. Namespace auswählen.
  3. Öffnen Sie Workloads.
  4. Wählen Sie Deployments oder Pods aus.
  5. Wählen Sie eine Ressource aus, um ihre Details, Ereignisse, Logs und zugehörigen Ressourcen anzuzeigen.

Die angezeigten Ressourcen und Vorgänge hängen von den Kubernetes-RBAC-Berechtigungen ab, die der Identität erteilt wurden, mit der Sie auf das Cluster zugegriffen haben.

Wenn der Kubernetes-Metrikserver im Cluster installiert ist, kann Headlamp auch Informationen zur Ressourcennutzung anzeigen. Weitere Informationen zum Kubernetes-Metrikserver finden Sie unter Kubernetes-Metrikserver auf einem Cluster bereitstellen.

Deployment von In-Cluster-Headlamps entfernen

So entfernen Sie das in diesem Thema erstellte Headlamp-Deployment:

  1. Deinstallieren Sie die Headlamp Helm-Version, indem Sie Folgendes eingeben:

    helm uninstall headlamp -n headlamp
  2. Löschen Sie den Namespace "Headlamp", indem Sie Folgendes eingeben:

    kubectl delete namespace headlamp

Wenn Sie den Scheinwerfer-Desktop von Ihrer Workstation entfernen, werden die Cluster, auf die Sie damit zugegriffen haben, nicht geändert.