So konfigurieren Sie die Servicekonten in Kubernetes

So konfigurieren Sie die Servicekonten in Kubernetes

In diesem Artikel finden Sie eine Übersicht über Servicekonten und ihre Funktionsweise. Ein entscheidender Teil von Kubernetes, der sicheren Zugriff auf den API -Server bietet, ist das Servicekonto. Eine Interaktion mit einem Kubernetes -Cluster erfordert die Kommunikation mit dem API -Server. Anfragen werden an den API -Server zur Kommunikation gestellt. Wenn ein API -Server eine Anfrage erhält, versucht er zunächst, sie zu authentifizieren. Wenn diese Authentifizierung fehlschlägt, wird die Anfrage als anonym angesehen. Dies bedeutet, dass jeder Prozess, unabhängig davon. Dieser Kontext beschreibt die Arten von Kubernetes -Konten und die Konfiguration eines Dienstkontos mit grundlegenden Beispielen.

Kontostyp in Kubernetes

In Kubernetes gibt es zwei Arten von Konten, die im Folgenden erwähnt werden:

Benutzerkonto

Es wird von Menschen verwendet, die Administrator- oder Entwicklerbenutzer sein können, die versuchen, auf die Ressourcen auf Clusterebene zuzugreifen und auf den Kubernetes-Cluster zuzugreifen. Diese Benutzer können das Externe des Clusters verwalten, aber der Kubernetes -Cluster ist sich dessen bewusst. Das Benutzerkonto hat keinen bestimmten Namespace.

Servicekonto

Dies sind die Konten auf Maschinenebene. Die Prozesse, die in den Schoten des Clusters aktiv sind. Der API -Server authentifiziert die POD über ein Servicekonto, bevor er auf die Cluster zugreifen kann.

Was ist ein Kubernetes -Servicekonto?

Es wird angewendet, um die Prozesse auf Maschinenebene zu authentifizieren, damit sie auf unseren Kubernetes -Cluster zugreifen können. Der API -Server ist für eine solche Authentifizierung für die in der POD ausgeführten Prozesse verantwortlich. Der Kubernetes -Cluster verwaltet die Servicekonten. Die Servicekonten haben einen bestimmten Namespace. Diese werden entweder automatisch vom API -Server oder manuell über API -Anrufe generiert.

Wie funktioniert das Kubernetes -Servicekonto??

Wir werden erklären, wie es in einem Szenario funktioniert, in dem eine Anwendung von einem Dritten versucht, eine Verbindung zu den Kubernetes -Cluster -API -Servern herzustellen.


Angenommen, es gibt eine Website, meine Webseite, auf der die Daten von einem API -Server im Kubernetes -Cluster abgerufen werden müssen, wie in der vorherigen Abbildung dargestellt, um eine Liste von Objekten anzuzeigen. Um auf die Daten von den Cluster -Servern zuzugreifen und sie zu authentifizieren, benötigen wir ein Servicekonto, das als Brücke fungiert.

Voraussetzungen

Vor der Arbeit mit der Start-Sonde sind die Voraussetzungen ein Kubernetes-Cluster mit zwei Knoten, die nicht als Hosts und Kubectl-Befehlssoftware fungieren, die so konfiguriert werden muss, dass sie zwischen Clustern kommunizieren. Wenn Sie keinen Cluster erstellt haben, können Sie mit dem Minikube einen Cluster erstellen. Es gibt andere Kubernetes -Playground -Optionen online, mit denen Sie den Cluster erstellen können.

Servicekonto erstellen

Wir müssen nun ein Servicekonto erstellen, indem wir die Schritt-für-Schritt-Anweisungen befolgen, um auf den Kubernetes-Cluster zuzugreifen. Lass uns anfangen!

Schritt 1: Starten Sie den Minikube

Starten Sie zunächst den Minikube -Cluster, damit Sie die Kubectl -Befehle verwenden und Ihre Anwendung ausführen können. Mit dem Minikube -Cluster können Sie Ihre Knoten, Pods und sogar Cluster in der Kubernetes -Umgebung bereitstellen. Daher ist es wichtig, den Minikube im aktiven Modus mit dem folgenden Befehl zu halten:

> Minikube Start


Dies aktiviert den Minikube -Cluster und macht die Kubernetes -Umgebung bereit.


Schritt 2: Verwenden Sie das Standarddienstkonto, um auf den API -Dienst zuzugreifen

Pods authentifizieren sich als ein bestimmtes Servicekonto, wenn sie mit dem API -Server kommunizieren. Das Standard -Dienstkonto für jeden Kubernetes -Namespace ist standardmäßig in jedem Namespace vorhanden und stellt die Mindestanzahl von Servicekonten dar. Wenn Sie einen Pod erstellen.

Sie können die Informationen für einen generierten Pod abrufen, indem Sie den folgenden Befehl ausführen:

> kubectl bekommen serviceAccounts



Schritt 3: Ausgabe der API -Anmeldeinformation Automounting

Das Servicekonto Yaml Manifest -Datei sollte zuerst geöffnet werden.

> Nano serviceAccount.Yaml


Anstelle des KuBelet, um automatisch die API -Anmeldeinformationen eines ServiceAcocunt zu montieren, können Sie das normale Verhalten ändern.


Schritt 4: Erstellen Sie ein zusätzliches Servicekonto

Zusätzliche Service -Konto -Objekte können wie erwähnt wie erwähnt erstellt werden:

> kubectl anwenden -f serviceAccount anwenden.Yaml



Schritt 5: Verwenden Sie mehrere Servicekonten

In diesem Zusammenhang erzeugt jeder Pod, der im Kubernetes -Cluster mit einem bestimmten Namespace generiert wird. Das Service -Token und das notwendige geheime Objekt werden automatisch vom Standarddienstkonto erstellt.

Wenn Sie den folgenden Befehl ausführen, können Sie jede serviceAccount -Ressource in Ihrem aktuellen Namespace auflisten:

> kubectl bekommen serviceAccounts



Schritt 6: Holen Sie sich einen Dump des Servicekontos

Wenn das Service -Account -Objekt vollständig abgeladen ist, sieht es wie der folgende Screenshot aus. Es ist mit dem angehängten Befehl hier erledigt:

> kubectl erhalten serviceAccounts/build -robot -o yaml



Schritt 7: Reinigen Sie das Servicekonto

Löschen Sie das laufende Konto, bevor Sie das Build-Robot-Dienstkonto mit dem folgenden Befehl einrichten:

> kubectl löschen serviceAccount/build-robot



Schritt 8: Erstellen Sie ein API -Token

Angenommen, Sie haben bereits den Namen „Build-Robot“ -Dienstkonto, wie im vorherigen Beispiel erwähnt. Mit dem folgenden Befehl können Sie ein kurzes API -Token für dieses Dienstkonto erhalten:

> Kubectl erstellen Token Demo1



Die Ausgabe des vorherigen Befehls wird zur Authentifizierung für diesen Servicekonto übertragen. Die Verwendung des Befehls impliziert -Sie können eine eindeutige Tokendauer erzeugen.

Schritt 9: Erstellen Sie ein manuell langlebiges API-Token für Service-Konto

Erstellen Sie ein neues Geheimnis mit einer einzigartigen Annotation, wenn Sie ein API -Token für ein Servicekonto erhalten möchten. Hier ist der folgende Befehl:

> Nano -Geheimnis.Yaml


Hier ist die vollständige Konfigurationsdatei:


Im angehängten Screenshot können Sie feststellen, dass ein Servicekonto erfolgreich erstellt wird.


Schritt 10: Zeigen Sie die geheimen Objektdetails an

Sie müssen den folgenden Befehl verwenden, um den Inhalt eines geheimen Elements sichtbar zu machen:

> Kubectl beschreiben Geheimnisse/Demo1


Wie Sie sehen können, ist das API-Token von „Build-Robot“ ServiceAccount jetzt im geheimen Objekt vorhanden.


Durch Ausführen des oben genannten Befehls können Sie den codierten Hash-Key-Wert des Token sehen, der im vorherigen Bild angezeigt wird.

Daher kann dieses Standard -Geheimobjekt verwendet werden, um die API -Server, die sich im selben Cluster -Namespace für unsere Anwendung befinden, die im gleichen Namespace bereitgestellt wird, einen Zugriff zu gewähren.

Schritt 11: Fügen Sie die ImagePullSecrets einem Servicekonto hinzu

Machen Sie einen ImagePullSecret. Stellen Sie dann sicher, dass es erzeugt wurde. Dafür lautet der Befehl wie folgt:

> kubectl erstellen geheimes Docker-Registry MyRegistryKey-Docker-Server = Dummy_Server \--Docker-Uername = Dummy_USERNAME-Docker-Password = dummy_docker_password \-Docker-Mail = dummy_docker_email


Stellen Sie sicher, dass es erstellt wird. Sie können dies mit dem angegebenen Befehl hier überprüfen:

> Kubectl Holen Sie sich Geheimnisse myregistryKey



Schritt 12: Fügen Sie den ImagePullSecret einem Servicekonto hinzu

Ändern Sie das Standarddienstkonto des Namespace so, dass es dieses Geheimnis als ImagePullSecret verwendet. Der Befehl wird wie folgt gegeben:

> Kubectl Patch serviceAccount default -p '"ImagePullSecrets": ["Name": "MyRegistryKey"]


Abschluss

Wir haben etwas über das Servicekonto erfahren, das den API -Server durch Authentifizierung, Autorisierung und Verwaltungssteuerung ermöglicht, die Anwendung sicherzustellen. Um die Kommunikation zwischen externen Programmen und APIs zu authentifizieren, dient der Service -Konto als Link zu einem Prozess, der in einem Pod ausgeführt wird. Das Praxis -Beispiel zum Erstellen des Servicekontos und zum Konfigurieren mit einem einfachen Beispiel wird in diesem Artikel implementiert.