Grundlegendes zur Kubernetes-Architektur

Lassen Sie uns die Kubernetes-Architektur im Detail lernen.


Ich gehe davon aus, dass Sie ein grundlegendes Verständnis von Kubernetes haben. Wenn nicht, lesen Sie die folgenden Einführungs- und Installationsartikel.

Kubernetes Einführung für Anfänger

So installieren Sie Kubernetes unter Ubuntu 18?

Kubernetes folgt der Master-Slave-Architektur. Die Kubernetes-Architektur verfügt über einen Hauptknoten und Arbeitsknoten. Es gibt vier Komponenten von a Hauptknoten.

  • Kube API Server
  • Regler
  • Planer
  • etcd

Und der Arbeiterknoten hat drei Komponenten.

  • Kubelet
  • kube-proxy
  • Container-Laufzeit

So sieht eine Kubernetes-Architektur aus:

Kubernetes Architektur

Lassen Sie mich Ihnen die Komponenten des Masterknotens und der Arbeitsknoten im Detail erläutern.

Hauptknoten

Der Masterknoten verwaltet den Kubernetes-Cluster und ist der Einstiegspunkt für alle Verwaltungsaufgaben. Sie können über die CLI, die GUI oder die API mit dem Masterknoten kommunizieren. Um eine Fehlertoleranz zu erreichen, kann der Cluster mehr als einen Masterknoten enthalten. Wenn wir mehr als einen Masterknoten haben, gibt es einen Hochverfügbarkeitsmodus, in dem ein Leiter alle Operationen ausführt. Alle anderen Masterknoten wären die Anhänger dieses Leader-Masterknotens.

Um den Clusterstatus zu verwalten, verwendet Kubernetes außerdem etcd. Alle Masterknoten stellen eine Verbindung zu etcd her, einem verteilten Schlüsselwertspeicher.

kubernetes Masterknoten

Lassen Sie mich Ihnen alle diese Komponenten einzeln erläutern.

API-Server

API Server führt alle Verwaltungsaufgaben auf dem Masterknoten aus. Ein Benutzer sendet die restlichen Befehle an den API-Server, der die Anforderungen validiert, verarbeitet und ausführt. etcd speichert den resultierenden Status des Clusters als verteilten Schlüsselwertspeicher.

Planer

Danach haben wir einen Scheduler. Wie der Name schon sagt, plant der Scheduler die Arbeit für verschiedene Worker-Knoten. Es enthält die Informationen zur Ressourcennutzung für jeden Arbeitsknoten. Der Scheduler berücksichtigt auch die Anforderungen an die Dienstqualität, die Datenlokalität und viele andere solche Parameter. Anschließend plant der Scheduler die Arbeit in Bezug auf Pods und Services.

Controller Manager

Nicht terminierende Regelkreise, die den Status des Kubernetes-Clusters regeln, werden vom Control Manager verwaltet. Jetzt kennt jeder dieser Regelkreise den gewünschten Status des von ihm verwalteten Objekts und überprüft dann seinen aktuellen Status über die API-Server.

Wenn in einem Regelkreis der gewünschte Zustand nicht dem aktuellen Zustand des Objekts entspricht, werden die Korrekturschritte vom Regelkreis ausgeführt, um den aktuellen Zustand auf den gewünschten Zustand zu bringen. Der Controller-Manager stellt also sicher, dass Ihr aktueller Status mit dem gewünschten Status übereinstimmt.

etcd

Die etcd ist ein verteilter Schlüsselwertspeicher, der zum Speichern des Clusterstatus verwendet wird. Entweder muss es Teil des Kubernetes-Masters sein, oder Sie können es auch extern konfigurieren. etcd ist im goLang geschrieben und basiert auf dem Floß Konsens Algorithmus.

Das Floß ermöglicht es der Sammlung von Maschinen, als zusammenhängende Gruppe zu arbeiten, die den Ausfall einiger ihrer Mitglieder überleben kann. Selbst wenn einige der Mitglieder nicht funktionieren, kann dieser Algorithmus jederzeit funktionieren. Einer der Knoten in der Gruppe ist der Master, und der Rest von ihnen sind die Follower.

Es kann nur einen Meister geben, und alle anderen Meister müssen diesem Meister folgen. Neben dem Speichern des Clusterstatus wird etcd auch zum Speichern der Konfigurationsdetails wie der Subnetze und der Konfigurationszuordnungen verwendet.

Arbeiterknoten

Ein Arbeitsknoten ist ein virtueller oder physischer Server, auf dem die Anwendungen ausgeführt werden und der vom Masterknoten gesteuert wird. Die Pods werden auf den Worker-Knoten geplant, die über die erforderlichen Tools verfügen, um sie auszuführen und zu verbinden. Pods sind nichts anderes als eine Sammlung von Behältern.

Um von der Außenwelt aus auf die Anwendungen zugreifen zu können, müssen Sie eine Verbindung zu den Worker-Knoten und nicht zu den Master-Knoten herstellen.

kubernetes Arbeiterknoten

Lassen Sie uns die Komponenten des Arbeiterknotens untersuchen.

Container-Laufzeit

Die Container-Laufzeit wird im Wesentlichen zum Ausführen und Verwalten eines kontinuierlichen Lebenszyklus auf dem Worker-Knoten verwendet. Einige Beispiele für Containerlaufzeiten, die ich Ihnen geben kann, sind die Container rkt, lxc usw. Es wird häufig beobachtet, dass Docker auch als Containerlaufzeit bezeichnet wird. Um genau zu sein, möchte ich Ihnen sagen, dass Docker eine Plattform ist, die Container verwendet als Container-Laufzeit.

Kubelet

Kubelet ist im Grunde ein Agent, der auf jedem Arbeitsknoten ausgeführt wird und mit dem Hauptknoten kommuniziert. Wenn Sie also zehn Worker-Knoten haben, wird Kubelet auf jedem Worker-Knoten ausgeführt. Es empfängt die Pod-Definition auf verschiedene Weise und führt die diesem Port zugeordneten Container aus. Es stellt auch sicher, dass die Behälter, die Teil der Hülsen sind, immer gesund sind.

Das Kubelet stellt über das gRPC-Framework eine Verbindung zur Container-Laufzeit her. Das Kubelet stellt eine Verbindung zur Container Runtime Interface (CRI) her, um Container und Image-Operationen auszuführen. Der Image-Service ist für alle Image-bezogenen Vorgänge verantwortlich, während der Laufzeit-Service für alle Pod- und Container-bezogenen Vorgänge verantwortlich ist. Diese beiden Dienste müssen zwei verschiedene Vorgänge ausführen.

Lassen Sie mich Ihnen etwas Interessantes sagen: Containerlaufzeiten waren früher in Kubernetes fest codiert, aber mit der Entwicklung von CRI kann Kubernetes jetzt verschiedene Containerlaufzeiten verwenden, ohne dass eine Neukompilierung erforderlich ist. Daher kann Kubernetes jede Container-Laufzeit, die CRI implementiert, zum Verwalten von Pods, Containern und Container-Images verwenden. Docker Shim und CRI Container sind zwei Beispiele für CRI Shim. Mit Docker Shim werden Container mithilfe von Docker erstellt, das auf den Worker-Knoten installiert ist, und Docker verwendet intern einen Container zum Erstellen und Verwalten von Containern

Kube-Proxy

Der Kube-Proxy wird auf jedem Worker-Knoten als Netzwerk-Proxy ausgeführt. Es überwacht den API-Server bei jeder Erstellung oder Löschung von Servicepunkten. Für jeden Servicepunkt legt kube-proxy die Routen so fest, dass er darauf zugreifen kann.

Fazit

Ich hoffe, dies hilft Ihnen dabei, die Kubernetes-Architektur besser zu verstehen. Kubernetes Fähigkeiten sind immer gefragt. Wenn Sie lernen möchten, wie Sie Ihre Karriere aufbauen können, sollten Sie dies überprüfen Udemy natürlich.

STICHWORTE:

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map