Wie man einen Service Account und eine Cluster - Role - Binding für das Kubernetes Dashboard erstellt

KubernetesKubernetesBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Kubernetes Service Accounts sind eine entscheidende Komponente bei der Verwaltung der Identität und des Zugriffskontrolls von Anwendungen, die in einem Kubernetes - Cluster ausgeführt werden. In diesem Tutorial werden Sie Schritt für Schritt durch das Verständnis von Kubernetes Service Accounts, die Konfiguration des Kubernetes Dashboards mit einem Service Account und die Gewährung der erforderlichen Berechtigungen für das Dashboard geführt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ConfigurationandVersioningGroup(["Configuration and Versioning"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes/BasicsGroup -.-> kubernetes/dashboard("Dashboard") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/ConfigurationandVersioningGroup -.-> kubernetes/config("Config") subgraph Lab Skills kubernetes/dashboard -.-> lab-415171{{"Wie man einen Service Account und eine Cluster - Role - Binding für das Kubernetes Dashboard erstellt"}} kubernetes/get -.-> lab-415171{{"Wie man einen Service Account und eine Cluster - Role - Binding für das Kubernetes Dashboard erstellt"}} kubernetes/create -.-> lab-415171{{"Wie man einen Service Account und eine Cluster - Role - Binding für das Kubernetes Dashboard erstellt"}} kubernetes/config -.-> lab-415171{{"Wie man einen Service Account und eine Cluster - Role - Binding für das Kubernetes Dashboard erstellt"}} end

Das Verständnis von Kubernetes Service Accounts

Kubernetes Service Accounts sind eine entscheidende Komponente bei der Verwaltung der Identität und des Zugriffskontrolls von Anwendungen, die in einem Kubernetes - Cluster ausgeführt werden. Sie bieten eine Möglichkeit für Pods, ihre Interaktionen mit dem Kubernetes - API - Server zu authentifizieren und zu autorisieren, wodurch sichere Kommunikation und Ressourcenzugriff ermöglicht werden.

Was sind Kubernetes Service Accounts?

Kubernetes Service Accounts sind mit Pods verknüpft und geben den Prozessen, die in diesen Pods laufen, eine Identität. Sie werden verwendet, um die Interaktionen zwischen dem Pod und dem Kubernetes - API - Server zu authentifizieren und zu autorisieren. Jeder Namespace in einem Kubernetes - Cluster hat ein Standard - Service Account, und Sie können auch benutzerdefinierte Service Accounts erstellen, um spezifische Anwendungsanforderungen zu erfüllen.

Warum sollten Sie Kubernetes Service Accounts verwenden?

Kubernetes Service Accounts dienen mehreren wichtigen Zwecken:

  1. API - Zugriff: Service Accounts gewähren Pods die erforderlichen Berechtigungen, um auf die Kubernetes - API zuzugreifen, sodass sie verschiedene Operationen wie das Lesen, Erstellen oder Ändern von Ressourcen durchführen können.
  2. Sichere Kommunikation: Service Accounts werden verwendet, um die Pods zu authentifizieren und sicherzustellen, dass nur autorisierte Pods mit dem Kubernetes - API - Server interagieren können.
  3. Ressourcenisolierung: Indem Sie verschiedene Service Accounts für verschiedene Anwendungen oder Komponenten verwenden, können Sie Ressourcenisolierung und feingranularen Zugriffskontroll innerhalb Ihres Kubernetes - Clusters erreichen.

Die Konfiguration von Kubernetes Service Accounts

Um einen Kubernetes Service Account zu konfigurieren, können Sie die folgenden Schritte ausführen:

  1. Erstellen eines Service Accounts: Sie können einen neuen Service Account mit dem Befehl kubectl create serviceaccount erstellen. Beispielsweise würden Sie den folgenden Befehl ausführen, um einen Service Account namens "my - app - sa" im Namespace "default" zu erstellen:
kubectl create serviceaccount my-app-sa -n default
  1. Zuweisen des Service Accounts zu einem Pod: Beim Erstellen eines Pods können Sie den Service Account angeben, den der Pod verwenden soll. Dies wird in der YAML - Konfigurationsdatei des Pods im Feld spec.serviceAccountName festgelegt:
apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  serviceAccountName: my-app-sa
  containers:
    - name: my-app
      image: my-app:v1
  1. Gewähren von Berechtigungen an den Service Account: Standardmäßig haben Service Accounts eingeschränkte Berechtigungen. Um dem Service Account die erforderlichen Berechtigungen zu gewähren, können Sie eine Role oder ClusterRole erstellen und sie mit einer RoleBinding oder ClusterRoleBinding an den Service Account binden.

Die spezifischen erforderlichen Berechtigungen hängen von den Aktionen ab, die Ihre Anwendung im Kubernetes - Cluster ausführen muss.

Die Konfiguration des Kubernetes Dashboards mit einem Service Account

Das Kubernetes Dashboard ist eine leistungsstarke webbasierte Benutzeroberfläche (UI), die es Ihnen ermöglicht, Ihren Kubernetes - Cluster zu verwalten. Um das Dashboard zu sichern und den Zugriff darauf zu kontrollieren, können Sie es so konfigurieren, dass es einen Kubernetes Service Account verwendet.

Das Erstellen eines Service Accounts für das Kubernetes Dashboard

  1. Erstellen Sie einen neuen Service Account für das Kubernetes Dashboard:
kubectl create serviceaccount dashboard-sa -n kubernetes-dashboard
  1. Überprüfen Sie die Erstellung des Service Accounts:
kubectl get serviceaccounts -n kubernetes-dashboard

Das Gewähren von Berechtigungen an den Dashboard - Service Account

  1. Erstellen Sie eine ClusterRoleBinding, um dem Dashboard - Service Account die erforderlichen Berechtigungen zu gewähren:
kubectl create clusterrolebinding dashboard-sa-cluster-admin-binding --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-sa

Dies bindet die cluster - admin ClusterRole an den dashboard - sa Service Account im Namespace kubernetes - dashboard und gewährt ihm vollen administrativen Zugriff auf den Cluster.

Die Konfiguration des Kubernetes Dashboards zur Verwendung des Service Accounts

  1. Ändern Sie die Kubernetes Dashboard - Bereitstellung, um den dashboard - sa Service Account zu verwenden:
kubectl edit deployment kubernetes-dashboard -n kubernetes-dashboard

Aktualisieren Sie das Feld spec.template.spec.serviceAccountName auf dashboard - sa.

  1. Starten Sie den Kubernetes Dashboard - Pod neu, damit die Änderungen wirksam werden:
kubectl delete pod -n kubernetes-dashboard -l app.kubernetes.io/name=kubernetes-dashboard

Jetzt wird das Kubernetes Dashboard den dashboard - sa Service Account verwenden, um mit dem Kubernetes - API - Server zu interagieren und sicheren Zugriff auf die Clusterressourcen zu gewährleisten.

Das Gewähren von Berechtigungen an das Kubernetes Dashboard

Um dem Kubernetes Dashboard die erforderlichen Berechtigungen zu gewähren, können Sie die rollenbasierte Zugriffskontrolle (Role - Based Access Control, RBAC) von Kubernetes verwenden, um die entsprechenden Rollen und Berechtigungen zu definieren und zuzuweisen.

Das Verständnis von Kubernetes RBAC

Kubernetes RBAC ist ein leistungsstarkes Mechanismus zur Kontrolle des Zugriffs auf Kubernetes - Ressourcen. Es ermöglicht es Ihnen, Rollen mit bestimmten Berechtigungen zu definieren und diese Rollen dann Benutzern, Gruppen oder Service Accounts zuzuweisen.

Die Hauptkomponenten der RBAC sind:

  • Rollen (Roles): Definieren eine Reihe von Berechtigungen, die einem Subjekt gewährt werden können.
  • Cluster - Rollen (ClusterRoles): Ähnlich wie Rollen, aber gelten clusterweit.
  • Rollenbindungen (RoleBindings): Binden eine Rolle an ein Subjekt (Benutzer, Gruppe oder Service Account).
  • Cluster - Rollenbindungen (ClusterRoleBindings): Binden eine Cluster - Rolle an ein Subjekt.

Das Gewähren von Berechtigungen an das Kubernetes Dashboard

Um dem Kubernetes Dashboard die erforderlichen Berechtigungen zu gewähren, können Sie eine Cluster - Rolle und eine Cluster - Rollenbindung erstellen.

  1. Erstellen Sie eine Cluster - Rolle, die die erforderlichen Berechtigungen gewährt:
kubectl create clusterrole dashboard-cluster-role --resource=deployments,pods,services,secrets,configmaps,jobs,cronjobs --verb=get,list,watch,create,update,delete

Diese Cluster - Rolle gewährt Lese-, Schreib- und Löschberechtigungen für die angegebenen Kubernetes - Ressourcen.

  1. Erstellen Sie eine Cluster - Rollenbindung, um die Cluster - Rolle an das Kubernetes Dashboard - Service Account zu binden:
kubectl create clusterrolebinding dashboard-cluster-role-binding --clusterrole=dashboard-cluster-role --serviceaccount=kubernetes-dashboard:dashboard-sa

Dies bindet die dashboard - cluster - role Cluster - Rolle an das dashboard - sa Service Account im Namespace kubernetes - dashboard.

Jetzt hat das Kubernetes Dashboard die erforderlichen Berechtigungen, um die Ressourcen innerhalb des Kubernetes - Clusters zuzugreifen und zu verwalten.

Zusammenfassung

In diesem Tutorial haben Sie über Kubernetes Service Accounts, ihre Wichtigkeit und deren Konfiguration erfahren. Sie haben auch gelernt, wie Sie das Kubernetes Dashboard mit einem Service Account einrichten und dem Dashboard die erforderlichen Berechtigungen gewähren. Indem Sie Kubernetes Service Accounts verstehen und richtig konfigurieren, können Sie sichere Kommunikation und feingranularen Zugriffskontroll innerhalb Ihres Kubernetes - Clusters gewährleisten.