Azure Container Instances und Containerorchestratoren
Aufgrund ihrer kleinen Größe und Anwendungsorientierung sind Container gut für agile Delivery-Umgebungen und auf Microservice basierende Architekturen geeignet. Die Automatisierung und Verwaltung einer großen Anzahl von Containern und deren Interaktion wird als Orchestrierung bezeichnet. Beliebte Containerorchestratoren sind Kubernetes, DC/OS und Docker Swarm.
Azure Container Instances bietet einige grundlegende Planungsfunktionen für Orchestrierungsplattformen. Azure Container Instances umfasst zwar nicht die höherwertigen Dienste, die diese Plattformen bieten, kann jedoch ergänzend genutzt werden. In diesem Artikel werden die Funktionen von Azure Container Instances beschrieben und wie vollständige Containerorchestratoren damit interagieren können.
Herkömmliche Orchestrierung
Die Standarddefinition der Orchestrierung umfasst die folgenden Aufgaben:
- Zeitplanung: Findet für ein Containerimage und eine Ressourcenanforderung einen passenden Computer, auf dem der Container ausgeführt werden kann.
- Affinität/Anti-Affinität: Gibt an, dass mehrere Container in der Nähe voneinander (für Leistung) oder ausreichend weit voneinander (für Verfügbarkeit) ausgeführt werden sollen.
- Systemüberwachung: Bemerkt Containerfehler und plant diese automatisch neu.
- Failover: Verfolgt nach, was auf jedem Computer ausgeführt wird, und plant Container von Computern mit Fehlern auf intakte Knoten um.
- Skalierung: Fügt Containerinstanzen nach Bedarf manuell oder automatisch hinzu oder entfernt sie.
- Netzwerk: Bietet ein Überlagerungsnetzwerk für die Koordinierung der Kommunikation von Containern auf mehreren Hostcomputern.
- Dienstermittlung: Ermöglicht, dass sich Container automatisch finden, auch wenn sie den Hostcomputer wechseln oder die IP-Adresse ändern.
- Koordinierte Anwendungsupgrades: Verwaltet Containerupgrades zur Vermeidung von Ausfallzeiten der Anwendung und ermöglicht Rollbacks, falls etwas schief geht.
Orchestrierung mit Azure Container Instances: Ein mehrstufiger Ansatz
Azure Container Instances ermöglicht einen mehrstufigen Ansatz für die Orchestrierung, bietet alle Planungs- und Verwaltungsfunktionen für das Ausführen eines einzelnen Containers, und lässt außerdem zu, dass Orchestrierungsplattformen Aufgaben mit mehreren Containern verwalten.
Da die zugrundeliegende Infrastruktur für Container Instances von Azure verwaltet wird, muss sich eine Orchestrierungsplattform nicht darum kümmern, einen geeigneten Hostcomputer zu finden, auf dem ein einzelner Container ausgeführt werden kann. Die Flexibilität der Cloud stellt sicher, dass immer einer verfügbar ist. Stattdessen kann sich der Orchestrator auf die Aufgaben konzentrieren, die die Entwicklung von Architekturen mit mehreren Containern vereinfachen, darunter das Skalieren und Koordinieren von Upgrades.
Szenarien
Die Orchestratorintegration in Azure Container Instances ist zwar noch im Entstehen begriffen, wir gehen jedoch davon aus, dass einige andere Umgebungen entstehen werden:
Ausschließliche Orchestrierung von Container Instances
Aufgrund des schnellen Starts und der sekundengenauen Abrechnung bietet eine ausschließlich auf Azure Container Instances basierende Umgebung die schnellste Möglichkeit, um einzusteigen und mit sehr variablen Workloads umzugehen.
Kombination aus Container Instances und Containern in Virtual Machines
Für stabile Workloads mit langer Ausführungszeit ist es normalerweise günstiger, Container in einem Cluster dedizierter virtueller Computer zu orchestrieren als dieselben Container mit Azure Container Instances auszuführen. Allerdings bietet Container Instances eine tolle Lösung für die schnelle Erweiterung oder Verringerung Ihrer Gesamtkapazität, um auf unerwartete oder vorübergehende Spitzen bei der Auslastung zu reagieren.
Anstatt die Anzahl von VMs in Ihrem Cluster aufzuskalieren und dann zusätzliche Container auf diesen Computern bereitzustellen, kann der Orchestrator die zusätzlichen Container in Azure Container Instances planen und wieder löschen, wenn sie nicht mehr benötigt werden.
Beispielimplementierung: virtuelle Knoten in Azure Container Instances
Um Anwendungsworkloads in einem Azure Kubernetes Service-Cluster (AKS) schnell zu skalieren, können Sie virtuelle Knoten verwenden, die dynamisch in Azure Container Instances erstellt wurden. Virtuelle Knoten werden als Knoten mit unbegrenzter Kapazität auf Steuerungsebene Ihres AKS-Clusters registriert. Wenn Sie Pods auf einem virtuellen Knoten in Ihrem AKS-Cluster bereitstellen, werden sie in ACI als Containergruppen ausgeführt.
Aktuell werden Linux-Containerinstanzen von virtuellen Knoten unterstützt. Weitere Informationen finden Sie unter Virtuelle Knoten in Azure Container Instances.
Nächste Schritte
Erstellen Sie Ihren ersten Container mit Azure Container Instances mithilfe der Schnellstartanleitung.