[K8S-Serie] Verständnis der k8s- und k8s-Architektur

1. Was ist k8s?

Kubernetes, auch als k8s bezeichnet, ist eine Plattform, die die native Cloud-Bereitstellung unterstützt. K8s wird im Wesentlichen zur Vereinfachung der Entwicklung und Bereitstellung von Mikrodiensten verwendet. Es handelt sich um eine Open-Source-Container-Orchestrierungstechnologie, die zur Automatisierung der Bereitstellung, Erweiterung und Verwaltung von Containeranwendungen verwendet wird. Traditionelles Docker stellt eigentlich auch die Container-Orchestrierungstechnologie Docker-Compose bereit, Docker-Compose kann jedoch nur Container auf einem Host verwalten, während k8s Container auf mehreren Hosts verwalten kann.

2. Änderungen in den Anwendungsbereitstellungsmethoden

2.1. Traditionelle Bereitstellung (Ressourcen sind nicht isoliert):

Vorteile: Einfach, keine weitere Technologie erforderlich

Nachteile: Für Anwendungen können keine Ressourcennutzungsgrenzen definiert werden, es ist schwierig, Rechenressourcen angemessen zuzuteilen, und Programme sind anfällig für Einflussnahmen. Wenn ein bestimmter Prozess eine große Anzahl von Benutzerbesuchen hat, führt dies zu einer ungleichmäßigen Verteilung der Serverressourcen und einem Wettbewerb um Ressourcen.

2.2. Virtualisierungsbereitstellung (Ausführung mehrerer virtueller Maschinen auf einer physischen Maschine, zu viel Virtualisierung):

Vorteile: Programmumgebungen beeinflussen sich nicht gegenseitig, was ein gewisses Maß an Sicherheit bietet

Nachteile: Das Hinzufügen eines Betriebssystems und die Verschwendung einiger Ressourcen

2.3. Containerisierte Bereitstellung (ähnlich der Virtualisierung, aber gemeinsame Nutzung des Betriebssystems):

Vorteile: Es kann sichergestellt werden, dass jeder Container über ein eigenes Dateisystem, eine eigene CPU, einen eigenen Speicher, einen eigenen Prozessraum usw. verfügt und die zum Ausführen der Anwendung erforderlichen Ressourcen im Container verpackt und von der zugrunde liegenden Infrastruktur entkoppelt sind.

 3. Eigenschaften von k8s

(1) Selbstheilung: Sobald ein Container abstürzt, kann er in etwa 1 Sekunde schnell einen neuen Container starten.
(2) Elastische Skalierung: Der Cluster kann automatisch angepasst werden nach Bedarf. Passen Sie die Anzahl der ausgeführten Container an
(3) Diensterkennung: Der Dienst kann die Dienste, von denen er abhängt, durch automatische Erkennung finden
(4) Lastausgleich : Wenn ein Dienst mehrere Container startet, kann er automatisch den Lastausgleich von Anfragen realisieren
(5) Versions-Rollback: Wenn Sie ein Problem mit der neu veröffentlichten Programmversion feststellen, können Sie sofort ein Rollback auf die Version durchführen Originalversion. Version
(6) Speicherorchestrierung: Speichervolumes können automatisch entsprechend den Anforderungen des Containers selbst erstellt werden

4. Upgrade der Containerverwaltungsarchitektur

4.1.Borg-Architektur

4.2.kubernet-Architektur

5. Interpretation der K8S-Architektur

5.1.Masterknoten: Die Kontrollebene des Clusters, verantwortlich für die Cluster-Entscheidungsfindung (Verwaltung)

 (1) ApiServer: Der einzige Eingang für Ressourcenoperationen, empfängt von Benutzern eingegebene Befehle und stellt Mechanismen wie Authentifizierung, Autorisierung, API-Registrierung und Erkennung bereit.

  (2) Scheduler: Verantwortlich für die Cluster-Ressourcenplanung und die Planung von Pods für entsprechende Knotenknoten gemäß vorgegebener Planungsrichtlinien.

  (3) ControllerManager: Verantwortlich für die Aufrechterhaltung des Status des Clusters, z. B. Programmbereitstellungsvereinbarungen, Fehlererkennung, automatische Erweiterung, fortlaufende Updates usw.

(4) Etcd: Verantwortlich für die Speicherung von Informationen zu verschiedenen Ressourcenobjekten im Cluster.

5.2.Knotenknoten: Die Datenebene des Clusters, die für die Bereitstellung der Betriebsumgebung (Arbeit) für den Container verantwortlich ist

(1) Kubelet: Verantwortlich für die Aufrechterhaltung des Lebenszyklus, der Lagerung und des Netzwerks von Containern.

(2) KubeProxy: Verantwortlich für die Bereitstellung der Diensterkennung und des Lastausgleichs innerhalb des Clusters.

(3) Docker: Verantwortlich für verschiedene Vorgänge des Containers auf dem Knoten und dient als Laufzeitumgebung des Containers.

(4) Pod: Auf einem Knoten können mehrere Pods und auf einem Pod mehrere Container bereitgestellt werden.

Supongo que te gusta

Origin blog.csdn.net/m0_73901077/article/details/134902458
Recomendado
Clasificación