English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Grundlegendes zur Kubernetes-Architektur

kubernetes verwaltet Hosting
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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

Wie installiere ich 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
  • Scheduler
  • usw

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.

Master Node

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.

Scheduler

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.

usw

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.

Worker Node

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 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 Arbeitsknotens 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 mit Docker erstellt, der auf den Worker-Knoten installiert ist, und Docker verwendet dann intern einen Container, um Container zu erstellen und zu verwalten

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.

Conclusion

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.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu DevOps
Macht Ihr Geschäft
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder