Azure Container-service (ACS) is een geoptimaliseerde oplossing voor containerhosting voor veelgebruikte open source container orchestrator-tools. Ondersteunde container orchestrator-tools zijn op Mesos gebaseerde DC/OS, Kubernetes en Docker Swarm. Of de standalone Docker-engine kan worden gebruikt. Azure Container Service onthult de API-eindpunten voor een geselecteerde orkestratie-engine, zodat open source-hulpprogramma's voor verschillende gebruikssituaties, waaronder bewaking, continue integratie en opdrachtregelhulpprogramma's, toegang hebben tot de containerservice.
Wat is een ACS Docker Swarm?
Een Docker-zwerm is een verzameling/cluster van virtuele machines (VM's) waarop Docker Engine wordt uitgevoerd en omvat andere bronnen zoals load balancers, VM-schaalsets of beschikbaarheidssets, opslag en netwerk. Een Docker Swarm op Azure Container Service bestaat uit Swarm Master en Swarm Agent nodes (VM's). Een Swarm Master kan direct worden aangesloten op het gebruik van een SSH RSA-sleutel. Een Swarm Agent kan niet direct worden aangesloten met een SSH RSA-sleutel.
Azure Container Service Docker Swarm Cluster is geen Docker Swarm-moduscluster. Docker Swarm-modus moet worden geïnitialiseerd op een ACS Swarm-master. Wanneer een Docker Swarm-cluster wordt gemaakt op een Azure Portal, worden alle vereiste resources (VM's, schaalsets, load balancers) automatisch gemaakt.
Dit artikel heeft de volgende secties:
- De omgeving instellen
- Azure Cloud Shell starten
- Een SSH RSA-sleutelpaar maken
- Een Azure Container Service Docker Swarm maken
- De Docker Swarm Cluster-bronnen verkennen
- Verbinding maken met een zwermmeester
- Conclusie
De omgeving instellen
Een Azure-account is de enige vereiste. Er kan een Azure-account worden gemaakt op https://azure.microsoft.com/.
Azure Cloud Shell starten
Azure biedt een clientinterface om verbinding te maken met het Azure-hulpprogramma Cloud Shell. Cloud Shell is een browsergebaseerde beheerdersshell om verbinding te maken met Azure. Cloud Shell ondersteunt clienthulpprogramma's waaruit u kunt kiezen, waaronder PowerShell-modules, Azure-hulpprogramma's, containerhulpprogramma's, databasehulpprogramma's, Linux-shell-interpreters, bronbeheer en buildhulpprogramma's. Cloud Shell ondersteunt ook verschillende programmeertalen om uit te kiezen, waaronder .NET en Node.js. Om Cloud Shell te starten, klikt u op >_ pictogram, zoals weergegeven in Afbeelding 1.
Figuur 1: Cloud Shell starten
Een SSH RSA-sleutelpaar maken
Om een op Azure Container Service gebaseerde gehoste oplossing te maken, is een SSH RSA-sleutel vereist. Maak een SSH RSA-sleutel van de Cloud Shell met de volgende opdracht:
ssh-keygen -t rsa -b 2048
Er wordt een opdrachtprompt weergegeven om het bestand op te geven waarin de sleutel moet worden opgeslagen, zoals weergegeven in Afbeelding 2. Klik op Enter om het standaardbestand te selecteren.
Figuur 2: Een SSH RSA-sleutel genereren
Een andere opdrachtprompt om de wachtwoordzin op te geven, wordt weergegeven. Klik op Enter om geen wachtwoordzin te gebruiken. Ongeacht of er al dan niet een wachtwoordzin is geselecteerd, wordt een bevestigingsopdrachtprompt weergegeven om de wachtwoordzin opnieuw op te geven. Klik nogmaals op Enter als er geen wachtwoordzin wordt gebruikt. Er wordt een openbaar/privé-sleutelpaar gegenereerd en opgeslagen. De volledige uitvoer van het ssh-keygen-commando wordt hierna weergegeven:
[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]-----+
De standaardrechten die zijn ingesteld op de SSH RSA-sleutel zijn te open en kunnen niet worden gebruikt met ACS. Wijzig de rechten naar 400 (alleen-lezen door eigenaar):
[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa
We zullen de SSH RSA-sleutel gebruiken wanneer we een Docker Swarm maken. Open het openbare sleutelbestand in een vi-editor:
[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub
En selecteer alles en kopieer de inhoud van de id_rsa.pub bestand en sla het op in een tekstbestand om later te gebruiken.
Een Azure Container Service Docker Swarm maken
Als u een op Azure Container Service gebaseerde Docker Swarm wilt maken, klikt u op Nieuw in de Azure-portal, zoals weergegeven in Afbeelding 3.
Figuur 3: Azure portal>Nieuw
In de Nieuwe wizard, worden verschillende Azure Marketplace-toepassingen weergegeven waaruit u kunt kiezen, zoals weergegeven in Afbeelding 4.
Figuur 4: Nieuwe wizard
Selecteer de Azure Container Service, zoals weergegeven in Afbeelding 5.
Figuur 5: Azure Container Service selecteren
De wizard Create Azure Container Service wordt gestart, zoals weergegeven in Afbeelding 6, met de Basis dialoogvenster voor het configureren van basisinstellingen weergegeven.
Figuur 6: Maak Azure Container Service>Basis
Geef een containerservice op Naam (hello-world-docker), en selecteer een Abonnement . Selecteer voor Resourcegroep Bestaande gebruiken en selecteer een resourcegroep, zoals weergegeven in Afbeelding 7. U kunt ook de optie Nieuwe maken . selecteren optie.
Figuur 7: Maak Azure Container Service>Basis
Selecteer een Locatie en klik op OK, zoals weergegeven in Afbeelding 8.
Figuur 8: Basisinstellingen configureren voor een Azure Container Service
Geef in Masterconfiguratie de masterinformatie op, zoals weergegeven in Afbeelding 9.
Figuur 9: Hoofdconfiguratie
Selecteer Orkestrator als Zwerm , zoals weergegeven in afbeelding 10.
Figuur 10: Orchestrator selecteren als Docker Swarm
Specificeer een DNS-naamvoorvoegsel (“docker” – een willekeurige naam), en specificeer een Gebruikersnaam , wat ook een willekeurige naam is. Plaats in het veld SSH openbare sleutel de openbare SSH RSA-sleutel die eerder in een tekstbestand is opgeslagen, zoals besproken in de sectie Een SSH RSA-sleutelpaar maken . Selecteer Hoofdtelling (1, 3 of 5), zoals weergegeven in Afbeelding 11. Er is een oneven aantal hoofdknooppunten voorzien voor hoge-beschikbaarheidsvereisten.
Figuur 11: Hoofdinformatie verstrekken
Klik op OK (zie afbeelding 12).
Figuur 12: Masterconfiguratie voltooien
In Agentconfiguratie , specificeer het Aantal agenten , selecteer de Grootte virtuele agent-machine en klik op OK, zoals weergegeven in Afbeelding 13.
Figuur 13: Agentconfiguratie
In Samenvatting , wordt de Swarm-configuratie gevalideerd en wordt het bericht "Validatie geslaagd" weergegeven, zoals weergegeven in Afbeelding 14. Klik op OK.
Figuur 14: Zwermoverzicht
De inzet van de zwerm gaat van start, zoals weergegeven in figuur 15.
Figuur 15: Azure Container Service implementeren
Wanneer de implementatie is voltooid, wordt het bericht "Deployment geslaagd" weergegeven (zie Afbeelding 16).
Figuur 16: Implementatie geslaagd
De Docker Swarm Cluster-bronnen verkennen
De bronnen voor de zwerm worden weergegeven, zoals weergegeven in afbeelding 17. Klik op Meer bekijken om de volledige lijst met gegenereerde bronnen weer te geven.
Figuur 17: Bronnen
Alle zwermbronnen worden weergegeven, zoals weergegeven in afbeelding 18. Het type zwermbron wordt aangegeven in het TYPE kolom en omvat virtuele machines, virtuele-machineschaalsets, openbare IP-adressen, beschikbaarheidssets, load balancers en netwerkinterfaces.
Figuur 18: Zwermbronnen
Verbinding maken met een Swarm Master
Om verbinding te maken met een Swarm-master, klikt u op een virtuele Swarm-mastermachine, zoals weergegeven in Afbeelding 18. Kopieer het openbare IP-adres van de pagina Swarm-masterdetails (zie Afbeelding 19).
Figuur 19: Openbaar IP-adres van de zwermmeester
Klik om het openbare IP-adres van de zwermmaster te kopiëren, zoals weergegeven in afbeelding 20.
Figuur 20: Openbaar IP-adres van Swarm Master kopiëren
Gebruik de SSH-privésleutel, SSH-poort (2200), gebruikersnaam en openbaar IP-adres om verbinding te maken met de Swarm-master-VM:
[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200 [email protected]
Bij de opdrachtprompt "Weet u zeker dat u door wilt gaan met verbinden (ja/nee)?", geeft u "ja" op en er wordt een verbinding tot stand gebracht met de Swarm-master, zoals weergegeven in Afbeelding 21. Er wordt aangegeven dat de Swarm-master Ubuntu draait besturingssysteem.
Figuur 21: Verbinding maken met Swarm Master
Een Swarm-master-VM voert standaard de Docker-engine uit.
Conclusie
In dit artikel hebben we een Docker Swarm-cluster gemaakt op Azure Container Service (ACS). Een ACS Docker Swarm is geen Docker Swarm-moduscluster, dat moet worden geïnitialiseerd zoals op elke Docker-host met versie 1.12 of hoger. De andere (anders dan Docker Swarm) opties zijn om een Mesos-gebaseerd DC/OS of een Kubernetes-cluster te maken. Een ACS Docker Swarm is een cluster van virtuele machines waarop Docker wordt uitgevoerd. Azure Container Service voorziet in alle resources, inclusief virtuele machines, openbare IP-adressen, virtuele-machineschaalsets, load balancers en netwerkinterfaces. We hebben verbinding gemaakt met een Swarm-master met behulp van een SSH RSA-privésleutel, gebruikersnaam en openbaar IP-adres van de Swarm-master.