Kubernetes-Architektur: Alles, was Sie 2022 wissen müssen
Veröffentlicht: 2021-01-05Inhaltsverzeichnis
Über Kubernetes
Kubernetes ist eine Open-Source-Plattform mit Funktionen wie Ressourcenmaximierung, automatischem Bereitstellungsprozess und -aktualisierung, automatischer Skalierung, Selbstheilung, automatisierten Rollbacks und Rollouts sowie Load-Balancing für Container-Orchestratoren und Diensterkennung, automatischer Neustart, automatische Platzierung, und automatische Replikation usw. Kubernetes ist nicht nur ein Container-Orchestrierer; Es ist auch ein Betriebssystem für Cloud-basierte Anwendungen.
Es ist wie eine Plattform zum Ausführen einer Anwendung, die anderen Anwendungen ähnelt, die unter Windows, MacOS oder Linux mit größerer Flexibilität ausgeführt werden. Es reduziert die Last der Orchestrierung und ermöglicht es Entwicklern, sich für den Self-Service-Betrieb vollständig auf Container-zentrierte Workflows zu konzentrieren. Entwickler haben den Vorteil einer sehr hohen Automatisierung im Bereitstellungs- und Anwendungsmanagement. Es kann in jede Umgebung integriert werden, um die Fähigkeiten zu erweitern.
Lesen Sie: Kubernetes-Gehalt in Indien
Kubernetes-Architektur
Die Kubernetes-Architektur besteht aus Schichten: Höhere und niedrigere Schichten. Dabei werden einzelne, physische oder virtuelle Maschinen zu einem Cluster zusammengeführt. Für die Kommunikation zwischen den einzelnen Servern wird ein gemeinsam genutztes Netzwerk verwendet. Kubernetes hat (mindestens) einen Master, der als Kontrollebene fungiert, ein verteiltes Speichersystem. Die mehreren Clusterknoten werden auch als Kubelets bezeichnet.
- Der Master von Kubernetes, die Steuerungsebene, plant die Bereitstellungen, stellt die API bereit und verwaltet den gesamten Kubernetes-Cluster.
- Der Cluster-Knoten führt eine Containerlaufzeit, einen Agenten für die Kommunikation mit dem Master und andere Überwachungskomponenten, Protokollierung usw. aus.
Die Kubernetes-Architektur und die Kubernetes-Komponenten sind im Bild unten dargestellt.
Quelle

Werfen wir einen Blick auf die Kubernetes-Komponenten .
Kubernetes-Komponenten
Meister: Kubernetes-Steuerungsebene
Der Master verwaltet die Daten jedes Objekts in Kubernetes. Da es den gesamten Cluster verwaltet, wird es als Master bezeichnet. Es steuert Objektzustände, hält den Abgleich des realen Zustands des Systems mit dem erforderlichen Zustand aufrecht, reagiert auf Änderungen usw.
Es enthält die folgenden drei wichtigen Komponenten:
- Kube- API-Server: Kubernetes-API-Server
- Kube-Scheduler: Pod-Scheduling in Worker-Knoten
- Kube-Controller: Verwaltet die Pod-Replikation
Wenn mehrere Master-Knoten vorhanden sind, werden diese Komponenten über alle Master-Knoten hinweg repliziert.
Die Lebenszyklus-Orchestrierung für verschiedene Anwendungen, einschließlich Updates, Skalierung usw., erfolgt durch API Server. Es fungiert als Gateway für die Clients, die sich nicht im Cluster befinden. Der API-Server führt die Authentifizierung durch. Es fungiert auch als Vermittler zu Pods und Nodes.
Der Controller führt die folgenden Aufgaben aus:
- Ausführen der Kernregelkreise
- Vornehmen von Änderungen für den Fahrstatus in Richtung des erforderlichen Zustands.
- Beobachten des Clusterstatus
Es bietet auch Routing, Speicherdienste, Lastausgleich, DNS-Netzwerkdienste und VM-Instanzen durch die Integration in öffentliche Clouds. Die verschiedenen Controller, die den Status für Autoscaling steuern, Knoten, Dienste und Pods, Namespaces.
Das Container-Scheduling über die Knoten hinweg erfolgt durch den Scheduler innerhalb des Clusters; unter Berücksichtigung unterschiedlicher Ressourcenbeschränkungen/-garantien oder Anti-Affinitäts-/Affinitätsspezifikationen.
Die Taxonomie der Kubernetes-Steuerungsebene ist unten dargestellt:
Quelle
Clusterknoten: Kubelets
Kubelets sind verschiedene Maschinen, die für die Ausführung von Containern verantwortlich sind. Der Master übernimmt die Verwaltung der Cluster-Knoten. Es wird auch Minion genannt. Die Cluster-Knoten gelten als der primäre Controller von Kubernetes. Es steuert Docker, die Ausführungsschicht von Containern.
Es enthält die folgenden Komponenten:
- Pod: Gruppe von Containern
- Docker: Containerbasierte Technologie, Benutzerbereich des Betriebssystems
- Kubelet: Container-Agenten, die für die Wartung des Satzes von Pods verantwortlich sind.
- Kube-Proxy: Leitet Datenverkehr weiter, der vom Dienst in einen Knoten kommt.
Die Kubernetes-Clusterknoten-Taxonomie ist unten dargestellt:
Quelle
Pods und Dienste
Pods sind ein wichtiges Konzept in Kubernetes, mit dem Entwickler interagieren. Es repräsentiert den laufenden Prozess. Es kann Anwendungsstapel hosten, die vertikal integriert sind, wie z. B. WordPress LAMP-Anwendungen. Nachfolgend sind verschiedene Pod-Typen aufgeführt:
Pod-Typ | Funktionalität |
ReplicaSet | Einfacher Pod-Typ Stellt den Betrieb fester Pods sicher |
Einsatz | Eine deklarative Art der Pod-Verwaltung über ReplicaSet![]() Laufende Updates und Rollback-Mechanismen sind enthalten. |
StatefulSet | Verwaltet Pods, die bestehen bleiben sollen |
Dämonensatz | Stellt sicher, dass jeder Knoten eine Pod-Instanz ausführt. Verwaltet Clusterdienste wie Protokollweiterleitung und Zustandsüberwachung. |
CronJob und Job | Führt kurzlebige Jobs als Planer aus |
Ein Pod kann aus mehreren Containern und externen Volumes bestehen. Die Taxonomie von Pod ist im folgenden Diagramm dargestellt:
Quelle
Dienste führen das Tracking von Pods durch. Zum Definieren von Pod- und Dienstzuordnungen werden anstelle von IP-Adresszuweisungen Selektoren oder Labels verwendet. Dies vereinfacht das Hinzufügen von Pods zum Service und das Freigeben neuer Versionen. Im Folgenden sind die verschiedenen Servicetypen aufgeführt:
Diensttyp | Funktionalität |
ClusterIP | Standardtyp; Macht den Dienst auf einer internen IP verfügbar und macht den Dienst erreichbar |
KnotenPort | Ermöglicht Entwicklern, ihre eigenen Load Balancer einzurichten |
Lastenausgleicher | Automatisiert ihre Konfiguration |
ExternerName | Wird häufig zum Erstellen von Diensten in Kubernetes verwendet. |
Die typische verwendete Cloud-Bereitstellung ist der LoadBalancer-Typ. Kubernetes unterstützt die Abstraktion von Ingress auf hoher Ebene, um die Komplexität zu lösen. Benutzer können verschiedene Dienste innerhalb derselben IP-Adresse anzeigen, indem sie dieselben Load Balancer verwenden.
Weiterlesen : Openshift vs. Kubernetes: Unterschied zwischen Openshift und Kubernetes
Kubernetes-Netzwerk
Meistens wird CNI (Container Network Interface) verwendet, um das Basisnetzwerk zu verschleiern. Calico, eine vollständig geroutete Option, kann ebenfalls verwendet werden. Bei beiden Optionen erfolgt die Kommunikation über ein clusterweites Pod-Netzwerk und wird von Calico oder Flannel (CNI-Anbieter) gesteuert. Container können ohne Einschränkung innerhalb eines Pods über den Localhost kommunizieren. Die Bewegung von externen Quellen zu Diensten oder Pods zu Diensten erfolgt über Kube-Proxy.
Dauerspeicher
Ein Verzeichnis mit einigen Daten wird in Kubernetes als Volumes bezeichnet. Die Verzeichnisse sind für Pods zugänglich. Es gibt viele Speichertypen in Kubernetes. Container innerhalb des Pods können beliebigen Speicher verbrauchen. Die öffentlichen Cloud-Dienste wie NFS, Amazon Elastic Block Store, Iscsi, CephFS usw. werden zum Mounten von Dateien und Blockspeicher in einem Pod verwendet. PVs (PersistentVolumes) sind clusterweite Objekte, die an die vorhandenen Speicherressourcen gebunden sind.
Innerhalb eines Namensraums wird die Anforderung eines Speicherverbrauchs von PersistentVolumeClaim initiiert. Die verschiedenen Zustände von PV sind verfügbar, gebunden, freigegeben und ausgefallen. Die StorageClasses sind die Abstraktionsschicht. Es differenziert die zugrunde liegende Speicherqualität und trennt verschiedene Merkmale heraus. Der Pod kann mithilfe von StorageClasses und PersistentVolumeClaim dynamisch neuen Speicher anfordern.
Quelle
Entdeckungs- und Veröffentlichungsdienste
Je nach Version des Clusters ist Kubernetes entweder auf Kube-DNS oder CoreDNS angewiesen, um die Dienste zu erkennen. Diese integrierten DNS-Dienste erstellen, aktualisieren und entfernen DNS-Einträge. Es hilft Anwendungen, andere Pods und Dienste durch ein konsistentes und einfaches Benennungsschema anzusprechen.
Beispiel ( Quelle )
Für einen Kubernetes-Dienst kann der DNS-Eintrag service.namespace.svc.cluster.local lauten
DNS-Eintrag, den ein Pod haben kann: 10.32.0.125.namespace.pod.cluster.local
Quelle
Namensräume
Der physische Cluster, der virtuelle Cluster enthält, wird Namespaces genannt. Es bietet mehreren Benutzern eine separate virtuelle Umgebung mit entsprechenden Zugriffsrechten für Kubernetes-Objekte.
Etiketten
Labels werden verwendet, um Ressourcen zu unterscheiden, die in einem einzelnen Namespace vorhanden sind. Die Attribute werden durch Schlüssel- oder Wertepaare definiert. Labels werden verwendet, um Organisationsstrukturen über Kubernetes-Objekte abzubilden. Es kann die Umgebung, den Release-Status, die App-Ebene oder die Identifizierung von Kunden beschreiben. Es verhindert die harte Verknüpfung von Objekten.
Anmerkungen
Anmerkungen werden verwendet, um Objekten beliebiges, nicht identifiziertes Gepäck oder Metadaten hinzuzufügen. Es wird als deklaratives Konfigurationstool verwendet.

Muss gelesen werden: Kubernetes vs. Docker: Hauptunterschiede, die Sie kennen sollten
Holen Sie sich Software-Engineering-Abschlüsse von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Fazit
Die Technologie von Kubernetes entwickelt sich schnell und ist eine kostengünstige Lösung für die Zukunft. Es bietet eine große Stabilität für Anwendungen.
Alle grundlegenden Konzepte der Kubernetes-Architektur und Kubernetes-Komponenten werden in diesem Artikel erläutert.
Wenn Sie mehr über Kubernetes und Big Data erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen, mehr als 9 Projekte und mehr bietet Aufgaben, IIIT-B-Alumni-Status, praktische praktische Schlusssteinprojekte und Arbeitsunterstützung bei Top-Unternehmen.
