Lassen Sie uns über einige der beliebten Container-Orchestrierungs-Tools sprechen, die auf dem Markt erhältlich sind.
Was ist eine Container-Orchestrierung?
Containerplattformen mögen Docker sind heutzutage sehr beliebt, um Anwendungen zu verpacken, die auf einer Microservices-Architektur basieren. Container können hoch skalierbar gemacht werden, die bei Bedarf erstellt werden können. Dies ist zwar gut für ein paar Container, aber stellen Sie sich vor, Sie haben Hunderte von ihnen.
Es wird äußerst schwierig, den Container-Lebenszyklus und seine Verwaltung zu verwalten, wenn die Anzahl mit der Nachfrage dynamisch steigt.
Die Container-Orchestrierung löst das Problem, indem sie die Planung, Bereitstellung, Skalierbarkeit, den Lastausgleich, die Verfügbarkeit und die Vernetzung von Containern automatisiert. Container Orchestration ist die Automatisierung und Verwaltung des Lebenszyklus von Containern und Diensten.
Es ist ein Prozess zum Verwalten und Organisieren mehrerer Container und der Microservices-Architektur in großem Maßstab.
Glücklicherweise gibt es auf dem Markt viele Container-Orchestrierungs-Tools.
Lass sie uns erkunden!
Kubernetes
Sie haben es erraten, nicht wahr?
Kubernetes ist eine Open-Source-Plattform, die ursprünglich von Google entwickelt und jetzt von der Cloud Native Computing Foundation verwaltet wird. Kubernetes unterstützt sowohl die deklarative Konfiguration als auch die Automatisierung. Es kann dabei helfen, die Bereitstellung, Skalierung und Verwaltung von containerisierten Workloads und Diensten zu automatisieren.

Die Kubernetes-API hilft beim Aufbau der Kommunikation zwischen Benutzern, Clusterkomponenten und externen Komponenten von Drittanbietern. Kubernetes-Steuerungsebene und -Knoten werden auf einer Gruppe von Knoten ausgeführt, die zusammen den Cluster bilden. Anwendungs-Workload besteht aus einem oder mehreren Pods, die auf Worker-Knoten ausgeführt werden. Die Steuerungsebene verwaltet Pods und Worker-Knoten.
Unternehmen wie Babylon, Booking.com und AppDirect nutzen diese in großem Umfang Kubernetes.
Eigenschaften
- Serviceerkennung und Lastausgleich
- Speicher-Orchestrierung
- Automatisierte Rollouts und Rollbacks
- Horizontale Skalierung
- Geheim- und Konfigurationsmanagement
- Selbstheilung
- Stapelausführung
- IPv4 / IPv6-Dual-Stack
- Automatisches Verpacken des Behälters
Willst du Kubernetes lernen? Schauen Sie sich diese an Lernmittel.
OpenShift
Redhat bietet OpenShift Container Platform as a Service (PaaS). Es hilft bei der Automatisierung von Anwendungen auf sicheren und skalierbaren Ressourcen in hybriden Cloud-Umgebungen. Es bietet Plattformen für Unternehmen zum Erstellen, Bereitstellen und Verwalten von Containeranwendungen.

Es basiert auf der Redhat Enterprise Linux- und Kubernetes-Engine. Openshift verfügt über verschiedene Funktionen zum Verwalten von Clustern über UI und CLI. Redhat bietet Openshift in zwei weiteren Varianten an:
- OpenShift Online - als Software as a Service (SaaS) angeboten
- OpenShift gewidmet - als Managed Services angeboten
Openshift Origin (Origin Community Distribution) ist ein Open-Source-Upstream-Community-Projekt, das in OpenShift Container Platform, Openshift Online und OpenShift Dedicated verwendet wird.
Nomad
Nomade ist ein einfacher, flexibler und benutzerfreundlicher Workload Orchestrator zum Bereitstellen und Verwalten von Containern und nicht containerisierten Anwendungen in großen Mengen vor Ort und in der Cloud. Nomad läuft als einzelne Binärdatei mit geringem Ressourcenbedarf (35 MB) und wird unter macOS, Windows und Linux unterstützt.
Entwickler verwenden deklarative Infrastruktur als Code (IaC) zum Bereitstellen ihrer Anwendungen und zum Definieren, wie eine Anwendung bereitgestellt werden soll. Nomad stellt Anwendungen automatisch nach Fehlern wieder her.

Nomad Orchestrate-Anwendungen aller Art (nicht nur Container). Es bietet erstklassige Unterstützung für Docker, Windows, Java, VMs und mehr.
Eigenschaften
- Einfach und zuverlässig
- Modernisieren Sie ältere Anwendungen ohne Umschreiben
- Einfache Föderation im Maßstab
- Bewährte Skalierbarkeit
- Multi-Cloud mit Leichtigkeit
- Native Integrationen mit Terraform, Consul und Vault
Docker Swarm
Hafenschwarm verwendet ein deklaratives Modell. Sie können den gewünschten Status des Dienstes definieren, und Docker behält diesen Status bei. Docker Enterprise Edition hat Kubernetes in Swarm integriert. Docker bietet jetzt Flexibilität bei der Auswahl der Orchestrierungs-Engine. Die Docker-Engine-CLI wird verwendet, um einen Schwarm von Docker-Engines zu erstellen, in denen Anwendungsdienste bereitgestellt werden können.

Docker-Befehle werden verwendet, um mit dem Cluster zu interagieren. Maschinen, die dem Cluster beitreten, werden als Knoten bezeichnet, und der Swarm-Manager übernimmt die Aktivitäten des Clusters.
Hafenschwarm besteht aus zwei Hauptkomponenten:
- Manager - Manager-Knoten weisen Arbeiterknoten im Schwarm Aufgaben zu. Ein Anführer wird basierend auf einem Raft-Konsensalgorithmus gewählt. Der Anführer kümmert sich um alle Schwarmmanagement- und Aufgaben-Orchestrierungsentscheidungen für den Schwarm.
- Worker Node - Worker Node empfängt Aufgaben vom Manager-Knoten und führt sie aus.
Eigenschaften
- In Docker Engine integrierte Clusterverwaltung
- Dezentrales Design
- Deklaratives Servicemodell
- Skalierung
- Gewünschte Zustandsabstimmung
- Multi-Host-Netzwerk
- Serviceerkennung
- Lastverteilung
- Standardmäßig sicher
- Rollende Updates
Docker Compose
Docker komponieren dient zum Definieren und Ausführen von Multi-Container-Anwendungen, die zusammenarbeiten. Docker-compose beschreibt Gruppen miteinander verbundener Dienste, die Softwareabhängigkeiten gemeinsam nutzen und zusammen orchestriert und skaliert werden.
Sie können eine YAML-Datei verwenden (Docker-Datei), um die Dienste Ihrer Anwendung zu konfigurieren. Anschließend erstellen und starten Sie mit einem Docker-Compose-Up-Befehl alle Dienste in Ihrer Konfiguration.
Eine docker-compose.yml sieht folgendermaßen aus:
version: '3'
volumes:
app_data:
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
ports:
- 9200:9200
- 9300:9300
volumes:
- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
- ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data
kibana:
depends_on:
- elasticsearch
image: docker.elastic.co/kibana/kibana:6.8.0
ports:
- 5601:5601
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
app:
depends_on:
- elasticsearch
image: asadali08527/app:latest
ports:
- 8080:8080
volumes:
- app_data:/var/lib/app/
Sie können verwenden Docker komponieren um den App-Code in mehrere unabhängig voneinander laufende Dienste zu integrieren, die über ein internes Netzwerk kommunizieren. Das Tool bietet CLI zur Verwaltung des gesamten Lebenszyklus Ihrer Anwendungen. Docker Compose konzentriert sich traditionell auf die Entwicklung und das Testen workflows, aber jetzt konzentrieren sie sich auf mehr produktionsorientierte Funktionen.
Die Docker Engine kann eine eigenständige Instanz sein, die mit Docker Machine oder einem gesamten Docker Swarm-Cluster bereitgestellt wird.
Eigenschaften
- Mehrere isolierte Umgebungen auf einem einzigen Host
- Behalten Sie Volumendaten bei, wenn Container erstellt werden
- Erstellen Sie nur geänderte Container neu
- Variablen und Verschieben einer Komposition zwischen Umgebungen
MiniKube
Minikube ermöglicht es Benutzern, Kubernetes lokal auszuführen. Mit Minikube können Sie Anwendungen lokal in einem Kubernetes-Cluster mit einem Knoten auf Ihrem PC testen. Minikube hat integrierte Unterstützung für die Kubernetes-Dashboard.

Minikube führt die neueste stabile Version von Kubernetes aus und unterstützt die folgenden Funktionen.
- Lastverteilung
- Multi-Cluster
- Dauerhafte Volumes
- KnotenPorts
- ConfigMaps und Geheimnisse
- Container-Laufzeit: Docker, CRI-O und Containered
- Aktivieren von CNI (Container Network Interface)
Marathon
Marathon ist für Apache Mesos, das sowohl Apps als auch Frameworks orchestrieren kann.
Apache Mesos ist ein Open-Source-Cluster-Manager. Mesos ist ein Projekt von Apache, mit dem sowohl containerisierte als auch nicht containerisierte Workloads ausgeführt werden können. Die Hauptkomponenten in einem Mesos-Cluster sind Mesos-Agentenknoten, Mesos Master, ZooKeeper, Frameworks - Frameworks koordinieren mit dem Master, um Aufgaben auf Agentenknoten zu planen. Benutzer interagieren mit dem Marathon-Framework, um Jobs zu planen.

Der Marathon-Planer verwendet ZooKeeper, um den aktuellen Master zum Senden von Aufgaben zu finden. Der Marathon-Scheduler und der Mesos-Master haben einen sekundären Master, um eine hohe Verfügbarkeit sicherzustellen. Kunden interagieren mit Marathon über die REST-API.
Eigenschaften
- Hochverfügbarkeit
- Stateful Apps
- Schöne und leistungsstarke Benutzeroberfläche
- Einschränkungen
- Service Discovery & Load Balancing
- Gesundheitschecks
- Event-Abonnement
- Metrik
- REST-APIs
Cloudify
Bewölken ist ein Open-Source-Cloud-Orchestrierungs-Tool für die Automatisierung der Bereitstellung und das Lebenszyklusmanagement von Containern und Microservices. Es bietet Funktionen wie Cluster bei Bedarf, automatische Korrektur und Skalierung auf Infrastrukturebene. Cloudify kann die Containerinfrastruktur verwalten und die Dienste koordinieren, die auf Containerplattformen ausgeführt werden.
Es kann problemlos in Docker und Docker-basierte Containermanager integriert werden, einschließlich der folgenden.
- Docker
- Hafenschwarm
- Docker komponieren
- Kubernetes
- Apache Mesos

Cloudify kann dabei helfen, Containercluster zu erstellen, zu heilen, zu skalieren und abzubauen. Die Container-Orchestrierung ist der Schlüssel zur Bereitstellung einer skalierbaren und hochverfügbaren Infrastruktur, auf der Container-Manager ausgeführt werden können. Cloudify bietet die Möglichkeit, heterogene Dienste plattformübergreifend zu orchestrieren. Sie können Anwendungen mithilfe der CLI und des Cloudify Managers bereitstellen.
Rancher
Rancher ist eine Open-Source-Plattform, die die als Vieh bezeichnete Container-Orchestrierung verwendet. Sie können damit Orchestrierungsdienste wie Kubernetes, Swarm und Mesos nutzen. Rancher bietet die Software, die zum Verwalten von Containern erforderlich ist, damit Unternehmen Container-Service-Plattformen nicht von Grund auf mit einer Reihe von Open Source-Technologien erstellen müssen.
Rancher 2.x ermöglicht die Verwaltung von Kubernetes-Clustern, die auf den vom Kunden angegebenen Anbietern ausgeführt werden.

Der Einstieg in Rancher erfolgt in zwei Schritten.
Bereiten Sie einen Linux-Host vor
Bereiten Sie einen Linux-Host mit 64-Bit-Ubuntu 16.04 oder 18.04 (oder einer anderen unterstützten Linux-Distribution und mindestens 4 GB Speicher) vor. Installieren Sie eine unterstützte Version von Docker auf dem Host.
Starten Sie den Server
Führen Sie zum Installieren und Ausführen von Rancher den folgenden Docker-Befehl auf Ihrem Host aus:
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Die Rancher-Benutzeroberfläche ermöglicht die Verwaltung von Tausenden von Kubernetes-Clustern und -Knoten.
Containership
Containership ermöglicht die Bereitstellung und Verwaltung einer Multi-Cloud-Kubernetes-Infrastruktur. Es ist flexibel und kann mit einem einzigen Tool in öffentlichen, privaten Cloud- und On-Premise-Umgebungen betrieben werden. Es ermöglicht die Bereitstellung, Verwaltung und Überwachung Ihrer Kubernetes-Cluster über alle großen Cloud-Anbieter hinweg.

Containership wird mit Cloud-nativen Tools wie Terraform für die Bereitstellung erstellt. Prometheus für die Überwachung und Calico für die Vernetzung und Richtlinienverwaltung. Es ist auf Vanille Kubernetes gebaut. Die Containership-Plattform bietet ein intuitives Dashboard sowie eine leistungsstarke REST-API für komplexe Automatisierung.
Eigenschaften
- Multicloud-Dashboard
- Prüfprotokolle
- GPU-Instanzunterstützung
- Unterbrechungsfreie Upgrades
- Planbare Meister
- Integrierte Metriken
- Echtzeit-Protokollierung
- Bereitstellungen ohne Ausfallzeiten
- Persistente Speicherunterstützung
- Unterstützung für private Registrierung
- Automatische Workload-Skalierung
- SSH-Schlüsselverwaltung
AZK
AZK ist ein Open-Source-Orchestrierungswerkzeug für Entwicklungsumgebungen über eine Manifestdatei (Azkfile.js), mit der Entwickler häufig verwendete Tools für die Entwicklung von Webanwendungen mit verschiedenen Open-Source-Technologien installieren, konfigurieren und ausführen können.

AZK verwendet Container anstelle von virtuellen Maschinen. Container sind wie virtuelle Maschinen mit besserer Leistung und geringerem Verbrauch physischer Ressourcen.
Azkfile.js-Dateien können wiederverwendet werden, um neue Komponenten hinzuzufügen oder neue von Grund auf neu zu erstellen. Es kann gemeinsam genutzt werden, was eine vollständige Parität zwischen den Entwicklungsumgebungen auf den Maschinen verschiedener Programmierer gewährleistet und die Wahrscheinlichkeit von Fehlern während der Bereitstellung verringert.
GKE
GKE bietet eine vollständig verwaltete Lösung für die Orchestrierung von Containeranwendungen auf der Google Cloud Platform. GKE-Cluster werden von den Kubernetes betrieben. Sie können mit Clustern mithilfe der Kubernetes-CLI interagieren. Mit Kubernetes-Befehlen können Anwendungen bereitgestellt und verwaltet, Verwaltungsaufgaben ausgeführt, Richtlinien festgelegt und der Zustand der bereitgestellten Workloads überwacht werden.

Erweiterte Verwaltungsfunktionen von Google Cloud sind auch mit GKE-Clustern verfügbar, z. B. Lastausgleich von Google Cloud, Knotenpools, automatische Skalierung von Knoten, automatische Upgrades, automatische Reparatur von Knoten, Protokollierung und Überwachung mit der Operations Suite von Google Cloud.
Google Cloud bietet CI / CD-Tools, mit denen Sie Anwendungscontainer erstellen und bereitstellen können. Sie können Cloud Build verwenden, um Container-Images (wie Docker) aus einer Vielzahl von Quellcode-Repositorys zu erstellen, und Container Registry, um Ihre Container-Images zu speichern.
GKE ist eine unternehmensfähige Lösung mit vorgefertigten Bereitstellungsvorlagen.
Möchten Sie GKE lernen? Schau dir das an Anfängerkurs.
AKS
ACS ist ein vollständig verwalteter Kubernetes-Dienst, der von Azure angeboten wird und serverlose Kubernetes, Sicherheit und Governance bietet. AKS verwaltet Ihren Kubernetes-Cluster und ermöglicht die einfache Bereitstellung von Containeranwendungen. AKS konfiguriert automatisch alle Kubernetes-Master und -Knoten. Sie müssen nur die Agentenknoten verwalten und warten.

AKS ist kostenlos; Sie zahlen nur für Agentenknoten in Ihrem Cluster und nicht für Master. Sie können einen AKS-Cluster im Azure-Portal oder programmgesteuert erstellen. Azure unterstützt auch zusätzliche Funktionen wie erweiterte Netzwerke, Azure Active Directory-Integration und Überwachung mit Azure Monitor.
AKS unterstützt auch Windows Server-Container. Die Leistung des Clusters und der bereitgestellten Anwendung kann über Azure Monitor überwacht werden. Protokolle werden in einem Azure Log Analytics-Arbeitsbereich gespeichert.
AKS wurde als Kubernetes-konform zertifiziert.
AWS EKS
AWS-EKS ist ein vollständig verwalteter Kubernetes-Dienst. Mit AWS können Sie Ihren EKS-Cluster mit AWS Fragrate ausführen Serverless Compute für Container. Mit Fragrance müssen keine Server mehr bereitgestellt und verwaltet werden, sodass pro Ressource und Anwendung bezahlt werden kann.

AWS ermöglicht die Verwendung zusätzlicher Funktionen mit EKS wie Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling Groups und Access Management (IAM), Monitor-, Skalierungs- und Lastausgleichsanwendungen. EKS lässt sich in AWS App Mesh integrieren und bietet native Erfahrung mit Kubernetes. EKS verwendet die neuesten Kubernetes und ist Kubernetes-konform zertifiziert.
Fazit
Letztendlich hoffe ich, dass die obige Liste ein faires Verständnis der verschiedenen Container-Orchestrierungs-Tools vermittelt hat, und jetzt, je nach Anwendungsfall, wird es einfacher sein, sich für das beste zu entscheiden.
Als nächstes finden Sie es heraus Kubernetes-Verwaltungssoftware.