Was ist Container-Orchestrierung?
Die Container-Orchestrierung bezeichnet den Prozess zum Automatisieren von Deployment, Management, Skalierung und Vernetzung von Containern während ihres gesamten Lifecycles. Dadurch können Sie dieselbe Anwendung in verschiedenen Umgebungen einsetzen, ohne sie neu konzipieren zu müssen. Dieser Aspekt ist besonders für Unternehmen wichtig, die Hunderte oder Tausende von Linux®-Containern und Hosts bereitstellen und verwalten müssen.
Die Verwaltung des Lifecycles von Containern mittels Orchestrierung unterstützt auch DevOps-Teams, die sie in CI/CD-Workflows integrieren. Zusammen mit APIs (Application Programming Interfaces) und DevOps-Teams bilden containerisierte Microservices die Basis für cloudnative Anwendungen.
Wofür wird Container-Orchestrierung genutzt?
Nutzen Sie Container-Orchestrierung zur Automatisierung und Verwaltung von Aufgaben wie den folgenden:
- Provisionierung und Deployment
- Konfiguration und Planung
- Ressourcenzuweisung
- Containerverfügbarkeit
- Skalierung oder Entfernung von Containern basierend auf dem Ausgleich von Workloads in Ihrer Infrastruktur
- Load Balancing und Routing des Datenverkehrs
- Überwachung des Container-Zustands
- Konfiguration von Anwendungen auf der Basis des Containers, in dem sie ausgeführt werden sollen
- Gewährleistung der Sicherheit von Interaktionen zwischen Containern
Container-Orchestrierungstools
Container-Orchestrierungstools schaffen ein Framework für die Verwaltung von Containern und Microservices-Architektur in großem Umfang. Zahlreiche Container-Orchestrierungstools können zur Verwaltung des Container-Lifecycles genutzt werden. Zu beliebten Optionen zählen Kubernetes, Docker Swarm und Apache Mesos.
Kubernetes ist ein quelloffenes Container-Orchestrierungstool, das ursprünglich von Engineers bei Google entwickelt und gestaltet wurde. Google spendete das Kubernetes-Projekt 2015 der neu gegründeten Cloud Native Computing Foundation.
Mit der Kubernetes-Orchestrierung können Sie Anwendungsservices entwickeln, die sich über mehrere Container erstrecken, Container clusterübergreifend planen, skalieren und ihren Zustand im Laufe der Zeit überwachen.
Mit Kubernetes können viele manuelle Prozesse im Zusammenhang mit dem Deployment und der Skalierung von containerisierten Anwendungen eliminiert werden. Sie können Gruppen von Hosts in Form von physischen oder virtuellen Maschinen, auf denen Linux-Container laufen, zu Clustern zusammenfassen, und Kubernetes bietet Ihnen die Plattform zur einfachen und effizienten Verwaltung dieser Cluster.
Allgemeiner gesagt, können Sie mit Kubernetes eine Infrastruktur in Ihren Produktionsumgebungen implementieren, die komplett containerbasiert ist und auf die Sie sich verlassen können.
Diese Cluster können Hosts in Public, Private oder Hybrid Clouds haben. Aus diesem Grund ist Kubernetes eine ideale Plattform für das Hosting cloudnativer Anwendungen, die eine schnelle Skalierung benötigen.
Kubernetes unterstützt auch die Portierbarkeit von Workloads und Load Balancing, indem es Ihnen das Verschieben von Anwendungen ermöglicht, ohne diese neu gestalten zu müssen.
Hauptkomponenten von Kubernetes:
- Cluster: Eine Control Plane und eine oder mehrere Recheneinheiten oder Knoten.
- Control Plane: Die Sammlung der Prozesse, die Kubernetes-Knoten steuern. Von hier aus werden sämtliche Aufgaben zugewiesen.
- Kubelet: Dieser Service läuft auf den Knoten, liest die Container-Manifeste aus und sorgt dafür, dass die definierten Container gestartet und ausgeführt werden.
- Pod: Eine Gruppe aus einem oder mehreren Containern, die in einem einzelnen Knoten bereitgestellt wurde. Die Container in einem Pod teilen sich die IP-Adresse, IPC, Hostname und andere Ressourcen.
Wie funktioniert Container-Orchestrierung?
Wenn Sie ein Container-Orchestrierungstool wie Kubernetes verwenden, wird die Konfiguration einer Anwendung entweder durch eine YAML- oder JSON-Datei definiert. Das Konfigurationsmanagementtool entnimmt der Konfigurationsdatei, wo die Container Images zu finden sind, wie ein Netzwerk aufzubauen ist und wo die Protokolle gespeichert werden.
Bei der Bereitstellung eines neuen Containers plant das Container-Managementtool automatisch das Deployment in einem Cluster und findet den richtigen Host, wobei definierte Anforderungen oder Einschränkungen berücksichtigt werden. Das Orchestrierungstool verwaltet dann den Lifecycle des Containers auf der Grundlage der in der Compose-Datei festgelegten Spezifikationen.
Mit Kubernetes-Patterns können Sie Konfiguration, Lifecycle und Skalierung containerbasierter Anwendungen und Services verwalten. Diese wiederholbaren Patterns sind die Tools, die Kubernetes-Entwicklerinnen und -Entwickler zum Aufbau kompletter Systeme benötigen.
Die Container-Orchestrierung kann in beliebigen Umgebungen eingesetzt werden, in denen Container ausgeführt werden, einschließlich lokaler Server sowie Public Cloud- oder Private Cloud-Umgebungen.
Container-Orchestrierung für Unternehmen
Echte Produktions-Apps erstrecken sich über mehrere Container. Diese Container müssen auf mehreren Server-Hosts bereitgestellt werden. Hier kommt Red Hat® ins Spiel.
Red Hat OpenShift® ist Kubernetes für Unternehmen und noch vieles mehr. OpenShift integriert die zusätzlichen Technologiekomponenten, die Kubernetes leistungsstark und unternehmenstauglich machen, darunter Registry, Networking, Telemetrie, Sicherheit, Automatisierung und Services.
Und mit Tools wie Red Hat Service Interconnect bieten Router und Gateways vertrauenswürdige Kommunikationsverbindungen zwischen Services in verschiedenen Clouds, Edge-Geräten, allgemeinem Kubernetes und OpenShift.
Mit Red Hat können Entwicklungsteams neue containerisierte Apps erstellen, hosten und in der Cloud mit der erforderlichen Hochverfügbarkeit, Skalierbarkeit, Kontrolle und Orchestrierung bereitstellen. So können Sie gute Ideen schnell und einfach in neue Geschäftsmöglichkeiten verwandeln.
Zertifizierte Software für containerbasierte Deployments
Testen, kaufen und verwalten Sie zertifizierte Software in Public Clouds, Private Clouds und Ihrem Rechenzentrum. Das ist die Stärke von Red Hat Marketplace. Es ist eine einfachere Möglichkeit zum Zugriff auf Software, auf die Sie sich bereits verlassen, zur Entwicklung in einer einheitlichen Kubernetes-basierten Umgebung und für ortsunabhängige Deployments.
Red Hat Marketplace bedeutet, dass Sie mehr Zeit für die Entwicklung innovativer Lösungen aufwenden können, anstatt Lizenzen, Berechtigungen und Ablauffristen zu verfolgen.