Database
 sql >> Database >  >> RDS >> Database

Creazione di un cluster Docker Swarm nel servizio contenitore di Azure

Servizio Azure Container (ACS) è una soluzione di hosting di container ottimizzata per gli strumenti di orchestrazione di container open source di uso comune. Gli strumenti di orchestrazione dei contenitori supportati sono DC/OS basati su Mesos, Kubernetes e Docker Swarm. In alternativa, è possibile utilizzare il motore Docker autonomo. Il servizio contenitore di Azure espone gli endpoint API per un motore di orchestrazione selezionato, in modo che gli strumenti open source per vari casi d'uso, inclusi monitoraggio, integrazione continua e strumenti da riga di comando, possano accedere al servizio contenitore.

Cos'è uno sciame Docker ACS?

Uno sciame Docker è una raccolta/cluster di macchine virtuali (VM) che eseguono Docker Engine e include altre risorse come bilanciatori del carico, set di scalabilità di macchine virtuali o set di disponibilità, archiviazione e rete. Uno sciame Docker nel servizio contenitore di Azure è costituito da nodi Swarm Master e Swarm Agent (VM). Uno Swarm Master può essere collegato direttamente utilizzando una chiave SSH RSA. Uno Swarm Agent non è direttamente collegabile utilizzando una chiave SSH RSA.

Il cluster Docker Swarm del servizio contenitore di Azure non è un cluster in modalità Docker Swarm. La modalità Docker Swarm deve essere inizializzata su un master ACS Swarm. Quando viene creato un Docker Swarm Cluster su un portale di Azure, tutte le risorse necessarie (VM, set di scalabilità, bilanciatori del carico) vengono create automaticamente.

Questo articolo ha le seguenti sezioni:

  • Impostazione dell'ambiente
  • Avvio di Azure Cloud Shell
  • Creazione di una coppia di chiavi RSA SSH
  • Creazione di uno swarm Docker del servizio Azure Container
  • Esplorazione delle risorse del cluster Docker Swarm
  • Connessione a un maestro dello sciame
  • Conclusione

Impostazione dell'ambiente

Un account Azure è l'unico prerequisito. È possibile creare un account Azure all'indirizzo https://azure.microsoft.com/.

Avvio di Azure Cloud Shell

Azure fornisce un'interfaccia client per la connessione con lo strumento di Azure denominato Cloud Shell. Cloud Shell è una shell di amministrazione basata su browser per la connessione ad Azure. Cloud Shell supporta gli strumenti client tra cui scegliere, inclusi moduli PowerShell, strumenti di Azure, strumenti contenitore, strumenti database, interpreti shell Linux, controllo del codice sorgente e strumenti di compilazione. Cloud Shell supporta anche diversi linguaggi di programmazione tra cui scegliere, inclusi .NET e Node.js. Per avviare Cloud Shell, fai clic su >_ icona, come mostrato nella Figura 1.


Figura 1: Avvio di Cloud Shell

Creazione di una coppia di chiavi RSA SSH

Per creare una soluzione ospitata basata sul servizio Azure Container, è necessaria una chiave RSA SSH. Crea una chiave SSH RSA da Cloud Shell con il comando seguente:

ssh-keygen -t rsa -b 2048

Viene visualizzato un prompt dei comandi per specificare il file in cui salvare la chiave, come mostrato nella Figura 2. Fare clic su Invio per selezionare il file predefinito.


Figura 2: Generazione di una chiave RSA SSH

Viene visualizzato un altro prompt dei comandi per specificare la passphrase. Fare clic su Invio per non utilizzare una passphrase. Indipendentemente dal fatto che una passphrase sia selezionata o meno, viene visualizzato un prompt dei comandi di conferma per specificare nuovamente la passphrase. Fare di nuovo clic su Invio se non viene utilizzata alcuna passphrase. Viene generata e salvata una coppia di chiavi pubblica/privata. L'output completo del comando ssh-keygen è elencato di seguito:

[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]-----+

Le autorizzazioni predefinite impostate sulla chiave SSH RSA sono troppo aperte e non possono essere utilizzate con ACS. Modifica i permessi a 400 (sola lettura dal proprietario):

[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa

Useremo la chiave SSH RSA quando creeremo un Docker Swarm. Apri il file della chiave pubblica in un editor vi:

[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub

E, seleziona tutto e copia il contenuto di id_rsa.pub archiviare e archiviare in un file di testo da utilizzare in seguito.

Creazione di uno swarm Docker del servizio Azure Container

Per creare uno sciame Docker basato sul servizio Contenitore di Azure, fare clic su Nuovo nel portale di Azure, come mostrato nella Figura 3.


Figura 3: Portale di Azure>Nuovo

Nel Nuovo procedura guidata, vengono visualizzate diverse applicazioni di Azure Marketplace tra cui scegliere, come mostrato nella figura 4.


Figura 4: Nuova procedura guidata

Selezionare il servizio Azure Container, come illustrato nella figura 5.


Figura 5: Selezione del servizio Azure Container

La procedura guidata Crea Azure Container Service viene avviata, come mostrato nella Figura 6, con le Nozioni di base finestra di dialogo per la configurazione delle impostazioni di base visualizzata.


Figura 6: Crea Azure Container Service>Nozioni di base

Specificare un servizio contenitore Nome (hello-world-docker) e seleziona un Abbonamento . Per Gruppo di risorse, seleziona Utilizza esistente e seleziona un gruppo di risorse, come mostrato nella Figura 7. In alternativa, seleziona Crea nuovo opzione.


Figura 7: Crea Azure Container Service>Nozioni di base

Seleziona una Posizione e fare clic su OK, come mostrato nella Figura 8.


Figura 8: Configurazione delle impostazioni di base per un servizio Azure Container

Nella configurazione principale, fornisci le informazioni sul master, come mostrato nella Figura 9.


Figura 9: Configurazione principale

Seleziona Orchestratore come Sciame , come mostrato nella Figura 10.


Figura 10: Selezione di Orchestrator come Docker Swarm

Specifica un prefisso del nome DNS ("docker" – un nome arbitrario) e specificare un Nome utente , che è anche un nome arbitrario. Nel campo della chiave pubblica SSH, inserisci la chiave pubblica SSH RSA che era stata memorizzata in precedenza in un file di testo, come discusso nella sezione Creazione di una coppia di chiavi SSH RSA . Seleziona Conteggio principale (1, 3 o 5), come mostrato nella Figura 11. Viene fornito un numero dispari di nodi master per i requisiti di disponibilità elevata.


Figura 11: Fornire informazioni principali

Fare clic su OK (vedi Figura 12).


Figura 12: Completamento della configurazione principale

In Configurazione agente , specifica il Conteggio agenti , seleziona la dimensione macchina virtuale agente e fare clic su OK, come mostrato nella Figura 13.


Figura 13: Configurazione agente

In Riepilogo , la configurazione Swarm viene convalidata e dovrebbe essere visualizzato il messaggio "Convalida superata", come mostrato nella Figura 14. Fare clic su OK.


Figura 14: Riepilogo sciame

Viene avviato il dispiegamento dello Sciame, come mostrato nella Figura 15.


Figura 15: Distribuzione del servizio Azure Container

Quando la distribuzione viene completata, viene visualizzato il messaggio "Distribuzione riuscita" (vedere la Figura 16).


Figura 16: Distribuzione riuscita

Esplorazione delle risorse del cluster Docker Swarm

Le risorse per lo Swarm vengono visualizzate, come mostrato nella Figura 17. Fai clic su Visualizza altro per visualizzare l'elenco completo delle risorse generate.


Figura 17: Risorse

Tutte le risorse Swarm vengono visualizzate, come mostrato nella Figura 18. Il tipo di risorsa Swarm è indicato nel TYPE colonna e include macchine virtuali, set di scalabilità di macchine virtuali, indirizzi IP pubblici, set di disponibilità, bilanciatori del carico e interfacce di rete.


Figura 18: Risorse dello sciame

Connessione a un maestro dello sciame

Per connetterti a un master Swarm, fai clic su una macchina virtuale master Swarm, come mostrato nella Figura 18. Copia l'indirizzo IP pubblico dalla pagina dei dettagli del master Swarm (vedi Figura 19).


Figura 19: Indirizzo IP pubblico dello Swarm Master

Fare clic per copiare l'indirizzo IP pubblico dello Swarm master, come mostrato nella Figura 20.


Figura 20: Copia dell'indirizzo IP pubblico Swarm Master

Utilizzando la chiave privata SSH, la porta SSH (2200), il nome utente e l'indirizzo IP pubblico, connettiti alla VM Swarm master:

[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200
   [email protected]

Al prompt dei comandi "Sei sicuro di voler continuare a connetterti (sì/no)?", Specificare "sì" e verrà stabilita una connessione allo Swarm master, come mostrato nella Figura 21. È indicato che lo Swarm master esegue Ubuntu Sistema operativo.


Figura 21: Connessione a Swarm Master

Una macchina virtuale Swarm master esegue il motore Docker per impostazione predefinita.

Conclusione

In questo articolo è stato creato un cluster Docker Swarm in Azure Container Service (ACS). Un ACS Docker Swarm non è un cluster in modalità Docker Swarm, che deve essere inizializzato come su qualsiasi host Docker che esegue la versione 1.12 o successiva. Le altre opzioni (diverse da Docker Swarm) consistono nel creare un DC/OS basato su Mesos o un cluster Kubernetes. Un ACS Docker Swarm è un cluster di macchine virtuali che eseguono Docker. Il servizio contenitore di Azure effettua il provisioning di tutte le risorse, inclusi macchine virtuali, indirizzi IP pubblici, set di scalabilità di macchine virtuali, servizi di bilanciamento del carico e interfacce di rete. Ci siamo collegati a uno Swarm master utilizzando una chiave privata SSH RSA, un nome utente e un indirizzo IP pubblico dello Swarm master.