Azure Container Service (ACS) er en optimeret container-hosting-løsning til almindeligt anvendte open source-container-orkestratorværktøjer. Understøttede containerorkestreringsværktøjer er Mesos-baserede DC/OS, Kubernetes og Docker Swarm. Eller den selvstændige Docker-motor kan bruges. Azure Container Service afslører API-endepunkterne for en udvalgt orkestreringsmotor, så open source-værktøjer til forskellige use-cases, herunder overvågning, kontinuerlig integration og kommandolinjeværktøjer, kan få adgang til containertjenesten.
Hvad er en ACS Docker Swarm?
En Docker-sværm er en samling/klynge af virtuelle maskiner (VM'er), der kører Docker Engine og inkluderer andre ressourcer såsom Load Balancers, VM Scale Sets eller Availability Sets, Storage og Network. En Docker Swarm on Azure Container Service består af Swarm Master og Swarm Agent noder (VM'er). En Swarm Master kan forbindes direkte med en SSH RSA-nøgle. En Swarm Agent kan ikke forbindes direkte ved at bruge en SSH RSA-nøgle.
Azure Container Service Docker Swarm Cluster er ikke en Docker Swarm-tilstandsklynge. Docker Swarm-tilstand skal initialiseres på en ACS Swarm-master. Når en Docker Swarm Cluster oprettes på en Azure Portal, oprettes alle de nødvendige ressourcer (VM'er, skaleringssæt, belastningsbalancere) automatisk.
Denne artikel har følgende sektioner:
- Indstilling af miljøet
- Start af Azure Cloud Shell
- Oprettelse af et SSH RSA-nøglepar
- Oprettelse af en Azure Container Service Docker Swarm
- Udforskning af Docker Swarm Cluster-ressourcerne
- Opretter forbindelse til en Swarm Master
- Konklusion
Indstilling af miljøet
En Azure-konto er den eneste forudsætning. En Azure-konto kan oprettes på https://azure.microsoft.com/.
Start af Azure Cloud Shell
Azure giver en klientgrænseflade til at forbinde med Azure-værktøjet kaldet Cloud Shell. Cloud Shell er en browserbaseret admin-shell til at oprette forbindelse til Azure. Cloud Shell understøtter klientværktøjer at vælge imellem, herunder PowerShell-moduler, Azure-værktøjer, containerværktøjer, databaseværktøjer, Linux-skalfortolkere, kildekontrol og byggeværktøjer. Cloud Shell understøtter også flere programmeringssprog at vælge imellem, herunder .NET og Node.js. For at starte Cloud Shell skal du klikke på >__ ikon, som vist i figur 1.
Figur 1: Starter Cloud Shell
Oprettelse af et SSH RSA-nøglepar
For at oprette en Azure Container Service-baseret hostet løsning kræves en SSH RSA-nøgle. Opret en SSH RSA-nøgle fra Cloud Shell med følgende kommando:
ssh-keygen -t rsa -b 2048
En kommandoprompt for at angive den fil, som nøglen skal gemmes i, vises som vist i figur 2. Klik på Enter for at vælge standardfilen.
Figur 2: Generering af en SSH RSA-nøgle
En anden kommandoprompt for at angive adgangssætningen bliver vist. Klik på Enter for ikke at bruge en adgangssætning. Uanset om en adgangssætning er valgt eller ej, vises en bekræftelseskommandoprompt for at specificere adgangssætningen igen. Klik på Enter igen, hvis der ikke bruges en adgangssætning. Et offentligt/privat nøglepar bliver genereret og gemt. Det komplette output fra ssh-keygen-kommandoen er vist næste:
[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]-----+
Standardtilladelserne indstillet på SSH RSA-nøglen er for åbne og kan ikke bruges med ACS. Rediger tilladelserne til 400 (skrivebeskyttet af ejeren):
[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa
Vi skal bruge SSH RSA-nøglen, når vi opretter en Docker Swarm. Åbn den offentlige nøglefil i en vi-editor:
[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub
Og vælg alle og kopier indholdet af id_rsa.pub fil og gem i en tekstfil til brug senere.
Oprettelse af en Azure Container Service Docker Swarm
For at oprette en Azure Container Service-baseret Docker Swarm skal du klikke på Ny i Azure-portalen, som vist i figur 3.
Figur 3: Azure portal>Ny
I Ny guiden, vises flere Azure Marketplace-applikationer at vælge imellem, som vist i figur 4.
Figur 4: Ny guide
Vælg Azure Container Service, som vist i figur 5.
Figur 5: Valg af Azure Container Service
Guiden Create Azure Container Service starter, som vist i figur 6, med Grundlæggende dialogboksen for konfiguration af grundlæggende indstillinger vises.
Figur 6: Opret Azure Container Service>Grundlæggende
Angiv en containertjeneste Navn (hello-world-docker), og vælg et abonnement . For Ressourcegruppe skal du vælge Brug eksisterende og vælg en ressourcegruppe, som vist i figur 7. Alternativt kan du vælge Opret ny mulighed.
Figur 7: Opret Azure Container Service>Grundlæggende
Vælg en Placering og klik på OK, som vist i figur 8.
Figur 8: Konfiguration af grundlæggende indstillinger for en Azure Container Service
I Master-konfiguration skal du angive masteroplysninger som vist i figur 9.
Figur 9: Masterkonfiguration
Vælg Orchestrator som Sværm , som vist i figur 10.
Figur 10: Vælger Orchestrator som Docker Swarm
Angiv et DNS-navn-præfiks ("docker" – et vilkårligt navn), og angiv et Brugernavn , som også er et vilkårligt navn. I det offentlige SSH-nøglefelt skal du sætte den offentlige SSH RSA-nøgle, der blev gemt tidligere i en tekstfil, som diskuteret i afsnittet Oprettelse af et SSH RSA-nøglepar . Vælg Master count (1, 3 eller 5), som vist i figur 11. Et ulige antal masterknudepunkter er klargjort til høje tilgængelighedskrav.
Figur 11: Levering af masteroplysninger
Klik på OK (se figur 12).
Figur 12: Fuldførelse af masterkonfiguration
I Agentkonfiguration , angiv agentantal , vælg Virtuel agentstørrelse , og klik på OK, som vist i figur 13.
Figur 13: Agentkonfiguration
I Oversigt , er Swarm-konfigurationen valideret, og meddelelsen "Validation bestået" skulle blive vist, som vist i figur 14. Klik på OK.
Figur 14: Sværmoversigt
Udrulningen af sværmen starter, som vist i figur 15.
Figur 15: Implementering af Azure Container Service
Når implementeringen er fuldført, vises meddelelsen "Deployment succeeded" (se figur 16).
Figur 16: Implementeringen lykkedes
Udforskning af Docker Swarm Cluster-ressourcerne
Ressourcerne til sværmen bliver vist som vist i figur 17. Klik på Se mere for at vise den komplette liste over genererede ressourcer.
Figur 17: Ressourcer
Alle Swarm-ressourcerne bliver vist som vist i figur 18. Swarm-ressourcetypen er angivet i TYPE kolonne og inkluderer virtuelle maskiner, virtuelle maskiner skalasæt, offentlige IP-adresser, tilgængelighedssæt, belastningsbalancere og netværksgrænseflader.
Figur 18: Sværmressourcer
Opretter forbindelse til en Swarm Master
For at oprette forbindelse til en Swarm master skal du klikke på en Swarm master virtuel maskine, som vist i figur 18. Kopier den offentlige IP-adresse fra siden Swarm master detaljer (se figur 19).
Figur 19: Offentlig IP-adresse på Swarm Master
Klik for at kopiere Swarm-masterens offentlige IP-adresse, som vist i figur 20.
Figur 20: Kopierer Swarm Master Public IP-adresse
Brug den private SSH-nøgle, SSH-porten (2200), brugernavnet og den offentlige IP-adresse til at oprette forbindelse til Swarm master VM'en:
[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200 [email protected]
Ved kommandoprompten "Er du sikker på, at du vil fortsætte med at oprette forbindelse (ja/nej)?", skal du angive "ja", og der oprettes forbindelse til Swarm-masteren, som vist i figur 21. Swarm-masteren er angivet til at køre Ubuntu OS.
Figur 21: Opretter forbindelse til Swarm Master
En Swarm master VM kører Docker-motoren som standard.
Konklusion
I denne artikel oprettede vi en Docker Swarm-klynge på Azure Container Service (ACS). En ACS Docker Swarm er ikke en Docker Swarm-tilstandsklynge, som skal initialiseres som på enhver Docker-vært, der kører version 1.12 eller nyere. De andre (bortset fra Docker Swarm) muligheder er at oprette en Mesos-baseret DC/OS eller en Kubernetes-klynge. En ACS Docker Swarm er en klynge af virtuelle maskiner, der kører Docker. Azure Container Service leverer alle ressourcer inklusive virtuelle maskiner, offentlige IP-adresser, virtuelle maskine skaleringssæt, belastningsbalancere og netværksgrænseflader. Vi oprettede forbindelse til en Swarm-master ved hjælp af en SSH RSA-privat nøgle, brugernavn og offentlige IP-adresse for Swarm-masteren.