‫Prima di espandere i nostri servizi per iniziare a correre su un gruppo di nodi e tutti i servizi che
‫parlano tra loro, esaminiamo un paio di nuovi concetti che Swarm porta in tavola.
‫Il primo è un nuovo driver di rete chiamato Overlay, e in realtà crei semplicemente una rete
‫come se fossi
‫abituato a crearlo, creando una docker network e inserendo una sovrapposizione di --driver.
‫Ciò che è come è fondamentalmente la creazione di una rete bridge Swarm-wide in cui i contenitori attraverso gli
‫host sulla stessa rete virtuale possono accedere l'un l'altro come se fossero su una VLAN.
‫Questo è solo per la comunicazione sciame intra.
‫Il driver di sovrapposizione non ha una grande quantità di traffico in arrivo, poiché sta tentando
‫di ottenere una visione completa della rete in modo da non disturbare costantemente le impostazioni di
‫rete sui singoli nodi.
‫È anche possibile abilitare la crittografia completa della rete utilizzando IPiece SEC dove verrà effettivamente impostato i tunnel IPSec
‫tra tutti i diversi nodi del proprio sciame.
‫Ma è disattivato per impostazione predefinita solo per motivi di prestazioni.
‫Quando crei i tuoi servizi, puoi aggiungerli a nessuna rete Overlay o a una o più reti Overlay.
‫Dipende davvero dal design della tua applicazione.
‫Sai, molti progetti tradizionali avrebbero i database su una rete di back-end e i
‫server Web su una rete di front-end. Allora forse avresti una API tra i due che sarebbe su entrambe le
‫reti, o qualcosa del genere.
‫E puoi farlo totalmente in Swarm.
‫Vediamo questo in azione. Quello che voglio fare è che voglio
‫mostrarti come sarebbe se avessimo distribuito l'esempio Drupal da un precedente incarico con il database Postgres, come servizi, e poi creato una
‫rete Overlay per farli parlare tra di loro.
‫della rete mobile, e questo non è cambiato per Swarm se non per il fatto che useremo un nuovo driver.
‫Per prima cosa abbiamo bisogno di creare una rete, così la creazione
‫Lo chiamerò mydrupal.
‫OK.
‫Quindi, ho intenzione di fare una rete docker ls, e vedrai che ho un nuovo overlay. L'ingresso è lì per impostazione predefinita. Lo collegheremo alla rete mydrupal.
‫Ne vedrai anche uno nuovo perché uno sciame, che in realtà è una rete in uscita con cui non avremo bisogno il servizio docker crea chiamiamolo rete psql. In realtà c'è il completamento delle schede nei nomi di rete.
‫di fare confusione. Quindi ricorda che ho bisogno di aggiungere quella variabile d'ambiente per la password di Postgres.
‫Quindi, creiamo il nostro servizio Postgres. il nome. Quindi possiamo connetterci più tardi.
‫Quindi useremo l'immagine di Postgres. Sembra buono.
‫Qui noterai che non scarichiamo l'immagine intera e tutto il resto, perché
‫i servizi non possono essere eseguiti in primo piano, perché devono passare attraverso l'orchestrator e lo scheduler. Quindi, possiamo eseguire un servizio di finestra mobile ls e possiamo vedere
‫che uno di questi è in esecuzione.
‫Se eseguiamo un servizio di finestra mobile psql, possiamo vedere che questo è effettivamente in esecuzione sul nodo 1.
‫Quindi posso fare un log del contenitore docker in psql, e poi posso vedere i registri di quello.
‫Sì. Sembra che sia in esecuzione.
‫Tutto ok.
‫procederò e lo chiamerò drupal.
‫Creiamo il nostro altro servizio, quindi
‫Dobbiamo anche collegarci alla stessa rete. Quindi vogliamo pubblicare la porta 80:80 come abbiamo fatto con
‫un comando di esecuzione docker. E useremo l'immagine Drupal.
‫OK.
‫Possiamo vedere che sta iniziando da lì. quello che fa è rieseguire È installato
‫C'è un trucco. In realtà puoi usare il comando watch in Linux per guardarlo. Fondamentalmente. di default su Ubuntu. ah, vedi?
‫un comando più e più volte. Se si mette l'orologio di fronte al servizio di docker ls, continuerà a farlo funzionare ogni due secondi Ora abbiamo uno per uno.
‫fino all'arresto. Va bene, e poi controllerò semplicemente c. esecuzione sul nodo 2.
‫Possiamo fare un drupal ps servizio docker e vedere che drupal è in realtà in
‫Abbiamo il database in esecuzione sul nodo 1.
‫Abbiamo il sito Web Drupal in esecuzione sul Nodo 2.
‫Quindi, come fanno a sapere come parlarsi?
‫Bene, usando i nomi dei servizi.
‫Se si incolla uno degli indirizzi IP, dovrebbe apparire sull'installazione Drupal. E se gli
‫racconto il database qui, il nome
‫del database, faremo di nuovo il postgres, postgres, la mia password.
‫Per l'host, proprio come quando eravamo con Compose, abbiamo creato i nomi dei servizi nel file Compose, qui, useremo il nome del
‫servizio che abbiamo creato per il server del database. Quindi, quello
‫era psql.
‫Questo schermo ci dice fondamentalmente che è in grado
‫di parlare al database attraverso i nodi e configurare il sistema.
‫Questa è la cosa bella di Overlay è che agisce davvero come se tutto fosse nella stessa sottorete.
‫Tutto ok.
‫Quindi non abbiamo più bisogno di questo.
‫Finirò questo esempio molto velocemente solo per mostrarti la prossima cosa interessante su Swarm. OK.
‫Ora, questo sito è in esecuzione. Ma ho tre nodi, quindi come faccio a sapere su quale nodo si troverà e su quale porta devo fare per assicurarmi che il mio DNS punti quando Ho
‫creo il nome di questo sito? Quindi, se vedi,
‫Nel mio caso, ho tre indirizzi IP e posso copiarli sbagliato quello lì. sembra che il sito web stia girando su tutti e tre i nodi perché sto guardando tutti e tre gli indirizzi IP.
‫tutti e tre Ma se vado qui e faccio questo servizio ps drupal, so che è in esecuzione solo il nodo 2. giusto qui.
‫e inserire tutti e tre questi indirizzi IP in e. oops. Posso persino ispezionare un servizio di finestra mobile e vedere che in effetti ha solo un indirizzo IP su quella rete di Quindi, perché risponde su tutti e tre gli host?
‫sovrapposizione. Questo ci porta alla nostra prossima, nuova funzionalità.
‫