‫Quindi andremo veloci.
‫Tutto bene.
‫Poi finiremo lo spettacolo perché abbiamo passato l'ora.
‫Voglio darvi un feedback, ragazzi.
‫Tutto bene.
‫Il primo è Jacob.
‫C'è un sacco di documentazione qui. A proposito, adoro i Dockerfile di documentazione.
‫Va benissimo metterne quanto vuoi.
‫Questo è in realtà un file YAML, quindi ora stiamo parlando di Compose. Documentazione in Dockerfiles o Compose
‫files. In entrambi i casi.
‫Sempre una buona cosa.
‫Tutto bene.
‫Quindi sta usando una versione 3. 0 7, il che significa che probabilmente è
‫per Swarm o qualcosa in produzione come Kubernetes che utilizza il set di funzionalità Compose su Kubernetes.
‫Sta usando le immagini ufficiali di Elastic dall'Elastic lì.
‫Vediamo che hai il tuo controllo sanitario.
‫Fantastico.
‫Hai i controlli sanitari. È fantastico. Hai delle configurazioni.
‫È fantastico.
‫Lo stai impostando su una rete specifica e stai eseguendo la modalità host
‫sulla porta, quindi stai dando questo accesso diretto alla NIC invece di passare attraverso le reti overlay e la mesh di
‫routing.
‫Va bene.
‫Allora, vediamo.
‫Dobbiamo schierarci quaggiù.
‫Oh, e stai eseguendo il round robin DNS in modalità endpoint.
‫Complimenti a te.
‫Questo è qualcosa che molte persone non si rendono conto.
‫Ogni volta che stai eseguendo qualcosa in Swarm e vuoi disabilitare l'IP virtuale che si trova davanti a ogni servizio di overlay, vuoi
‫farlo per i database in cui hai solo un nodo, giusto, che è un sacco di volte anche se tu stai
‫facendo un mirror di un database che di solito esegui ognuno di quelli
‫nel proprio servizio.
‫Quindi c'è un'istanza in un servizio e quell'attività di quell'istanza di un contenitore, di solito non vuoi quell'IP virtuale di fronte ad essa
‫perché ora è un salto in più. È un'altra traduzione NAT.
‫Sono più potenziali problemi.
‫Se imposti la modalità endpoint su DNS round robin qui, questo disattiva effettivamente il VIP e ha accesso diretto
‫a quel contenitore.
‫Complimenti a te.
‫Non lo vedo molto spesso perché la gente non lo prende. Stai anche usando le repliche.
‫Limiti di risorse di 4G per un concerto fantastico.
‫Raccomando sempre di impostare sempre i limiti e le prenotazioni delle risorse, se possibile, perché ciò
‫aiuterà le cose ad andare d'accordo all'interno del cluster.
‫Si.
‫Sembra che funzioni su Docker Swarm. Dolce.
‫Maestro di
‫coordinamento.
‫Tutto bene.
‫Più dello stesso.
‫Roba buona. Roba buona.
‫Ti stai impegnando a montare un volume. Non sei vincolato al montaggio. Stai utilizzando un volume denominato.
‫Hai dei vincoli di posizionamento qui, quindi lo stai mettendo su un nodo che è codificato
‫con un nome specifico. Sai che vuoi che questo venga eseguito solo su quel nodo.
‫Ovviamente, il punto debole qui è che se quel nodo si interrompe, non sarà in grado di posizionarlo da nessun'altra parte.
‫Spero che tu l'abbia preso in considerazione.
‫Tutto bene.
‫Master2, quindi è così che lo stai facendo.
‫Sembra che tu abbia master1, master2 hardcoded come servizi separati e master3. Molte persone devono farlo in questo modo, quando
‫si dispone di un cluster di database multi-nodo, di solito è più facile mettere ognuno
‫di questi come proprio servizio.
‫Quindi l'hai fatto. Sarebbe bello se potessimo fare solo un servizio con tre repliche.
‫Puoi trovarlo con alcuni esempi utilizzando il modello del pilota automatico. Se cerchi IO del modello di pilota automatico o se cerchi su Google
‫la tua tecnologia di database con la parola pilota automatico, a volte puoi trovare configurazioni e script di automazione
‫che ti aiuteranno a fare tutto in un unico servizio.
‫Ci sono pro e contro per ciascuno.
‫Personalmente tendo a farlo nel modo in cui lo fai tu.
‫Mi sembra che sia più semplice anche se è più YAML ed è un po' più prolisso.
‫Una cosa che potresti fare qui.
‫Un enorme miglioramento è se queste sono tutte le stesse parti qui.
‫Destra.
‫Tutte le stesse cose, puoi modellarlo, abbreviare questo file in modo significativo inserendolo solo in un blocco
‫modello.
‫Ne parlo di più in questo...
‫Questo qui, Jacob. Lo metto in chat.
‫Si tratta di tre diverse funzionalità avanzate di Docker Compose che molte persone non usano.
‫Uno di questi riguarda i modelli.
‫Quindi, se vedi l'esempio qui, puoi lanciare il modello proprio lì.
‫Fondamentalmente quello che stai dicendo è che questo è ciò che
‫voglio nel modello ed è qui che voglio che tu lo metta, più e più volte in ogni immagine, o meglio in ogni servizio.
‫Quindi, molte di quelle cose standard, come puoi modellare l'intera cosa o puoi semplicemente
‫modellarne parti e avere più modelli, e Docker ha documentazione su questo.
‫Ciò aiuterebbe a ridurre le dimensioni del file e lo chiamiamo asciutto.
‫Destra.
‫Fare le cose una volta. Non ripeterti.
‫D
‫R Y Potresti farlo.
‫Ciò ti aiuterebbe ad alleviare molte di queste cose ripetitive, specialmente intorno
‫ai controlli sanitari e alle cose di distribuzione.
‫Quindi hai i tuoi nodi di dati. Sembra tutto a posto. Stai usando i tuoi controlli sanitari. Hai
‫impostato la tua rete. I tuoi volumi Lasciami andare oltre un po' di tutto questo. Stai codificando cose difficili per
‫ogni nodo. Vorrei davvero che avessimo
‫un modo per dirgli di non correre... come qui è un vincolo di posizionamento.
‫Non eseguirlo su uno
‫che è dove corrono gli altri.
‫C'è un po' di speranza per te. Ci sono due cose che puoi fare qui. Puoi guardare le preferenze di posizionamento.
‫Se hai i tuoi diversi nodi nelle zone di disponibilità e vuoi semplicemente
‫che il tuo database si assicuri di avere una copia in ogni zona di disponibilità, come un AWS
‫o qualcosa del genere, puoi aggiungere etichette a ciascun nodo. Poi vai qui e dici che preferirei che spargessi questi sulla mia etichetta.
‫Gli dai solo un'etichetta e una preferenza di posizionamento invece di un
‫vincolo, gli consentirà di metterli sui diversi server nelle diverse zone.
‫Ma la cosa interessante qui è che se una zona o un server si disattiva, sarà comunque in grado di riassegnarlo
‫da qualche altra parte.
‫Ora il caso peggiore qui è che due di questi sono in esecuzione sullo stesso server, ma probabilmente non è
‫così male se sei in grado di ... Voglio dire, una cosa potrebbe essere i dati che ottengono i dati
‫da una zona rispetto all'altra. Una volta che hai risolto alcuni di questi problemi.
‫Si.
‫Si. Stai dicendo, quindi posso usare il vincolo e il permesso di perdere uno dei nodi fisici.
‫Si.
‫Il problema qui è che lo stai rendendo un po' più fragile assegnandolo ai nomi
‫host del nodo. Devi alzare gli host specifici. Idealmente, come se ti trovi in
‫AWS o qualcosa in cui puoi creare automaticamente i tuoi server.
‫Quindi, se un server muore, tutto ne crea uno nuovo.
‫Si.
‫Se hai tenuto conto di tutto questo, fantastico. Non c'è niente di sbagliato con i vincoli di posizionamento in questo modo.
‫Significa solo che quei nodi devono essere lì o quei contenitori muoiono.
‫L'altra cosa è che c'è una nuova funzionalità in arrivo nel 19. 03 e il modo in cui impari a conoscere
‫queste nuove funzionalità è se vai a Docker su github e vai alle versioni di Docker-ce. Lo pubblicherò in chat e potrai cercare nuove
‫funzionalità di Swarm. Esiste una nuova versione della funzionalità Swarm che ti consentirà
‫di eseguire repliche ma di non eseguire mai più di X di queste repliche sullo stesso nodo. Funzionalità super interessante e aiuta le persone a garantire che ai loro
‫database non venga assegnato lo stesso nodo. Potresti volerlo controllare come un
‫modo più flessibile per assicurarti che non siano sulla stessa nota.
‫Penso che se scorro verso il basso fino a Swarm.
‫Si. Aggiunto supporto per il numero massimo di repliche per nodo. Questa è una nuova funzionalità nel prossimo 19. 03 che è
‫già in prerelease ora, quindi dovremmo vederlo nelle prossime settimane o mesi.
‫Puoi verificarlo.
‫Questo potrebbe aiutarti con i vincoli.
‫Tutto bene.
‫Voglio andare avanti un po'.
‫Mi dispiace non poter recensire tutto questo. Lo sto spostando in basso.
‫Hai le tue reti, true collegabile e proxy.
‫Sembra tutto a posto.
‫Hai volume, quindi stai usando il driver del volume predefinito in modo che in questo modo significhi che tutti questi dati sono
‫bloccati sul nodo su cui si trova.
‫Se disponi di uno spazio di archiviazione condiviso, potresti prendere in considerazione REX-Ray o un altro driver di volume in modo da poter
‫ottenere tale spazio di archiviazione da quel disco. In questo modo, quando uno dei nodi si
‫guasta e vuole crearlo da qualche altra parte, ricollega il volume del
‫database sull'altro nodo.
‫Tutto bene.
‫Potresti averlo già guardato. Hai certificati traefik. Potrei parlarne per un po',
‫ma finiremo il tempo. Lascerò la roba del certificato di
‫circolazione per un altro giorno. Quindi hai le configurazioni e altri file.
‫Questo è fantastico. Usando tutte le configurazioni.
‫Come dovresti.
‫Non vedo Segreti qui. Presumo che a un certo punto avrai bisogno di
‫Secrets e potresti aver bisogno di conservarli in Secret da qualche parte. Oltre a quel fantastico YAML. Sicuramente uno dei migliori che ho visto.
‫Penso che ci sia molto poco da fare qui.
‫Penso che in termini di renderlo una sorta di utilizzo di tutte le funzionalità perfette. Il modello è una cosa. Considerando diversi driver di
‫volume e considerando la nuova funzionalità. Se
‫non sono le preferenze di posizionamento, la nuova funzionalità per il numero massimo di repliche per nodo.
‫Grazie per la visione.
‫Puoi fare clic su ISCRIVITI E sulla campana di notifica per ricevere un avviso quando vado in diretta, così puoi unirti e
‫porre le tue domande su Devops e Docker.
‫Puoi guardare alcuni dei miei altri video laggiù e puoi fare quello che sto per fare e andare a fare un
‫pisolino.