Highlights
- Container-Orchestrierung bezeichnet den Prozess der Automatisierung von Deployment, Management, Skalierung und Vernetzung von Containern während ihres gesamten Lifecycles.
- Container-Orchestrierungsplattformen wie Kubernetes sorgen für reibungslose, selbst gemanagte Abläufe.
- Bei der Orchestrierung werden Microservices in separaten Containern koordiniert.
- Mit Kubernetes können viele manuelle Prozesse im Zusammenhang mit dem Deployment und der Skalierung containerisierter Anwendungen eliminiert werden.
- Red Hat entwickelt wichtige Tools zum Sichern, Vereinfachen und automatischen Aktualisieren Ihrer Container-Infrastruktur.
Was ist Container-Orchestrierung?
Container-Orchestrierung bezeichnet den Prozess der Automatisierung von Deployment, Management, Skalierung und Vernetzung von Containern während ihres gesamten Lifecycles. Sie ermöglicht die konsistente Bereitstellung von Software in vielen verschiedenen Umgebungen in großem Umfang.
Container, die eine Anwendung und die zugehörige Runtime-Umgebung in einer eigenständigen Einheit paketieren, sind die Basis für die Entwicklung cloudnativer Anwendungen. Die Container-Orchestrierung ist besonders wichtig für Unternehmen, die Hunderte oder Tausende von Containern und Hosts bereitstellen und verwalten müssen. Die meisten Lösungen für die Container-Orchestrierung basieren auf Kubernetes, einer weit verbreiteten Open Source-Plattform.
Welche Vorteile bietet die Container-Orchestrierung?
Mit Container-Orchestrierungsplattformen wie Kubernetes können Sie den gesamten Lifecycle von Containern automatisieren und einen ununterbrochenen Wartungsbetrieb für IT-Teams in reibungslose, selbst gemanagte Abläufe transformieren.
Die Container-Orchestrierung bietet Vorteile für die Entwicklungsmethoden sowie bei Kosten und Sicherheit.
Schnellere Entwicklung
Für Portierbarkeit und konsistente Ausführung in verschiedenen Umgebungen konzipierte Container eröffnen Möglichkeiten für Methoden zur schnelleren Softwareentwicklung. Die Container-Orchestrierung ermöglicht die Entwicklung von CI/CD-Pipelines (Continuous Integration/Continuous Deployment), welche die Softwarebereitstellung während des gesamten Lifecycles der Softwareentwicklung durch Automatisierung verbessern. Die Container-Orchestrierung ist auch mit einem DevOps-Ansatz verbunden, der die Beschleunigung der Prozesse zur Umsetzung einer Idee von der Entwicklung bis zur Bereitstellung zum Ziel hat.
Kosteneinsparungen
Mit Container-Orchestrierung lassen sich Container je nach Bedarf automatisch skalieren und so die erforderliche Kapazität für Ihre Anwendungen bereitstellen, während gleichzeitig Ressourcen gespart und Kosten reduziert werden. Eine Plattform für die Container-Orchestrierung kann einem Unternehmen die nötige Flexibilität bieten, um Multi Cloud- und Hybrid Cloud-Umgebungen effizient zu nutzen.
Sicherheit
Mit der Softwareentwicklung in Containern können Teams Sicherheitsprobleme bereits in der Entwicklungsphase beheben, anstatt eine laufende Anwendung aktualisieren oder patchen zu müssen. So wird eine bessere Vorhersagbarkeit von Container-Verhalten sowie Erkennung von ungewöhnlichem Verhalten ermöglicht. Mit Container-Orchestrierung kann ein Unternehmen Sicherheits- und Governance-Richtlinien anwenden und Richtlinien sogar nach Pods oder Pod-Gruppen segmentieren. Plattformen für die Container-Orchestrierung unterstützen auch RBAC (Role-based Access Control), mit der Nutzenden und Service Accounts bestimmte Berechtigungen zugewiesen werden.
Die Vorteile Kubernetes-nativer Sicherheit
Wofür wird Container-Orchestrierung genutzt?
Die Container-Orchestrierung bewältigt die hohen operativen Anforderungen moderner, cloudnativer Anwendungen. In der Vergangenheit waren Softwareanwendungen ein einzelner großer Block oder „Monolith“. Heutzutage werden Anwendungen in dutzende oder hunderte kleiner, unabhängiger Services unterteilt, die auch als Microservices bezeichnet werden und von denen jeder in einem eigenen Container ausgeführt wird. Die Orchestrierung koordiniert diese flexiblen Teile und stellt sicher, dass sie miteinander kommunizieren, unabhängig voneinander skaliert werden und zuverlässig in verschiedenen Umgebungen ausgeführt werden können.
Nutzen Sie Container-Orchestrierung zur Automatisierung und Verwaltung von Aufgaben wie den folgenden:
- Provisionierung und Deployment: Der Orchestrator liest Ihren Konfigurations-Blueprint, lädt die erforderlichen Container Images herunter und initialisiert sie automatisch in Ihrer Infrastruktur.
- Konfiguration und Planung: Der Orchestrator wertet die Server Ihres Clusters aus, um den optimalen Host für die einzelnen Container auszuwählen und die erforderlichen Umgebungsvariablen und Storage-Einstellungen beim Start zu injizieren.
- Ressourcenzuweisung: Unter Beachtung definierter CPU- und Speicherlimits paketiert der Orchestrator Container auf Servern und maximiert so die Hardware-Effizienz, ohne dass Anwendungen sich gegenseitig Ressourcen wegnehmen.
- Container-Verfügbarkeit: Cluster werden kontinuierlich überwacht und abgestürzte Container oder ausgefallene Server sofort ersetzt.
- Skalierung und Workload Balancing: Der Orchestrator aktiviert automatisch zusätzliche Container-Replikate, wenn Datenverkehrsspitzen die definierten Ressourcenschwellenwerte erreichen, und entfernt sie, wenn die Nachfrage nachlässt, um Kosten zu senken.
- Load Balancing und Routing des Datenverkehrs: Die Orchestrierung bietet einen permanenten internen Routing-Endpunkt, der den Netzwerkdatenverkehr gleichmäßig über einen wechselnden Pool von Container-IP-Adressen verteilt.
- Überwachung des Container-Zustands: Automatisierte Tests überprüfen regelmäßig, ob Container ordnungsgemäß ausgeführt werden, starten eingefrorene Anwendungen sofort neu und halten den Datenverkehr von Anwendungen zurück, die noch gestartet werden.
- Konfigurieren von Anwendungen pro Container: Einstellungen werden vom Anwendungscode entkoppelt, indem eindeutige Konfigurationen und geheime Schlüssel zur Runtime direkt in die Container-Umgebung injiziert werden.
- Gewährleistung der Sicherheit von Interaktionen: Es werden strenge, isolierte Netzwerk-Firewall-Richtlinien angewandt, die explizit vorschreiben, welche Container miteinander kommunizieren dürfen, um Sicherheitsrisiken zu minimieren.
Welche Aufgabe haben 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.
Wie Kubernetes Sie bei der Container-Orchestrierung unterstützt
Mit der Kubernetes-Orchestrierung können Sie Anwendungsservices entwickeln, die sich über mehrere Container erstrecken, Container clusterübergreifend planen, skalieren und ihren Zustand im Zeitverlauf überwachen.
Mit Kubernetes können viele manuelle Prozesse im Zusammenhang mit dem Deployment und der Skalierung containerisierter Anwendungen eliminiert werden. Sie können Gruppen von Hosts in Form von physischen oder virtuellen Maschinen, auf denen Linux-Container ausgeführt werden, 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 ein oder mehrere Compute Nodes.
- Control Plane: Die Sammlung der Prozesse, die Kubernetes-Nodes steuern. Von hier aus werden sämtliche Aufgaben zugewiesen.
- Kubelet: Dieser Service läuft auf Nodes, liest die Container-Manifeste aus und sorgt dafür, dass die definierten Container gestartet und ausgeführt werden.
- Pod: Eine Gruppe von einem oder mehreren Containern, die in einem einzigen Node bereitgestellt werden. Die Container in einem Pod teilen sich IP-Adresse, IPC, Hostnamen und andere Ressourcen.
Wie funktionieren Container-Orchestrierungstools?
Container-Orchestrierungstools führen eine kontinuierliche Abgleichsschleife (auch als Control Loop bezeichnet) aus, die die Realität kontinuierlich mit Ihren Anweisungen abgleicht.
Anstatt dem Tool Schritt-für-Schritt-Anweisungen zu geben (eine imperative Methode), geben Sie ihm einen Blueprint dazu, wie das Endergebnis aussehen soll (eine deklarative Methode). Die einzige Aufgabe des Orchestrators besteht darin, sicherzustellen, dass der aktuelle Zustand Ihrer Infrastruktur immer perfekt dem gewünschten Blueprint entspricht.
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.
Was ist eine Kubernetes-Bereitstellung?
Warum Red Hat für die Container-Orchestrierung?
Red Hat ist ein führender und aktiver Entwickler von Open Source-Container-Technologien und entwickelt wichtige Tools zum Sichern, Vereinfachen und automatischen Aktualisieren Ihrer Container-Infrastruktur.
Mit Red Hat® OpenShift® können Ihre Entwicklungsteams neue containerisierte Apps erstellen, hosten und in der Cloud mit der erforderlichen Skalierbarkeit, Kontrolle und Orchestrierung bereitstellen. So können Sie gute Ideen schnell und einfach in neue Geschäftsmöglichkeiten verwandeln. Wenn Sie Ihre Kubernetes-Workloads in einem gemanagten Cloud Service bereitstellen oder dorthin verschieben möchten, ist OpenShift auch als cloudnativer Service auf Amazon Web Services (AWS), Microsoft Azure, Google Cloud, IBM Cloud und bei anderen Anbietern verfügbar.
Basierend auf den Grundlagen von OpenShift können Sie Red Hat Advanced Cluster Management und Red Hat Ansible® Automation Platform zusammen verwenden, um mehrere Kubernetes-Cluster in verschiedenen Regionen und Umgebungen, einschließlich der Public Cloud, On-Premise und am Edge, effizient bereitzustellen und zu verwalten.