Azure Container Service (ACS) ist eine optimierte Container-Hosting-Lösung für häufig verwendete Open-Source-Container-Orchestrierungstools. Unterstützte Container-Orchestrator-Tools sind Mesos-basiertes DC/OS, Kubernetes und Docker Swarm. Alternativ kann die eigenständige Docker-Engine verwendet werden. Azure Container Service stellt die API-Endpunkte für eine ausgewählte Orchestrierungs-Engine bereit, sodass Open-Source-Tools für verschiedene Anwendungsfälle, einschließlich Überwachung, kontinuierliche Integration und Befehlszeilentools, auf den Containerdienst zugreifen können.
Was ist ein ACS-Docker-Schwarm?
Ein Docker-Schwarm ist eine Sammlung/Cluster von virtuellen Maschinen (VMs), auf denen Docker Engine ausgeführt wird, und umfasst andere Ressourcen wie Load Balancer, VM-Skalierungsgruppen oder Verfügbarkeitsgruppen, Speicher und Netzwerk. Ein Docker Swarm auf Azure Container Service besteht aus Swarm Master- und Swarm Agent-Knoten (VMs). Ein Swarm Master kann direkt mit einem SSH-RSA-Schlüssel verbunden werden. Ein Schwarm-Agent kann nicht direkt mit einem SSH-RSA-Schlüssel verbunden werden.
Der Docker Swarm-Cluster von Azure Container Service ist kein Cluster im Docker Swarm-Modus. Der Docker Swarm-Modus muss auf einem ACS Swarm-Master initialisiert werden. Wenn ein Docker Swarm-Cluster auf einem Azure-Portal erstellt wird, werden alle erforderlichen Ressourcen (VMs, Scale Sets, Load Balancer) automatisch erstellt.
Dieser Artikel hat die folgenden Abschnitte:
- Einstellung der Umgebung
- Azure Cloud Shell starten
- Erstellen eines SSH-RSA-Schlüsselpaars
- Erstellen eines Azure Container Service Docker Swarm
- Erkunden der Docker Swarm-Cluster-Ressourcen
- Verbinden mit einem Schwarmmeister
- Schlussfolgerung
Einstellung der Umgebung
Ein Azure-Konto ist die einzige Voraussetzung. Ein Azure-Konto kann unter https://azure.microsoft.com/.
erstellt werdenAzure Cloud Shell starten
Azure bietet eine Clientschnittstelle zum Herstellen einer Verbindung mit dem Azure-Tool namens Cloud Shell. Cloud Shell ist eine browserbasierte Admin-Shell zum Herstellen einer Verbindung mit Azure. Cloud Shell unterstützt Client-Tools zur Auswahl, darunter PowerShell-Module, Azure-Tools, Container-Tools, Datenbank-Tools, Linux-Shell-Interpreter, Quellcodeverwaltung und Build-Tools. Cloud Shell unterstützt auch mehrere Programmiersprachen zur Auswahl, darunter .NET und Node.js. Um Cloud Shell zu starten, klicken Sie auf >_ Symbol, wie in Abbildung 1 gezeigt.
Abbildung 1: Cloud Shell starten
Erstellen eines SSH-RSA-Schlüsselpaars
Zum Erstellen einer auf Azure Container Service basierenden gehosteten Lösung ist ein SSH-RSA-Schlüssel erforderlich. Erstellen Sie mit dem folgenden Befehl einen SSH-RSA-Schlüssel aus Cloud Shell:
ssh-keygen -t rsa -b 2048
Eine Eingabeaufforderung zur Angabe der Datei, in der der Schlüssel gespeichert werden soll, wird angezeigt (siehe Abbildung 2). Klicken Sie auf die Eingabetaste, um die Standarddatei auszuwählen.
Abbildung 2: Generieren eines SSH-RSA-Schlüssels
Eine weitere Eingabeaufforderung zur Angabe der Passphrase wird angezeigt. Klicken Sie auf die Eingabetaste, um keine Passphrase zu verwenden. Unabhängig davon, ob eine Passphrase ausgewählt ist oder nicht, wird eine Eingabeaufforderung zur Bestätigung angezeigt, um die Passphrase erneut anzugeben. Klicken Sie erneut auf die Eingabetaste, wenn keine Passphrase verwendet wird. Ein öffentliches/privates Schlüsselpaar wird generiert und gespeichert. Die vollständige Ausgabe des Befehls ssh-keygen ist als nächstes aufgelistet:
[email protected]:~$ ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/home/deepak/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/deepak/.ssh/id_rsa. Your public key has been saved in /home/deepak/.ssh/id_rsa.pub. The key fingerprint is: SHA256:+YArpP5Eri/JENp0b3CKVbOz3qFPveivTHr1vyaHv/o [email protected] The key's randomart image is: +---[RSA 2048]----+ | | | o | | . o | |. . + +. . | |.+ +o=.oS | |o o=. +..+. | | o..+o.oooo. . | | .+o .o=o. .+ o | | o+o .+*oo .OEo | +----[SHA256]-----+
Die für den SSH-RSA-Schlüssel festgelegten Standardberechtigungen sind zu offen und können nicht mit ACS verwendet werden. Ändern Sie die Berechtigungen auf 400 (schreibgeschützt durch Eigentümer):
[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa
Wir werden den SSH-RSA-Schlüssel verwenden, wenn wir einen Docker-Schwarm erstellen. Öffnen Sie die öffentliche Schlüsseldatei in einem vi-Editor:
[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub
Wählen Sie alle aus und kopieren Sie den Inhalt der id_rsa.pub Datei und speichern Sie sie in einer Textdatei, um sie später zu verwenden.
Erstellen eines Azure Container Service Docker Swarm
Um einen auf Azure Container Service basierenden Docker Swarm zu erstellen, klicken Sie auf Neu im Azure-Portal, wie in Abbildung 3 gezeigt.
Abbildung 3: Azure-Portal>Neu
Im Neu werden mehrere Azure Marketplace-Anwendungen zur Auswahl angezeigt, wie in Abbildung 4 gezeigt.
Abbildung 4: Neuer Assistent
Wählen Sie den Azure Container Service aus, wie in Abbildung 5 gezeigt.
Abbildung 5: Auswählen von Azure Container Service
Der Assistent „Azure Container Service erstellen“ beginnt, wie in Abbildung 6 gezeigt, mit den Grundlagen Dialog zur Konfiguration der Grundeinstellungen angezeigt.
Abbildung 6: Erstellen Sie Azure Container Service>Grundlagen
Geben Sie einen Containerdienst Name an (hello-world-docker) und wählen Sie ein Abonnement aus . Wählen Sie für Ressourcengruppe die Option Vorhandene verwenden aus und wählen Sie eine Ressourcengruppe aus, wie in Abbildung 7 gezeigt. Wählen Sie alternativ Neu erstellen aus Option.
Abbildung 7: Erstellen Sie Azure Container Service>Grundlagen
Wählen Sie einen Standort aus und klicken Sie auf OK, wie in Abbildung 8 gezeigt.
Abbildung 8: Grundeinstellungen für einen Azure Container Service konfigurieren
Geben Sie in der Master-Konfiguration Master-Informationen ein, wie in Abbildung 9 gezeigt.
Abbildung 9: Master-Konfiguration
Wählen Sie Orchestrator aus als Schwarm , wie in Abbildung 10 gezeigt.
Abbildung 10: Auswählen von Orchestrator als Docker Swarm
Geben Sie ein DNS-Namenspräfix an („docker“ – ein beliebiger Name) und geben Sie einen Benutzernamen an , was ebenfalls ein willkürlicher Name ist. Geben Sie im Feld Öffentlicher SSH-Schlüssel den öffentlichen SSH-RSA-Schlüssel ein, der zuvor in einer Textdatei gespeichert wurde, wie im Abschnitt Erstellen eines SSH-RSA-Schlüsselpaars beschrieben . Wählen Sie Master-Zählung aus (1, 3 oder 5), wie in Abbildung 11 gezeigt. Eine ungerade Anzahl von Master-Knoten wird für Hochverfügbarkeitsanforderungen bereitgestellt.
Abbildung 11: Bereitstellen von Stamminformationen
Klicken Sie auf OK (siehe Abbildung 12).
Abbildung 12: Abschließen der Master-Konfiguration
In der Agent-Konfiguration , geben Sie die Agent-Anzahl an , wählen Sie die Größe der virtuellen Agent-Maschine aus , und klicken Sie auf OK, wie in Abbildung 13 gezeigt.
Abbildung 13: Agentenkonfiguration
In Zusammenfassung , wird die Swarm-Konfiguration validiert und die Meldung „Validierung bestanden“ sollte angezeigt werden, wie in Abbildung 14 gezeigt. Klicken Sie auf „OK“.
Abbildung 14: Schwarmzusammenfassung
Der Einsatz des Schwarms beginnt, wie in Abbildung 15 gezeigt.
Abbildung 15: Bereitstellen von Azure Container Service
Wenn die Bereitstellung abgeschlossen ist, wird die Meldung „Bereitstellung erfolgreich“ angezeigt (siehe Abbildung 16).
Abbildung 16: Bereitstellung erfolgreich
Die Cluster-Ressourcen von Docker Swarm erkunden
Die Ressourcen für den Schwarm werden angezeigt, wie in Abbildung 17 gezeigt. Klicken Sie auf Mehr anzeigen um die vollständige Liste der generierten Ressourcen anzuzeigen.
Abbildung 17: Ressourcen
Alle Swarm-Ressourcen werden angezeigt, wie in Abbildung 18 gezeigt. Der Typ der Swarm-Ressource wird in TYPE angegeben Spalte und umfasst virtuelle Maschinen, VM-Skalierungsgruppen, öffentliche IP-Adressen, Verfügbarkeitsgruppen, Load Balancer und Netzwerkschnittstellen.
Abbildung 18: Schwarmressourcen
Verbinden mit einem Schwarmmeister
Um eine Verbindung zu einem Swarm-Master herzustellen, klicken Sie auf eine virtuelle Swarm-Master-Maschine, wie in Abbildung 18 gezeigt. Kopieren Sie die öffentliche IP-Adresse von der Detailseite des Swarm-Masters (siehe Abbildung 19).
Abbildung 19: Öffentliche IP-Adresse des Swarm Masters
Klicken Sie hier, um die öffentliche IP-Adresse des Swarm-Masters zu kopieren, wie in Abbildung 20 gezeigt.
Abbildung 20: Kopieren der öffentlichen IP-Adresse des Swarm-Masters
Stellen Sie mithilfe des privaten SSH-Schlüssels, des SSH-Ports (2200), des Benutzernamens und der öffentlichen IP-Adresse eine Verbindung mit der Swarm-Master-VM her:
[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200 [email protected]
Geben Sie an der Eingabeaufforderung „Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein)?“ „Ja“ ein und es wird eine Verbindung zum Swarm-Master hergestellt, wie in Abbildung 21 gezeigt. Auf dem Swarm-Master wird angezeigt, dass er Ubuntu ausführt Betriebssystem.
Abbildung 21: Verbinden mit Swarm Master
Eine Swarm-Master-VM führt standardmäßig die Docker-Engine aus.
Schlussfolgerung
In diesem Artikel haben wir einen Docker Swarm-Cluster auf Azure Container Service (ACS) erstellt. Ein ACS Docker Swarm ist kein Cluster im Docker Swarm-Modus, der wie auf jedem Docker-Host mit Version 1.12 oder höher initialisiert werden muss. Die anderen (außer Docker Swarm) Optionen bestehen darin, ein Mesos-basiertes DC/OS oder einen Kubernetes-Cluster zu erstellen. Ein ACS Docker Swarm ist ein Cluster virtueller Maschinen, auf denen Docker ausgeführt wird. Azure Container Service stellt alle Ressourcen bereit, einschließlich virtueller Computer, öffentlicher IP-Adressen, VM-Skalierungsgruppen, Load Balancer und Netzwerkschnittstellen. Wir haben uns mit einem Swarm-Master mit einem privaten SSH-RSA-Schlüssel, einem Benutzernamen und einer öffentlichen IP-Adresse des Swarm-Masters verbunden.