‫Questa sarà la prima lezione in cui utilizzeremo più host o nodi, istanze Stiamo andando a creare uno sciame a 3 nodi su
‫o qualsiasi altra cosa. più Purtroppo non possiamo fare questa parte con il Docker integrato sul
‫tuo computer perché ci fornirà solo un sistema operativo. Abbiamo bisogno di tre sistemi operativi Linux per giocare con questo prossimo set di funzionalità.
‫La prima opzione che avrai è l'utilizzo di play-with-docker. com.
‫È assolutamente il modo più semplice per iniziare.
‫Viene fornito con Docker preinstallato. Ti bastano pochi secondi per eseguire il provisioning di tre
‫macchine diverse e non richiede alcun investimento da parte tua. Ma vuol dire che ogni quattro ore cancellerà tutto il lavoro che hai fatto.
‫giorni, allora questa potrebbe non essere la migliore opzione per te.
‫Quindi se pensi di fare il resto di questa sezione nel corso dei Ma se hai intenzione di concentrarti per qualche ora, puoi sicuramente attraversare la
‫maggior parte, se non tutte, le sciami multi-nodo usando Play With Docker in una sola seduta.
‫Un'altra opzione che hai è che puoi usare la finestra mobile,
‫che non è qualcosa di cui abbiamo già parlato, ma è uno strumento a linea di comando che viene effettivamente installato con Docker per Windows e Docker per Mac.
‫Puoi scaricarlo per Linux, ed è fondamentalmente uno strumento di automazione per il
‫provisioning di macchine virtuali localmente e su Internet, quindi configurare automaticamente Docker per te.
‫Il modo predefinito in cui funziona è con VirtualBox, che puoi installare gratuitamente. hai intenzione di eseguire tre macchine virtuali localmente, ognuna di esse probabilmente ha bisogno di un
‫gig di RAM o così di eseguire un sacco di questi esempi.
‫Ma vuol dire che se Quindi avrai bisogno di una macchina con una buona quantità di RAM. Un'altra opzione, e quella che farò
‫in modo predefinito per un sacco di questi demo e walk through, è DigitalOcean.
‫Raccomando solo DigitalOcean solo perché
‫hanno il servizio più economico e semplice per iniziare, ed eseguono tutto su SSD quindi è bello e veloce. Si può effettivamente usare questo in un set molto, molto simile a quello che sarebbe la produzione
‫perché si stanno utilizzando tre macchine virtuali effettive, nel cloud, e ci vuole
‫circa un minuto per lanciare ogni macchina virtuale.
‫Se pensi che questa sia un'opzione, puoi usare il mio codice di riferimento e i riferimenti
‫a questa sezione per ottenere i primi $ 10 gratuiti.
‫Se ci vorranno solo pochi giorni per superare questo brulichio, puoi fornire tre nodi
‫da $ 10 al mese e organizzarli per giorni o una settimana.
‫E questo potrebbe rientrare nel budget di $ 10, quindi tecnicamente non ti costerà nulla.
‫E infine, ci sono tanti modi per installare Docker, e questo è
‫tutto ciò di cui hai bisogno sono tre macchine con Docker installato su di esse. Puoi usare Docker Machine.
‫È dotato di driver incorporati che consentono di utilizzarlo per il provisioning di istanze Amazon, istanze di
‫Azure o Droplet DigitalOcean o nodi Google Compute
‫o qualsiasi luogo in cui è possibile ottenere una macchina virtuale Linux, è possibile installare semplicemente Docker con uno script automatico da ottenere. finestra mobile. com.
‫Francamente, preferisco ottenere. finestra mobile. La versione di COM solo perché Docker Machine può farti risparmiare alcuni passaggi, in particolare per le posizioni come Amazon e Azure che richiedono il provisioning di
‫molte cose diverse prima di
‫poter eseguire il provisioning di una macchina virtuale. Ma probabilmente non
‫utilizzerai la Docker Machine in produzione.
‫È uno strumento per automatizzare semplicemente gli ambienti di sviluppo e test. Non è mai stato davvero progettato per configurare tutte le
‫impostazioni di produzione necessarie per uno sciame multi-nodo.
‫Non c'è niente di intrinsecamente sbagliato in questo, ma in genere si ottiene. finestra mobile. com funziona su tutte le principali distribuzioni Linux
‫e non impiega più tempo del reale utilizzo di Docker Machine.
‫Ti darò un esempio molto
‫veloce di come ottenere uno di questi scenari al punto in cui Docker è installato. Allora saranno tutti molto simili nel modo in
‫cui effettivamente creiamo lo sciame e facciamo i nostri servizi.
‫Quindi non pensare che devi farlo nel modo in cui lo faccio.
‫In realtà stiamo solo cercando di ottenere informazioni Docker per riportare effettivamente le informazioni, e
‫solo per assicurarci che i tre nodi abbiano accesso in rete tra loro e che siano su una rete ben collegata.
‫Quindi idealmente dovrebbero essere nella stessa rete.
‫Se avessi intenzione di utilizzare Play With Docker, in realtà devi solo giocare con la finestra mobile. scatola perché non sono un robot.
‫com e controlla sulla
‫E se ti dà la schermata CAPTCHA, basta seguire.
‫Tutto ok. Vedrai che è il conto alla rovescia di quattro ore.
‫Ma se faccio semplicemente clic sull'istanza di creazione e quindi faccio clic su di esso altre due volte,
‫creerò tre ambienti virtuali molto rapidamente.
‫Come nota a margine, questo è in realtà l'utilizzo di Docker in Docker, che è una tecnologia piuttosto ordinata in cui stiamo effettivamente eseguendo
‫Docker all'interno di un contenitore Docker.
‫creato da altri capitani Docker e dal team Docker, è davvero difficile distinguere.
‫Ma in questo set up di Play With Docker,
‫Se vado su node1, posso già vedere che le informazioni Docker mi danno l'ultima versione. E se persino provassi a fare il ping su node2, in realtà
‫riconosce i nomi
‫amici, quindi renderà più facile comunicare avanti e indietro tra loro.
‫Quindi, se questo è qualcosa che vuoi provare, è un modo semplice e agevole su entrambe le macchine a bassa potenza o se semplicemente non vuoi prendere il tempo per impostare un ambiente
‫per le prossime quattro ore.
‫L'opzione due è usare la finestra mobile. Se lo hai installato, dovrebbe essere almeno la
‫versione 10 se non più recente.
‫Saprai se è installato perché dovrai digitare il comando della finestra mobile dalla tua riga di
‫comando e funzionerà o meno.
‫Se hai bisogno di scaricarlo per il tuo particolare sistema operativo Linux, puoi passare alla Documentazione Docker, che
‫ti darà una linea di arricciatura rapida per scaricarlo.
‫Se stai usando ToolBox su Windows 7 e 8, o Docker per Windows su Windows 10 o Docker per Mac su
‫Mac OS, sarà già aggiornato su quei sistemi operativi per te.
‫Se si desidera utilizzare l'opzione VirtualBox, che è l'impostazione
‫predefinita, è sufficiente passare a virtualbox. org e scarica l'ultima versione per il tuo sistema operativo. nulla con VirtualBox.
‫E non devi nemmeno fare
‫Ha solo bisogno di essere installato. E poi dalla tua linea di comando, puoi semplicemente digitare docker-machine
‫create node1,
‫e questo verrà effettivamente eseguito attraverso la creazione di una macchina virtuale con BusyBox, che è una distribuzione Linux molto leggera.
‫In questo modo verrà eseguita la creazione di una macchina Linux molto leggera e dovrai semplicemente ripetere
‫questi due comandi per node2 e 3.
‫Se hai bisogno di maggiori informazioni su una Docker Machine, puoi effettivamente guardare la mia
‫sezione di riferimento per i link tutorial.
‫Una volta create le tue macchine, hai davvero due opzioni per accedere a quelle macchine.
‫Puoi utilizzare ssh della docker-machine, quindi il nome del nodo
‫che hai creato e che ti porterà direttamente in quella macchina.
‫Oppure puoi usare il comando ambiente.
‫Quindi il comando dock
‫machine-env, e poi il nome della macchina che vuoi, ti darà un po
‫'di output, e puoi sia tagliare e incollare queste opzioni sulla tua linea di comando o puoi copiare e incollare l'opzione in basso, e questo sarà in realtà creare la variabile di ambiente in modo
‫che quando eseguo il comando docker, perché ancora una volta, la CLI Docker ha solo bisogno di sapere quale host Docker con cui parlare. parlando al tuo computer locale.
‫E per impostazione predefinita, sta
‫Ma questo lo ha appena riprogrammato per parlare al
‫nodo Docker Machine1.
‫Se faccio info docker, vedrai che il suo nome è node1 perché è quello
‫su cui attualmente sto operando.
‫Per l'ultimo esempio, userò DigitalOcean, su cui ho creato un account.
‫Qui chiamano i server Droplet. Mi
‫raccomando se non hai una ragione specifica per eseguire un altro sistema operativo, per iniziare con Ubuntu 16. prima distribuzione Linux a supportare le nuove funzionalità di Docker.
‫04 perché questo tende ad essere la
‫Quindi questo è il default lì.
‫Quindi consiglierei per il resto di questo corso per noi di utilizzare il server $ 10 al mese. Potresti riuscire a farla franca con il server $
‫5 al mese, ma potrebbe rivelarsi un po
‫'lento durante alcune delle demo successive quando eseguiamo il monitoraggio e la registrazione dei contenitori sulle nostre applicazioni.
‫Quindi puoi scegliere il data center più vicino a te. Quindi l'unica altra opzione è aggiungere una chiave SSH.
‫quindi caricare il pubblico in DigitalOcean, c'è un ottimo tutorial che hanno per esso che
‫puoi trovare nelle risorse di questa sezione.
‫Se non hai familiarità con come creare localmente la tua chiave SSH e
‫Giù in basso creerò tre macchine, e le chiamerò node1, 2 e 3.
‫Quindi devo aspettare probabilmente circa 60 secondi e saranno pronti per me. Facendo clic sul pulsante di copia e quindi su root ssh @ l'indirizzo IP.
‫Potresti semplicemente usare gli indirizzi IP qui. saltare su queste macchine. E se la chiave SSH è correttamente configurata sulla tua
‫macchina, allora si collegherà automaticamente con quella chiave.
‫Ma nella sezione delle risorse, ti ho dato un esempio su come impostare a. configurazione ssh che ti permetterà
‫di avere questi tre nodi in una configurazione in modo che tu possa semplicemente chiamarli nodo1,
‫nodo2, nodo3, invece di dover ricordare i loro indirizzi IP, nel caso lo facciamo in più giorni .
‫file di Questo è davvero un modo semplice per entrare e uscire da questi server.
‫Se hai usato Docker Machine, o se hai usato Play
‫With Docker, Docker è già installato e ti stai preparando a creare il tuo sciame.
‫Ma se usi DigitalOcean o fai girare le tue VM, allora devi installare Docker.
‫Il modo più semplice per farlo, che mi piace usare, è usare lo script per ottenere. finestra mobile. com.
‫Puoi vedere esempi di come utilizzare questo script per ottenere l'attuale versione di produzione
‫di Docker sul tuo computer.
‫server hanno l'ultima versione di Docker installata e siamo pronti per impostare il nostro sciame.
‫Ora, tutti e tre i miei
‫Di nuovo, tutto ciò che è richiesto è che questi tre nodi abbiano una rete solida tra
‫loro e porte specifiche aperte.
‫Se sei curioso delle porte di sciame, guarda nelle risorse di questa sezione dove ho effettivamente un link alla mia lista delle porte del
‫firewall necessarie per far funzionare Swarm.
‫Se ti ricordi prima, abbiamo fatto lo sciame docker init. Ora, in questo caso, che è abbastanza comune nei server cloud, ci vuole specificare un indirizzo IP per pubblicizzare
‫il servizio Swarm.
‫Si desidera utilizzare un indirizzo IP accessibile dagli altri server.
‫In questo caso, utilizzerò l'indirizzo IP pubblico
‫per il mio host DigitalOcean.
‫E noi andiamo.
‫Finora, questo è proprio come sulla nostra macchina locale.
‫Questa volta, tuttavia, copierò il comando swarm join e passerò a node2 e lo aggiungo.
‫E noi andiamo.
‫Questo nodo è ora una parte dello sciame.
‫Quindi torniamo a node1, nodo docker ls, e ora ne abbiamo due.
‫Noterai che il secondo nodo è solo un lavoratore. Perché, come si dice, se volessimo che fosse un manager, avremmo dovuto ottenere questo
‫token manager. Ma non preoccuparti. Possiamo effettivamente aggiornare
‫questo lavoratore per promuoverlo come manager.
‫Ma se siamo finiti su node2, notiamo che non posso usare i comandi Swarm. Perché i lavoratori non sono veramente privilegiati.
‫Non hanno accesso per controllare lo sciame.
‫Quindi non saranno in grado di utilizzare nessuno dei comandi Swarm che siamo abituati a usare sui gestori. Quello che stavo facendo era premere Tab per il completamento del tab, che è sempre una caratteristica
‫Tornando su node1 e il gestore, eseguirò un aggiornamento del nodo docker. fantastica in Docker, specialmente con così tante funzioni. Mi stava
‫guidando attraverso ogni passaggio su come usare quel comando di aggiornamento.
‫Ora ho finito questo aggiornamento finale e ha cambiato nodo2.
‫Ora se faccio il mio nodo docker ls, vedrai che ora è considerato raggiungibile.
‫Ma il nodo originale è ancora il leader. A proposito, il piccolo asterisco? Significa solo che è il nodo
‫con cui stai attualmente parlando.
‫Per node3, aggiungiamolo come gestore per impostazione predefinita.
‫Dobbiamo tornare
‫al nostro comando originale di docker swarm, e quindi dobbiamo ottenere il gestore del token join.
‫Puoi ottenere questi token in qualsiasi momento.
‫Non è necessario scriverli o salvarli.
‫Fanno parte della configurazione dello swarm e sono memorizzati su disco, quindi non preoccuparti.
‫Puoi anche cambiarle nel caso in cui vengano eventualmente esposte o potresti
‫avere un server che potrebbe avere una vulnerabilità su di esso, e vuoi assicurarti che nessun nodo possa unirsi allo sciame della vecchia chiave,
‫puoi effettivamente ruotare queste chiavi .
‫Ho intenzione di copiare questo, incollarlo in node3.
‫E noi andiamo. Torna su node1.
‫Se faccio di nuovo un nodo docker ls, vedrai che ho tre nodi. manager che indica che sono manager.
‫E tutti hanno uno status
‫Quindi ora abbiamo uno sciame ridondante a 3 nodi con tre gestori. Facciamo solo la stessa cosa che abbiamo fatto
‫prima, il servizio
‫docker crea il ping alpino 8. 8. 8. 8 Solo questa
‫volta,
‫diamo tre repliche.
‫e vedremo che ne abbiamo
‫già tre su tre già in esecuzione.
‫E poi fai un servizio di docker ls,
‫Se ho fatto un nodo docker ps, posso effettivamente vedere il mio nodo locale è in realtà in esecuzione questa attività o contenitore.
‫Posso effettivamente specificare il nodo, nodo2, e mi darà solo i contenitori in esecuzione su node2.
‫Se volessi ottenere una lista completa, potrei fare un servizio di docker lasciami espandere un
‫ps, e poi il sonno assonnato è il nome che ha dato al nostro servizio. E vedrai qui. po 'lo schermo. Puoi vedere qui che elenca tutti e tre i nostri compiti.
‫Una volta creato questo swarm, normalmente non è
‫necessario digitare comandi in tutti i diversi nodi. Puoi davvero gestire l'intero sciame, per la maggior parte delle cose, da node1.
‫per ora, datti una pacca sulla schiena perché hai un cluster swarm pienamente operativo.
‫Quindi faremo molto del nostro lavoro dal nodo 1 nelle future lezioni, ma
‫
‫SO. tutti e tre questi nodi.