Ciao a tutti.
E bentornati.
Nel video di oggi parleremo di un argomento molto interessante, ovvero l'orchestrazione
dei container.
Ora, l'orchestrazione dei container riguarda la gestione del loro ciclo di vita,
soprattutto in ambienti ampi e dinamici.
Ora, questo può essere spiegato meglio con una piccola dimostrazione in cui sono presenti tre macchine virtuali.
Quindi avete una macchina virtuale, una macchina virtuale, due, una macchina virtuale tre, e avete
un contenitore di server web, un contenitore di server app nella macchina virtuale uno, e lo stesso con la macchina
virtuale due.
Si dispone di un contenitore server web e di un contenitore server app.
Ora, se si ha un ambiente molto piccolo come questo, si può procedere ad avviare il contenitore manualmente.
Ma ci sono molti altri aspetti oltre all'avvio del contenitore.
Uno di questi è il monitoraggio.
Supponiamo quindi che questo specifico contenitore di server web si sia guastato e, affinché l'ambiente di produzione
funzioni perfettamente, è necessario avere un minimo di due contenitori di server web sempre attivi e funzionanti.
Ora, è successo che l'avete installato e il container del server web è andato in tilt.
Quindi la domanda è: chi monitorerà questo specifico contenitore di server web?
Inoltre, lo script di monitoraggio dovrebbe avere un meccanismo basato sugli eventi, in modo tale che se il container
del server web si è spento, riavvia il container o, per qualche motivo, se il container non si riavvia, lo script dovrebbe
avviare automaticamente un nuovo container del server web nella macchina virtuale.
Tre.
Questo è un semplice esempio che può essere realizzato con l'aiuto dell'orchestrazione dei container.
Ora, l'orchestrazione dei container può essere utilizzata per eseguire molte attività.
Alcuni di questi includono il provisioning e la distribuzione di container tra le macchine virtuali.
Supponiamo di avere 100 macchine virtuali e di voler distribuire i container su di esse.
È quindi molto difficile farlo manualmente.
Quindi lo strumento di orchestrazione dei container può farlo facilmente.
Il secondo è il ridimensionamento o la rimozione dei contenitori per distribuire uniformemente il carico delle applicazioni.
In questo modo è possibile spostare i contenitori da un host all'altro in caso di carenza di risorse.
Supponiamo che un raggio uno abbia due contenitori.
Tuttavia, la VM ha una risorsa molto breve.
Ci sono solo 50 GB di RAM, che sono disponibili.
Quindi, lo strumento di orchestrazione dei container può spostare il container da quella macchina virtuale a
una macchina virtuale molto più vuota, con risorse migliori e disponibili.
Quindi è possibile farlo con l'aiuto di uno strumento di orchestrazione dei container.
L'orchestrazione dei container può anche eseguire il bilanciamento del carico e le funzioni di scoperta dei servizi tra i
container.
Può anche monitorare lo stato di salute dei container e dell'host.
Ora, ogni volta che si ha un'orchestrazione di container, possono verificarsi molte configurazioni
errate.
Supponiamo di aver definito un requisito nell'orchestrazione dei container, che prevede
che almeno due container web server siano sempre in esecuzione.
Ora, un'orchestrazione di container può lanciare i due container del server web nella stessa macchina
virtuale.
Sebbene siano disponibili tre macchine virtuali, il container del server web viene lanciato in una sola macchina virtuale.
Se entrambi si trovano nella stessa macchina virtuale, si verificherà un problema di risorse
in caso di aumento del traffico di produzione.
Il secondo è che non è altamente disponibile.
Se la stessa macchina virtuale si guasta, si guastano entrambi i container.
Quindi è necessario avere un buon insieme di requisiti e lo strumento di orchestrazione dei container deve anche
essere intelligente in modo tale che se lo strumento di orchestrazione dei container ha una definizione che
prevede che due server Web siano sempre in esecuzione, dovrebbe essere intelligente
dividere il container del server Web tra le macchine virtuali in modo da bilanciare il carico e garantire l'alta
disponibilità.
Ora, vi fornisco rapidamente un esempio di uno strumento di orchestrazione dei container chiamato X.
Quindi X è il servizio di orchestrazione specifico per noi.
Ora ha una funzione di posizionamento delle attività.
Ora, il posizionamento dei compiti fa questo.
È possibile utilizzare vari vincoli, come la zona di disponibilità o il tipo di istanza, per suddividere i container tra le macchine virtuali.
Quindi, se avete familiarità con noi, diciamo che avete una macchina virtuale uno e una macchina virtuale
due, ed entrambe si trovano nella stessa zona di disponibilità.
In questo caso, se avete il container del server web uno nella VM uno e il container del server web due nella VM due, anche se potrebbe
essere buono in termini di bilanciamento del carico, ma in termini di tolleranza ai guasti, non è buono
perché entrambe le VM si trovano nella stessa zona di disponibilità.
Quindi è necessaria una sorta di intelligenza che permetta di suddividere un contenitore di server
web tra le istanze in una zona di disponibilità diversa.
Pertanto, se un singolo CA si guasta, ciò non dovrebbe influire sulla vostra applicazione.
Anche questa è una grande capacità di ICS.
Quindi, tornando alle soluzioni di orchestrazione dei container disponibili, ci sono molte soluzioni di orchestrazione
dei container disponibili sul mercato.
Alcuni di questi includono Docker Swarm, Kubernetes, che è uno dei più popolari
nel settore.
Avete i miscelatori Apache.
Avete anche il servizio di container elastici, che è un punto a favore.
Ora, oltre a questo, sono disponibili anche diverse piattaforme di orchestrazione dei container, come ICS.
Quindi, fondamentalmente, Kubernetes è, se avete lavorato, piuttosto complicato.
E gestire Kubernetes in un team di, diciamo, due o tre DevOps può essere un po' impegnativo, soprattutto se l'ambiente
è grande.
Quindi ci sono alcune piattaforme come X, che è come un Kubernetes gestito.
Quindi si occupa della gestione di Kubernetes e voi vi occupate del resto.
Quindi è disponibile anche qualcosa di simile.
Quindi, prima di concludere questo video, facciamo una cosa.
Permettetemi di mostrarvi una rapida dimostrazione relativa all'orchestrazione dei container e prenderemo l'esempio di
Docker Swamp per capire come le soluzioni di orchestrazione dei container aiutano esattamente.
Ora sono nella mia classe e se faccio un servizio Docker LS vedrete che ho un servizio chiamato
Hello World, che utilizza l'immagine del motore X e ha una replica di uno su uno.
Attualmente la modalità è replicata.
Ora, se eseguo un servizio docker, PS Helloworld, ciò che mostra è che prima è successo
un container specifico, lanciato in un nodo o in una macchina virtuale chiamata Swarm zero
due.
Ma per qualche motivo questa macchina virtuale ha smesso di rispondere.
E poi lo strumento di orchestrazione ha avviato questo contenitore specifico in una macchina virtuale diversa,
chiamata Form zero tre.
Quindi ha la capacità di monitorare se l'applicazione o il contenitore è in esecuzione o meno.
E se non è in esecuzione, la avvierà automaticamente in un'altra macchina virtuale disponibile.
Si tratta quindi di una situazione molto simile a quella di cui stavamo discutendo.
Supponiamo che un contenitore di server web abbia smesso di funzionare in un VMM e che lo strumento di orchestrazione
avvii automaticamente il contenitore di server web in un'altra macchina virtuale.
Quindi facciamo una cosa, proviamola.
Accederemo al server swarm zero tre e fermeremo manualmente il contenitore in esecuzione
nello swarm zero tre.
Poi vedremo se lo strumento di orchestrazione dei container, nel nostro caso Docker
swarm, è in grado di rilevare che questo specifico container ha smesso di funzionare e di lanciare nuovamente un
nuovo container.
Quindi proviamo.
Quindi sono collegato a questa macchina 103 su cui è in esecuzione il nostro servizio.
Bene, questo è il servizio in esecuzione.
E se vedete che lo stato è alto.
Quindi facciamo una cosa.
Fermiamo qui il demone Docker.
Va bene.
Quindi questo è il caso peggiore.
Potrebbe quindi accadere che il server stesso abbia smesso di rispondere e si sia spento.
E ora cosa succede?
Questa è l'applicazione in esecuzione.
Ora, dato che abbiamo interrotto il servizio Docker, la nostra applicazione sarebbe stata interrotta.
Ma ora eseguiamo lo stesso comando, che è il servizio Docker.
Ciao mondo.
Quindi, dopo aver rilevato che il contenitore all'interno dello swarm zero tre non è in esecuzione, ha
avviato automaticamente il contenitore nel nodo dello swarm zero uno.
Se faccio un pezzo di docker, si dovrebbe vedere che c'è un contenitore attivo e funzionante, che proviene
dall'immagine Engine X.
Quindi lo strumento di orchestrazione dei container può rilevare automaticamente se il container è attivo o meno.
Se non è attivo, può riavviarlo o avviare quel contenitore specifico in un nodo
diverso.
Questa è una delle funzionalità di uno strumento di orchestrazione dei container.
Ci sono molte altre funzionalità.
Ma per darvi un'idea, questa è la dimostrazione che ho deciso di fare con questo video specifico.
Questo è il quadro generale dell'orchestrazione dei container.
Spero che questo video sia stato istruttivo per voi e vi aspetto nel prossimo video.