Erkunden von Azure Container Instances
Azure Container Instances (ACI) ist die ideale Lösung für jedes Szenario, das für die Verwendung isolierter Container geeignet ist. Hierzu zählen unter anderem einfache Anwendungen, Aufgabenautomatisierung und Erstellungsaufträge. Der Einsatz bietet folgende Vorteile:
- Schneller Start: ACI kann Container in Azure in wenigen Sekunden starten, ohne dass ein virtueller Computer (Virtual Machine, VM) bereitgestellt und verwaltet werden muss.
- Containerzugriff: ACI ermöglicht es, Ihre Containergruppen mit einer IP-Adresse und einem vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) direkt im Internet verfügbar zu machen.
- Sicherheit auf Hypervisor-Ebene: Isolieren Sie Ihre Anwendung so umfassend wie auf einem virtuellen Computer.
- Kundendaten: Der ACI-Dienst speichert das Minimum an erforderlichen Kundendaten, um sicherzustellen, dass Ihre Containergruppen wie erwartet ausgeführt werden.
- Benutzerdefinierte Größen: In ACI legen Sie die Anzahl der CPU-Kerne und der Arbeitsspeichergröße genau fest, wodurch eine optimale Auslastung erzielt wird.
- Persistenter Speicher: Binden Sie Azure Files-Freigaben direkt in einen Container ein, um den Zustand abzurufen und zu speichern.
- Linux und Windows: Erstellen Sie Zeitpläne für Windows- und Linux-Container über die gleiche API.
Für Szenarien, die eine umfassende Containerorchestrierung erfordern (etwa für die containerübergreifende Dienstermittlung, automatische Skalierung und koordinierte Anwendungsupgrades), empfehlen wir Azure Kubernetes Service (AKS).
Containergruppen
Die oberste Ressource in Azure Container Instances ist die Containergruppe. Eine Containergruppe ist eine Sammlung mit Containern, die auf demselben Hostcomputer geplant werden. Für die Container einer Containergruppe werden der Lebenszyklus, die Ressourcen, das lokale Netzwerk und die Speichervolumes gemeinsam genutzt. Dieses Konzept ähnelt einem Pod in Kubernetes.
Das folgende Diagramm zeigt ein Beispiel für eine Containergruppe, die mehrere Container enthält:
Für diese Beispielcontainergruppe gilt Folgendes:
- Sie wird auf einem einzelnen Hostcomputer geplant.
- Ihr ist eine DNS-Namensbezeichnung zugewiesen.
- Sie macht eine einzelne öffentliche IP-Adresse mit einem Port verfügbar.
- Sie besteht aus zwei Containern. Ein Container lauscht über Port 80 und der andere über Port 5000.
- Sie enthält zwei Azure-Dateifreigaben als Volumebereitstellungen, und jeder Container stellt eine der Freigaben lokal bereit.
Hinweis
Gruppen mit mehreren Containern unterstützen aktuell nur Linux-Container. Für Windows-Container unterstützt Azure Container Instances nur die Bereitstellung einer einzelnen Instanz.
Bereitstellung
Es gibt zwei gängige Möglichkeiten zum Bereitstellen einer Gruppe mit mehreren Containern: Verwenden einer Resource Manager-Vorlage oder einer YAML-Datei. Verwenden Sie eine Resource Manager-Vorlage, wenn Sie bei der Bereitstellung von Containerinstanzen zusätzliche Azure-Dienstressourcen (z. B. eine Azure Files-Freigabe) bereitstellen müssen. Das YAML-Format ist präziser, daher wird eine YAML-Datei empfohlen, wenn Ihre Bereitstellung nur Containerinstanzen enthält.
Ressourcenzuteilung
Azure Container Instances weist einer Containergruppe Ressourcen wie CPUs, Arbeitsspeicher und optional GPUs (Vorschau) zu, indem die Ressourcenanforderungen der Instanzen in der Gruppe hinzugefügt werden. Wenn Sie anhand von CPU-Ressourcen als Beispiel eine Containergruppe mit zwei Instanzen erstellen, die jeweils eine CPU anfordern, werden der Containergruppe zwei CPUs zugeordnet.
Netzwerk
Containergruppen nutzen eine IP-Adresse und einen Portnamespace dieser IP-Adresse gemeinsam. Sie müssen den Port unter der IP-Adresse und für den Container verfügbar machen, um es externen Clients zu ermöglichen, einen Container in der Gruppe zu erreichen. Da Container in der Gruppe einen Portnamespace gemeinsam nutzen, wird die Portzuordnung nicht unterstützt. Container in einer Gruppe können einander per localhost auf den Ports erreichen, die sie verfügbar gemacht haben. Dies gilt auch, wenn diese Ports für die IP-Adresse der Gruppe nicht extern verfügbar gemacht werden.
Storage
Sie können externe Volumes für die Bereitstellung in einer Containergruppe angeben. Sie können diese Volumes bestimmten Pfaden in den einzelnen Containern einer Gruppe zuordnen. Folgende Volumes werden unterstützt:
- Azure-Dateifreigabe
- `Secret`
- Leeres Verzeichnis
- Geklontes Git-Repository
Häufige Szenarios
Gruppen mit mehreren Containern sind nützlich, wenn Sie eine einzelne funktionale Aufgabe in mehrere Containerimages aufteilen möchten. Diese Images könnten von verschiedenen Teams bereitgestellt werden und separate Ressourcenanforderungen aufweisen.
Beispiel für Verwendung:
- Ein Container, über den eine Webanwendung bereitgestellt wird, und ein Container, der den aktuellen Inhalt aus der Quellcodeverwaltung abruft.
- Ein Anwendungscontainer und ein Protokollierungscontainer. Mit dem Protokollierungscontainer werden die Protokolle und Metriken gesammelt, die von der Hauptanwendung ausgegeben werden, und in den Langzeitspeicher geschrieben.
- Ein Anwendungscontainer und ein Überwachungscontainer. Der Überwachungscontainer sendet regelmäßig eine Anforderung an die Anwendung, um sicherzustellen, dass sie ausgeführt wird und richtig reagiert. Andernfalls wird eine Warnung ausgelöst.
- Ein Front-End-Container und ein Back-End-Container. Das Front-End kann als Webanwendung dienen und das Back-End einen Dienst zum Abrufen von Daten ausführen.