Was ist Container Orchestration?

Container-Orchestrierung ist eine Technologie, die die Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen automatisiert. Es vereinfacht die komplexen Aufgaben der Verwaltung einer großen Anzahl von Containern. Container-Orchestratoren wie Kubernetessorgen dafür, dass diese Container über verschiedene Server und Umgebungen hinweg effizient zusammenarbeiten. Orchestratoren bieten einen Rahmen für die Verwaltung von Container-Lebenszyklen, die Erkennung von Diensten und die Aufrechterhaltung hoher Verfügbarkeit. Für Microservices-Architekturen, bei denen cloud-native Anwendungen aus zahlreichen voneinander abhängigen Komponenten bestehen, ist dieses Framework grundlegend.

Durch den Einsatz von Container-Orchestrierung können DevOps-Teams die Provisionierung, Ressourcenzuweisung und Skalierung rationalisieren und so das Potenzial der Containerisierung voll ausschöpfen und auf ihre Geschäftsziele abstimmen.

 

Container Orchestrierung erklärt

Die Container-Orchestrierung automatisiert die Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen. Unternehmen setzen Orchestratoren ein, um eine große Anzahl von Containern zu kontrollieren und zu koordinieren und sicherzustellen, dass diese effizient über verschiedene Server hinweg interagieren.

Orchestrierungsschicht, die neue Versionen von Microservices bereitstellt, Microservices skaliert, um der Nachfrage gerecht zu werden, und Microservices auf Leistung und Zustand überwacht

Abbildung 1: Orchestrierungsschicht, die neue Versionen von Microservices bereitstellt, Microservices skaliert, um der Nachfrage gerecht zu werden, und Microservices auf Leistung und Zustand überwacht

Orchestratoren wie Kubernetes verwalten Lebenszyklen, erleichtern die Service-Erkennung und sorgen für hohe Verfügbarkeit. Sie ermöglichen das Zusammenspiel von Containern, was für Microservices-Architekturen unerlässlich ist, bei denen Cloud-native Anwendungen aus zahlreichen voneinander abhängigen Komponenten bestehen.

Der Markt für Container-Orchestrierung hält in der Tat Schritt mit der Einführung von Microservices-Architekturen, Cloud-nativen Anwendungen und Containerisierung. Mit 745,72 Millionen US-Dollar im Jahr 2022 - ein Plus von 26 % innerhalb von fünf Jahren - steigt die Marktgröße kontinuierlich an und wird bis 2029 voraussichtlich 1084,79 Milliarden US-Dollar erreichen.

 

Orchestrierungs-Tools

Orchestrierungs-Tools bieten einen Rahmen für die Automatisierung von Container-Workloads und ermöglichen es DevOps-Teams, die Lebenszyklen ihrer Container zu verwalten. Diese Systeme oder Orchestrierungs-Engines ermöglichen fortschrittliche Netzwerkfunktionen, die die Provisionierung von Containern und Microservices rationalisieren und gleichzeitig die Ressourcen an den Bedarf anpassen. Mit Orchestratoren können DevOps-Teams das volle Potenzial der Containerisierung ausschöpfen und sie auf ihre Geschäftsziele abstimmen.

Beliebte Container Orchestration Engines

  • Kubernetes® (K8s)
  • Rancher
  • SUSE Rancher
  • Amazon Elastic Kubernetes Dienste (EKS)
  • Azure Kubernetes Dienste (AKS)
  • Google Kubernetes Engine (GKE) / Anthos
  • Red Hat OpenShift Container Plattform (OCP)
  • Mesos
  • Cisco Container-Plattform (CCP)
  • Oracle Container Engine für Kubernetes (OKE)
  • Ericsson Container Cloud (ECC)
  • Docker-Schwarm
  • HashiCorp Nomad

Der Vorteil von Orchestrierungs-Engines liegt in dem deklarativen Modell, das sie typischerweise verwenden und das die Vorteile von Infrastruktur als Service (IaaS) und Plattform als Service (PaaS)effektiv kombiniert.

  • IaaS bietet die granulare Kontrolle und Automatisierung, die es Entwicklern ermöglicht, die zugrunde liegende Infrastruktur wie Server, Speicher und Netzwerk zu verwalten. Dies gibt den Entwicklern die Flexibilität, ihre Bereitstellungen an die jeweiligen Bedürfnisse anzupassen.
  • PaaS bietet eine höhere Abstraktionsebene, die es Entwicklern ermöglicht, sich auf ihre Anwendungen zu konzentrieren, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. PaaS macht es Ingenieuren leichter, ihre Anwendungen bereitzustellen und zu verwalten, bietet ihnen aber auch weniger Kontrolle über die Infrastruktur.

Orchestratoren nutzen das Beste aus beiden Welten und bieten Entwicklern Leistung und Flexibilität sowie eine konsistente Betriebserfahrung in allen Umgebungen, von physischen Maschinen und Rechenzentren vor Ort bis hin zu virtuellen Bereitstellungen und Cloud-basierten Systemen.

Zu den Kernfunktionen bekannter Orchestrierungs-Engines gehören Planung, Ressourcenmanagement, Service-Erkennung, Zustandsprüfungen, automatische Skalierung sowie die Verwaltung von Updates und Upgrades.

 

Schlüsselkomponenten von Orchestrators

Die Terminologie für Container-Orchestrierungskomponenten ist bei den derzeit auf dem Markt befindlichen Tools unterschiedlich. Die zugrundeliegenden Konzepte und Funktionalitäten bleiben jedoch relativ konsistent. Tabelle 3 bietet einen vergleichenden Überblick über die Hauptkomponenten mit der entsprechenden Terminologie für beliebte Container-Orchestratoren. Für unsere Zwecke, um ein Gefühl für die Mechanismen der Orchestrierung zu bekommen, verwenden wir die Begriffe von Kubernetes.

Übersicht über die Container-Orchestrierungskomponenten

Abbildung 2: Übersicht über die Container-Orchestrierungskomponenten

Orchestrierungs-Engines wie Kubernetes sind komplex und bestehen aus mehreren technologischen Schlüsselkomponenten, die zusammenarbeiten, um den Lebenszyklus von Containern zu verwalten. Wenn Sie die wichtigsten Komponenten verstehen, wissen Sie, wie Sie Container-Technologien am besten einsetzen können.

Die Steuerungsebene

Das Herzstück von Kubernetes ist die Steuerungsebene, die Kommandozentrale für die Planung und Verwaltung des Lebenszyklus von Anwendungen. Die Steuerebene stellt die Kubernetes-API bereit, orchestriert die Bereitstellung und steuert die Kommunikation im gesamten System. Außerdem überwacht es den Zustand der Container und verwaltet den Cluster. Es stellt sicher, dass Container-Images aus einer Registry für die Bereitstellung bereitstehen.

Die Kubernetes-Kontrollebene umfasst mehrere Komponenten - den etcd, den API-Server, den Scheduler und den Controller-Manager.

Etcd

Der Datenspeicher etcd, der von CoreOS entwickelt und später von Red Hat übernommen wurde, ist ein verteilter Key-Value-Speicher, der die Konfigurationsdaten des Clusters enthält. Sie informiert den Orchestrator über seine Aktionen zur Aufrechterhaltung des gewünschten Anwendungsstatus, der durch eine deklarative Richtlinie definiert ist. Diese Richtlinie umreißt die optimale Umgebung für eine Anwendung und leitet den Orchestrator bei der Verwaltung von Eigenschaften wie Anzahl der Instanzen, Speicherbedarf und Ressourcenzuweisung.

API-Server

Der Kubernetes-API-Server spielt eine zentrale Rolle, denn er stellt die Fähigkeiten des Clusters über eine REST-Schnittstelle zur Verfügung. Er verarbeitet Anfragen, prüft sie und aktualisiert den Zustand des Clusters auf der Grundlage der erhaltenen Anweisungen. Dieser Mechanismus ermöglicht eine dynamische Konfiguration und Verwaltung von Workloads und Ressourcen.

Planer

Der Scheduler in Kubernetes weist Workloads auf der Grundlage der Ressourcenverfügbarkeit und anderer Einschränkungen, wie Servicequalität und Affinitätsregeln, den Worker Nodes zu. Der Scheduler sorgt dafür, dass die Verteilung der Arbeitslasten für den aktuellen Zustand und die Ressourcenkonfiguration des Clusters optimiert bleibt.

Controller-Manager

Der Controller-Manager verwaltet den gewünschten Zustand der Anwendungen. Es arbeitet mit Controllern, Regelkreisen, die den gemeinsamen Zustand des Clusters überwachen und Anpassungen vornehmen, um den aktuellen Zustand mit dem gewünschten Zustand in Einklang zu bringen. Diese Controller sorgen für die Stabilität der Knoten und Pods und reagieren auf Veränderungen im Zustand des Clusters, um die betriebliche Konsistenz aufrechtzuerhalten.

Container Orchestrator Komponenten der Steuerungsebene Worker Node Komponenten Bereitstellungseinheit Service
Kubernetes API Server, Planer, Controller Manager, etcd kubelet Pod Service
Docker-Schwarm Manager Arbeiter Service Stapel
Nomade Server Agent Job Zuweisung
Mesos Meister Agent Aufgabe Job
OpenShift Konsole, Controller Manager, etcd Knotenpunkt Pod Service
Amazon Elastic Container Service (ECS) Cluster Controller EC2-Instanzen Aufgabe Service
Google Kubernetes Engine (GKE) Kontrollebene Knotenpunkte Pod Service
Azure Kubernetes Dienst (AKS) Kontrollebene Knotenpunkte Pod Service

Tabelle 1: Gemeinsame Komponenten für verschiedene Orchestrierungs-Engines.

Orchestrierung und unveränderliche Infrastruktur

Im Gegensatz zu herkömmlichen Servern und virtuellen Maschinen macht das unveränderliche Paradigma, das Containern und ihrer Infrastruktur zugrunde liegt, Änderungen nach der Bereitstellung überflüssig. Stattdessen werden Aktualisierungen oder Korrekturen vorgenommen, indem neue Container oder Server aus einem gemeinsamen Image mit den erforderlichen Änderungen bereitgestellt werden.

Die inhärente Programmierbarkeit der unveränderlichen Infrastruktur ermöglicht die Automatisierung. Infrastruktur als Code (IaC) ist ein Markenzeichen moderner Infrastrukturen, die es Anwendungen ermöglichen, die erforderliche Infrastruktur programmatisch zu provisionieren, zu konfigurieren und zu verwalten. Die kombinierte Leistung von Container-Orchestrierung, unveränderlicher Infrastruktur und IaC-gesteuerter Automatisierung bietet unübertroffene Flexibilität und Skalierbarkeit.

 

Container-Orchestrierung und die Pipeline

Angetrieben von den beiden Triebkräften der Containerisierung und DevOps bringt die Container-Orchestrierung Geschwindigkeit und Skalierbarkeit zusammen, um die dynamische und anspruchsvolle Produktionspipelinevon heute zu unterstützen.

Lebenszyklus der CI/CD-Pipeline-Anwendungsentwicklung

Abbildung 3: Lebenszyklus der CI/CD-Pipeline-Anwendungsentwicklung

Phase der Akquisition und des Aufbaus der Pipeline

In der Acquisitions- und Build-Phase ziehen die Entwickler den Code aus den Versionskontroll-Repositories und leiten den Build-Prozess ein. Automatisierte Tools kompilieren den Quellcode in binäre Artefakte, die für die Bereitstellung mit einem Tool wie Docker oder BuildKit bereitstehen. Sobald das Container-Image erstellt ist, wird es in einer Registry wie Docker Hub oder Google Artifact Registry gespeichert.

Die Acquisitions- und Build-Phase fördert den konsistenten Aufbau der Anwendung, wobei Skripte Abhängigkeiten verwalten und erste Tests durchführen. Das Ergebnis ist ein zuverlässiger Build, der, wenn er in den Hauptzweig integriert wird, weitere automatisierte Prozesse auslöst.

Phase ausführen

Wenn die Build-Phase abgeschlossen ist, führt die Pipeline den Code in einer kontrollierten Umgebung aus. Die Ausführung des Container-Images in einer Staging-Umgebung kann mit einem Container-Orchestrierungstool wie Kubernetes erfolgen. Bei diesem entscheidenden Schritt führt das Team eine Reihe automatisierter Tests durch, um die Funktionalität der Anwendung zu überprüfen. Die Entwickler suchen aktiv nach Fehlern und beheben sie, um sicherzustellen, dass nur hochwertiger Code die Pipeline durchläuft.

Lieferphase

In der Auslieferungsphase der CI/CD-Pipeline automatisieren die Teams den Weg des neuen Codes vom Repository bis zur Produktionsreife. Jede Übergabe löst eine Reihe strenger automatischer Tests und Qualitätsprüfungen aus, die sicherstellen, dass nur gut geprüfter Code in die Staging-Umgebung gelangt. Hier wird die Software zusätzlichen, oft kundenseitigen Validierungen unterzogen. Der Prozess umfasst die Beförderung des Builds durch verschiedene Umgebungen, die jeweils als Testgelände für Stabilität und Leistung dienen. Das Engagement des Teams in der Auslieferungsphase stellt sicher, dass die Software das Beste aus den aktuellen Entwicklungsbemühungen verkörpert.

Phase der Bereitstellung

In der Phase der Bereitstellung erreicht die Anwendung ihren entscheidenden Moment, wenn die Teams sie in die Produktionsumgebung einführen. Container-Orchestrierungstools wie Kubernetes übernehmen die Kontrolle, skalieren die Anwendung und aktualisieren sie mit minimaler Ausfallzeit. Die Teams verfügen über Rollback-Mechanismen, die es ihnen ermöglichen, zu früheren Versionen zurückzukehren, falls Probleme auftreten. An diesem Punkt ist die Anwendung einsatzbereit, dient den vorgesehenen Benutzern und erfüllt ihren Zweck im digitalen Ökosystem.

Stufe beibehalten

Nach der Bereitstellung geht das Team zur aktiven Wartung der Anwendung über. Sie setzen eine Laufzeitlösung ein, um kontinuierlich die Leistung zu überwachen, Fehler zu protokollieren und Benutzer-Feedback zu sammeln, was wiederum die Grundlage für zukünftige Verbesserungen und die Containersicherheitbildet.

Während die Entwickler die Anwendung feinabstimmen, Sicherheitspatches anwenden und neue Funktionen einführen, unterstreicht die Wartungsphase den iterativen Charakter der modernen Anwendungsentwicklung. Das Produkt wird kontinuierlich weiterentwickelt, um die Anforderungen der Benutzer zu erfüllen und die neuesten technologischen Fortschritte zu integrieren.

 

Vorteile der Container-Orchestrierung

Die Container-Orchestrierung bietet eine Reihe von Vorteilen, die mit den Zielen von DevOps übereinstimmen und letztlich die betriebliche Effizienz steigern und die Gemeinkosten in Cloud-Umgebungen reduzieren.

Verbessert die Skalierbarkeit

Container-Orchestrierungsplattformen ermöglichen es Unternehmen, containerisierte Anwendungen als Reaktion auf schwankende Nachfrage zu skalieren - ohne menschliches Eingreifen oder den Versuch, die Anwendungslast vorherzusagen. Die Bin-Packaging- und Autoscaling-Funktionen des Orchestrators sorgen in Verbindung mit der Public Cloud Infrastructure as Code für eine dynamische Ressourcenzuweisung und damit für optimale Leistung bei Spitzenlasten.

Erleichtert die Resilienz

Durch die Verteilung von Container-Instanzen auf mehrere Hosts erhöhen Orchestrierungs-Tools die Ausfallsicherheit von Anwendungen. Sie erkennen Ausfälle und setzen Container automatisch wieder in Betrieb, um Ausfallzeiten zu minimieren und die Servicekontinuität aufrechtzuerhalten.

Fördert die Effizienz

Orchestrierungs-Engines passen die Ressourcen genau an die Anforderungen an, die eine Anwendung in den verschiedenen Nutzungsszenarien stellt. So wird eine ausufernde Überprovisionierung verhindert und die Organisationen müssen nicht für eine hohe Wassernutzung planen. Diese Effizienz reduziert die Infrastrukturkosten und maximiert den Return on Investment.

Vereinfacht die Verwaltung

Container-Orchestratoren bieten eine einheitliche Schnittstelle für die Verwaltung von Container-Clustern, indem sie komplexe Aufgaben abstrahieren und den operativen Aufwand verringern. Teams können mit minimalen manuellen Eingriffen Updates bereitstellen, den Zustand überwachen und Richtlinien durchsetzen.

Verbessert die Sicherheit

Die Orchestrierung von Containern erhöht die Sicherheit, indem sie die Bereitstellung von Patches und Sicherheitsupdates automatisiert. Es setzt konsistente Sicherheitsrichtlinien für die gesamte Containerflotte durch und verringert so das Risiko von Schwachstellen.

Ermöglicht Portabilität

Die Orchestrierung stellt sicher, dass containerisierte Anwendungen unabhängig von der zugrundeliegenden Infrastruktur bleiben und erleichtert die Portabilität über verschiedene Cloud-Umgebungen und lokale Rechenzentren hinweg.

Beschleunigt die Bereitstellungszyklen

Durch die Automatisierung von Bereitstellungsprozessen verkürzen Orchestrierungswerkzeuge die Zeit von der Entwicklung bis zur Produktion und ermöglichen so schnelle Iterationen und eine schnellere Markteinführung neuer Funktionen.

Unterstützt DevOps-Praktiken

Durch die Integration mit CI/CD-Pipelines und die Verbesserung der Agilität der Softwareentwicklung fördert die Container-Orchestrierung die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams. Funktionen wie Zustandsüberwachung und Selbstheilung ermöglichen es den Teams, weniger Systemunterstützung und Fehlersuche zu leisten und so die DevOps-Produktivität zu optimieren.

 

Das Container-Ökosystem

Ganz einfach: Das Container-Ökosystem stellt eine bedeutende Veränderung in der Anwendungsentwicklung und -bereitstellung dar. Es umfasst eine Reihe von Komponenten - von Laufzeit-Engines bis hin zu Orchestrierungsplattformen, Registries und Sicherheitstools - und bietet Unternehmen die wichtige Effizienz, die die heutige schnelllebige digitale Landschaft erfordert.

Das Herzstück des Ökosystems ist natürlich die Synergie zwischen der Container-Engine und der Orchestrierungs-Engine. Gemeinsam führen diese Technologien containerisierte Anwendungen durch die komplizierten Phasen ihres Lebenszyklus.

Die Container-Engine erstellt und verpackt einzelne Container, während die Orchestrator-Engine mehrere Container in einer verteilten Infrastruktur verwaltet und orchestriert.

Während der Entwicklung erleichtert die Container-Engine das schnelle Prototyping und Testen, so dass die Entwickler schnell und effizient iterieren können. Wenn die Anwendung ausgereift ist, überführt der Orchestrator sie in die Produktion und bietet eine robuste und skalierbare Grundlage für die Bewältigung realer Arbeitslasten.

Docker und Kubernetes, die die Dynamik der Container- und Orchestrierungs-Engines darstellen

Abbildung 4: Docker und Kubernetes, die die Dynamik der Container- und Orchestrierungs-Engines darstellen

Strategische Implikationen für Unternehmenslenker

Agilität und Geschwindigkeit bei der Bereitstellung von Software

Das Container-Ökosystem beschleunigt die Bereitstellung von Anwendungen. Durch die Kapselung von Anwendungen in Containern können Organisationen schnell von der Entwicklung zur Produktion übergehen, unabhängig von der zugrunde liegenden Umgebung. Diese Agilität ist für Organisationen, die sich schnell an Marktveränderungen oder Benutzeranforderungen anpassen müssen, von entscheidender Bedeutung.

Verbesserte Effizienz und Optimierung der Ressourcen

Als Alternative zu herkömmlichen virtuellen Maschinen teilen sich Container den zugrunde liegenden OS Kernel und verbrauchen weniger Ressourcen. Diese Effizienz schlägt sich in geringeren Betriebskosten und einer besseren Auslastung der Computerressourcen nieder - ein entscheidender Vorteil für Unternehmen, die umfangreiche Anwendungen verwalten.

Skalierbarkeit und Flexibilität

Orchestratoren im Container-Ökosystem sind für digitale Unternehmen mit schwankender Nachfrage unverzichtbar und ermöglichen es ihnen, ihre Anwendungen ohne Leistungseinbußen zu skalieren. Das Container-Ökosystem als Ganzes verfeinert die bisherigen Kapazitäten für Skalierung und Ressourcenverfügbarkeit.

Konsistenz und Übertragbarkeit in verschiedenen Umgebungen

Das Container-Ökosystem gewährleistet Konsistenz und Portabilität. In Containern gepackte Anwendungen können einheitlich und zuverlässig in verschiedenen Computing-Umgebungen ausgeführt werden, von Rechenzentren vor Ort bis zu öffentlichen Clouds.

Anatomie einer gehosteten Container-Umgebung

Abbildung 5: Anatomie einer gehosteten Container-Umgebung

Vorbereitung auf eine Container-gesteuerte Zukunft

Die Zukunft deutet auf eine digitale Welt hin, in der die meisten, wenn nicht sogar alle, Anwendungen auf Containern laufen. Für Führungskräfte ist es ein strategischer Vorteil, wenn sie die Synergie hinter dem Container-Ökosystem verstehen. Mit einer fundierten Sichtweise können Sie die sich wandelnden Anforderungen der modernen Softwareentwicklung vorhersehen und effektiv erfüllen - und das bei optimalem ROI.

 

FAQs zur Container-Orchestrierung

Helm ist ein Paketmanager für Kubernetes, der die Bereitstellung und Verwaltung von Anwendungen auf Kubernetes-Clustern vereinfacht. Es verwendet Pakete namens Charts, die vorkonfigurierte Kubernetes-Ressourcen sind. Helm-Charts rationalisieren den Prozess der Definition, Installation und des Upgrades selbst der komplexesten Kubernetes-Anwendungen. Es verwaltet Abhängigkeiten zwischen Diagrammen und aktualisiert sie auf kontrollierte Weise. Helm ist für DevOps-Teams, die komplexe Bereitstellungen verwalten, unverzichtbar, da es eine effiziente, wiederholbare und standardisierte Methode zur Bereitstellung von Anwendungen bietet.
Ein ReplicaSet in Kubernetes sorgt dafür, dass eine bestimmte Anzahl von Pod-Replikaten zu einem bestimmten Zeitpunkt ausgeführt wird. Sie wird in erster Linie verwendet, um die Verfügbarkeit einer bestimmten Anzahl von identischen Pods zu garantieren. Wenn ein Pod ausfällt, startet das ReplicaSet neue Pods, um ihn zu ersetzen. ReplicaSets sind entscheidend für die Aufrechterhaltung des gewünschten Zustands und der hohen Verfügbarkeit von Anwendungen, insbesondere in verteilten und dynamischen Cloud-Umgebungen.
Eine Bereitstellung in Kubernetes bietet deklarative Updates für Anwendungen. Damit können Sie den Lebenszyklus einer Anwendung beschreiben, z. B. welche Bilder für die Anwendung verwendet werden sollen, die Anzahl der Pods und die Art und Weise, wie sie aktualisiert werden sollen, neben anderen Aspekten. Bereitstellungen verwalten ReplicaSets und bieten die Möglichkeit, zu einem früheren Zustand der Bereitstellung zurückzukehren. Damit sind sie für die Verwaltung zustandsloser Anwendungen und die Gewährleistung ihrer Ausfallsicherheit und Skalierbarkeit unerlässlich.
Ein StatefulSet in Kubernetes wird für die Verwaltung zustandsabhängiger Anwendungen verwendet. Im Gegensatz zu zustandslosen Anwendungen, die von Bereitstellungen verwaltet werden, benötigen zustandsabhängige Anwendungen eine dauerhafte Speicherung und eindeutige Netzwerk-Identifikatoren. StatefulSets behalten eine Sticky-Identität für jeden ihrer Pods bei. Dadurch wird sichergestellt, dass jeder Pod mit demselben Hostnamen und Speicherplatz neu geplant wird, auch wenn er auf einen anderen Knoten verschoben wird.
Ein DaemonSet in Kubernetes sorgt dafür, dass alle (oder einige) Knoten eine Kopie eines bestimmten Pods ausführen. Wenn Knoten zum Cluster hinzugefügt werden, werden ihnen automatisch Pods hinzugefügt. Wenn Knoten aus dem Cluster entfernt werden, werden diese Pods ebenfalls entsorgt. DaemonSets sind ideal für die Ausführung von Aufgaben wie Protokollierung, Überwachung oder Netzwerk-Proxy auf jedem Knoten, da sie automatisch die Bereitstellung und Skalierung dieser Aufgaben im gesamten Cluster verwalten.
Ein Dienst in Kubernetes ist eine Abstraktion, die einen logischen Satz von Pods und eine Richtlinie für den Zugriff auf diese definiert. Durch diese Abstraktion wird die Arbeitsdefinition von den Pods entkoppelt. Dienste leiten den Datenverkehr über eine Reihe von Pods, die in der Regel durch einen Selektor bestimmt werden. Sie ermöglichen eine lose Kopplung zwischen abhängigen Pods, indem sie eine IP-Adresse und einen DNS-Namen bereitstellen, über die auf die Pods zugegriffen werden kann. Dienste sind entscheidend dafür, dass vernetzte Anwendungen leicht zugänglich und widerstandsfähig gegenüber Änderungen in den zugrunde liegenden Pod-Konfigurationen sind.
Ingress in Kubernetes ist eine Ressource, die den externen Zugriff auf Dienste innerhalb eines Clusters verwaltet, in der Regel HTTP. Mit Ingress können Sie Regeln für die Weiterleitung des Datenverkehrs an Dienste definieren, einschließlich URL-Pfade, Lastausgleich, SSL-Terminierung und namensbasiertes virtuelles Hosting. Es ist eine Schlüsselkomponente für die Verwaltung des Zugriffs auf containerisierte Anwendungen von außen und bietet eine ausgefeiltere und flexiblere Lösung als einfaches Port-Forwarding.
Eine ConfigMap in Kubernetes ist eine Ressource, die zum Speichern nicht vertraulicher Daten in Schlüssel-Wert-Paaren verwendet wird. Pods können ConfigMaps als Umgebungsvariablen, Befehlszeilenargumente oder als Konfigurationsdateien in einem Volume verwenden, wodurch Sie Konfigurationsartefakte vom Bildinhalt trennen können.
Ein Persistent Volume (PV) in Kubernetes ist ein Teil des Speichers im Cluster, der von einem Administrator provisioniert oder mit Hilfe von Storage Classes dynamisch provisioniert wurde. Er ist eine Ressource im Cluster, genau wie ein Knoten, und bleibt über den Lebenszyklus eines einzelnen Pods hinaus bestehen. PVs bieten Anwendungen die Möglichkeit, Speicher unabhängig von der zugrunde liegenden Speicherinfrastruktur zu mounten und damit eine konsistente und integrierte Speicherlösung für zustandsabhängige Anwendungen zu schaffen.
Ein Persistent Volume Claim (PVC) in Kubernetes ist eine Anfrage nach Speicherplatz durch einen Benutzer. Er ähnelt einem Pod, da Pods Node-Ressourcen verbrauchen und PVCs PV-Ressourcen verbrauchen. PVCs ermöglichen es einem Benutzer, die Details der Bereitstellung und des Verbrauchs des Speichers zu abstrahieren. Wenn ein Benutzer einen PVC anfordert, wird er an einen verfügbaren PV im Cluster gebunden, was eine dynamische Verwaltung von Speicherressourcen in einer Kubernetes-Umgebung ermöglicht.
Autoskalierung in Kubernetes bezieht sich auf die automatische Anpassung der Anzahl der Pods in einer Bereitstellung, einem Replikatset oder einem Stateful-Set auf der Grundlage der aktuellen Last. Autoscaling hilft sicherzustellen, dass Anwendungen jederzeit über die richtige Menge an Ressourcen verfügen, wodurch die Ressourcenauslastung verbessert und schwankende Arbeitslasten effizient bewältigt werden. Horizontaler Pod-Autoscaler (HPA) und vertikaler Pod-Autoscaler (VPA) sind zwei gängige Arten von Autoscalern in Kubernetes, die die Anzahl der Pods bzw. die Größe der Pods skalieren.
Zurück Was ist Containersicherheit?