Was ist Container-Orchestrierung?
Die 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 ihre Runtime-Umgebung in einer in sich geschlossenen Einheit zusammenfassen, 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.
Vorteile der Container-Orchestrierung
Die Container-Orchestrierung bringt 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 den Aufbau von CI/CD-Pipelines (Continuous Integration and 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.
Red Hat Ressourcen
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 Google entwickelt und gestaltet wurde. Google spendete das Kubernetes-Projekt 2015 der neu gegründeten Cloud Native Computing Foundation.
Wie Kubernetes die 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 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, Hostnamen und andere Ressourcen.
Wie funktionieren Container-Orchestrierungstools?
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-Containertechnologien 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 Skalierbarkeit, Kontrolle und Orchestrierung bereitstellen, die notwendig sind, um aus einer guten Idee schnell und einfach ein neues Geschäft zu machen. Wenn Sie Ihre Kubernetes-Workloads in einem gemanagten Cloud Service bereitstellen oder dorthin verschieben möchten – OpenShift ist auch als cloudnativer Service in 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.
Der offizielle Red Hat Blog
Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.