‫Tutto ok. In queste ultime due lezioni hai
‫iniziato a vedere tutte le diverse aree di Kubernetes che si
‫sta espandendo, giusto. Se in qualche
‫modo la pensi come un piccolo globo centrale solo dei
‫binari e dell'infrastruttura di base
‫di Kubernetes, gli anelli continuano a diventare sempre più grandi,
‫giusto. Con
‫Ingress, modello Operatore e definizioni delle risorse personalizzate.
‫Diventa sempre più grande.
‫Ora, voglio parlarti di come sta
‫diventando ancora più grande. In realtà, questa è probabilmente l'area in cui
‫è un po 'folle.
‫Questo è nell'area delle opinioni su
‫come distribuire lo YAML per queste risorse, giusto.
‫Finora hai visto applicare il kubectl.
‫Bene, questo ti farà iniziare e probabilmente ti farà passare attraverso
‫il tuo primo schieramento di un orchestratore di
‫container, giusto. Avrete ... indipendentemente
‫dal fatto che tu stia usando Swarm o Kubernetes,
‫otterrai quel YAML e avrai un repository, e lo memorizzerai lì,
‫e questo avrà senso.
‫Una volta che inizi a espanderlo, hai squadre,
‫autorizzazioni e diversi tipi
‫di autorizzazioni e persone che devono
‫governare o approvare le cose, tutto diventa più complicato.
‫Cosa è successo in questo mondo di come distribuire
‫le tue app su Kubernetes, ed
‫è sostanzialmente di questo che si tratta. Parleremo del fatto che ora
‫ce ne sono oltre 60, beh davvero, ce ne sono 80,
‫ma molti di loro non sono più progetti reali o
‫sono morti o archiviati.
‫Ma ci sono almeno
‫60 modi per aggiungere strumenti su Kubernetes
‫semplicemente per distribuire le tue applicazioni su Kubernetes.
‫Ci sono molte opinioni, giusto.
‫È qui che iniziano a emergere le opinioni
‫su come dovresti farlo. Tutto da Jenkins X a Helm
‫e oltre. Ci sono
‫tutte queste diverse cose e opinioni su,
‫beh, Kubernetes non è un'infrastruttura supponente, quindi abbiamo bisogno di opinioni per
‫guidare le persone attraverso il processo
‫di distribuzione e aggiornamento delle loro app.
‫Quindi, tutti ne hanno uno. Se hai letto
‫qualcosa su come farlo in Kubernetes, probabilmente
‫avrai sentito parlare di Helm. Il timone di Kubernetes
‫è essenzialmente Kubernetes per i container. Helm è di fatto il
‫modo in cui
‫tutti cercano di creare modelli e utilizzare standard
‫di templating per distribuire app di terze parti
‫o creare grafici Helm personalizzati.
‫Ecco come si chiamano i grafici.
‫È essenzialmente uno YAML basato su modelli, ma consente
‫a Helm di creare o sputare
‫lo YAML che andrà quindi nel tuo cluster Kubernetes
‫per te. Ma non è l'unica opinione, giusto.
‫Ho detto che ci sono più di 60 almeno l'ultima volta che guardo.
‫In realtà c'è un foglio di Google che ho inserito nei
‫link di riferimento. È un po 'obsoleto, ma è l'ultimo elenco
‫noto di tutti i luoghi in cui è possibile
‫trovare questi diversi modi di distribuzione. Docker stesso ha una propria opinione
‫molto interessante, soprattutto se si vuole essere strettamente
‫legati all'ecosistema Docker. Questo
‫è Compose su Kubernetes.
‫Se hai Docker Desktop, oggi puoi
‫abilitare Kubernetes, cosa che probabilmente hai già fatto per
‫questa parte del corso. Puoi usare la distribuzione dello
‫stack docker e invece di andare a Swarm, puoi
‫inviarlo a Kubernetes.
‫Se vai a guardare il comando deploy stacker
‫docker e cerchi l'aiuto per questo, vedrai che
‫c'è un'opzione lì per specificare l'orchestrator
‫che vuoi usare. In effetti, nelle
‫impostazioni di Docker Desktop, puoi dire che preferisce o predefinito a
‫Kubernetes per i comandi di distribuzione dello stack.
‫È piuttosto interessante perché pensavo che Compose YAML fosse
‫diverso da Kubernetes YAML.
‫Bene, questo è ciò che fa Compose on Kubernetes ora.
‫È essenzialmente uno strumento di terze parti.
‫È un modo supponente, da Docker, come distribuire,
‫interpretare o tradurre tecnicamente lo YAML di
‫Compose, il formato Compose, nel formato
‫YAML di Kubernetes.
‫Quindi, ho messo un link qui per
‫farti controllare se sei qualcuno che considererà Docker Enterprise
‫come il tuo strumento aziendale per Kubernetes e Swarm
‫e Docker in generale.
‫Quindi, dovresti assolutamente provarlo perché è pronto
‫all'uso. Una delle cose belle
‫di questa funzione è che il flusso di lavoro
‫rimane super semplice. Fondamentalmente, stai usando
‫il tuo Compose YAML in tutta la pipeline e puoi usarlo
‫in Ops e Dev. Non ti obbliga
‫a dire, OK per gli sviluppatori, devi avere YAML
‫per Compose e per produzione e server, devi avere questo
‫YAML Kubernetes e non sono compatibili, giusto.
‫L'idea con Docker era che pensavano che fosse
‫troppo complicato. Semplificiamo.
‫Usiamo solo uno standard YAML per l'intera pipeline
‫di controllo.
‫E mi piace. Il problema è
‫che non supporta tutto ciò che Kubernetes può
‫fare sotto il sole, giusto. Voglio dire, ovviamente, abbiamo
‫una singola pagina nei documenti Docker per elencare tutte le
‫funzionalità di un file Compose. Ma il Kubernetes YAML
‫è così complesso che dobbiamo scavare in più comandi e
‫riferimenti API e tutto il resto, giusto.
‫Quindi, chiaramente, non può assolutamente fare tutto.
‫La cosa bella è sul sito web Compose
‫for Kubernetes, di cui parlano in GitHub le diverse
‫funzionalità che supporta.
‫È la regola 80/20 lì.
‫In altre parole, supporta il 20 percento delle funzionalità
‫di Kubernetes di cui probabilmente l'80 percento di noi ha bisogno.
‫Quindi, puoi iniziare con quello e vedere se quel flusso di
‫lavoro funzionerebbe per te. Un'altra cosa carina
‫è alla fine del 2018, sono open source che
‫compongono su Kubernetes in modo da poterlo ora implementare su
‫qualsiasi infrastruttura Kubernetes che possiedi, e funziona solo come
‫una sorta di interprete. Si traduce ogni volta
‫che usi il file Compose da Docker e usando
‫i comandi Docker, connetterà il tuo cluster Kubernetes
‫per te, lo tradurrà automaticamente in Kubernetes YAML
‫e via. In realtà,
‫a quel punto, puoi davvero ignorare molti YAML di Kubernetes
‫per le tue applicazioni. Sai, forse usi
‫Kubernetes YAML per cose infrastrutturali che non
‫stai implementando ogni giorno. Ma forse per i
‫tuoi sviluppatori per rendere più semplice la scrittura di Yose Compose
‫e per rendere le cose più veloci in produzione, scegli di utilizzare
‫Compose su Kubernetes come flusso di lavoro.
‫Quindi, forse usi le carte Helm,
‫che sono una specie di standard concorrenziale per la
‫tua infrastruttura principale. Perché la cosa su
‫Helm è che è pronto all'uso con molti di questi modelli
‫di grafici in modo da poter distribuire la
‫registrazione di Prometheus o Elasticsearch con ELK o qualcosa del genere.
‫Verrà fornito con quei modelli pronti all'uso che
‫ti consentono di iniziare più velocemente.
‫Inoltre, ricorda che questi sono tutti opzionali, giusto.
‫Puoi fare Kubernetes con lo YAML standard con cui
‫hai giocato finora, e va bene.
‫Non richiede queste altre cose.
‫Sono solo strumenti di terze parti opzionali.
‫Tradizionalmente, man mano che il team cresce, quando
‫si ottengono più cluster Kubernetes di produzione e
‫vi sono più team coinvolti, allora tutto diventa più
‫difficile e probabilmente si finirà con più
‫di una soluzione. Potresti finire con Helm su alcuni cluster.
‫Potresti finire con Compose on Kubernetes per i tuoi sviluppatori
‫o qualcosa del genere.
‫Oppure, uno di questi altri oltre 60
‫strumenti nell'ecosistema.
‫L'ultimo punto è che, dal momento che Helm è davvero il leader
‫in questo spazio in questo momento, che
‫quasi ogni distribuzione lo usa, o lo supporta, o addirittura viene
‫fuori dalla scatola. Considera solo che
‫quando stai guardando questi strumenti probabilmente non puoi evitare Helm
‫in un ambiente di grandi dimensioni.
‫Dovrai solo usarlo.
‫La cosa bella è che al giorno d'oggi è il 3. 0 e che ci
‫sono molte più semplici opzioni di distribuzione
‫nel 3. 0 contro 1. 0 e
‫2. 0. Quindi, le cose stanno
‫migliorando e diventando sempre più facili. Molti di questi strumenti di
‫distribuzione ti stanno davvero aiutando a modellare il tuo YAML in
‫vari modi. La stessa
‫Kubernetes non ha avuto nulla da molto tempo.
‫Nelle ultime versioni, ora è uscito con qualcosa
‫chiamato Kustomize con un K.
‫Quando inizi a vedere quella parola con una K, sai che
‫è una caratteristica speciale.
‫Ti permette di fare cose simili a Helm e
‫queste altre soluzioni di distribuzione, ma non
‫è così potente come
‫Helm, giusto.
‫Quindi, Helm è ancora il leader.
‫Kustomize è una sorta di nuovo bambino sul blocco, ma è pronto
‫all'uso con tutto ciò che fai in Kubernetes.
‫Il comando kubectl lo supporta.
‫In realtà quello che sta facendo è
‫prendere, invece di uno YAML basato su modelli, è semplicemente prendere
‫YAML che hai già che è lo standard Kubernetes YAML,
‫e puoi quindi prendere quel file e quindi eseguire
‫qualcos'altro sopra e cambiarlo con una sostituzione di sorta.
‫Un po 'simile a come facciamo in Swarm.
‫In realtà abbiamo in Swarm e Compose, abbiamo l'override
‫di file e cose del genere.
‫Ora hanno questo pronto all'uso.
‫Ha molte funzionalità.
‫Penso, in più o in meno, non è del tutto lì in termini di
‫set di funzionalità di ciò che Helm ha, ma almeno
‫viene fuori dalla scatola.
‫Ricorda, se hai Docker, l'ultima
‫versione, 19. 03 o più recente
‫di Docker, ora ha il comando secondario dell'app docker,
‫che fa il proprio modello di Compose
‫YAML ed è davvero paragonabile a questa opzione personalizzata
‫per Kubernetes. Ancora una volta,
‫se hai intenzione di seguire la traccia Docker e
‫prenderai in considerazione Docker Enterprise o ti piace davvero il modo in cui
‫Docker si concentra sul flusso di lavoro degli
‫sviluppatori, esamina il comando secondario dell'app docker e anche il repository dell'app
‫docker, che Metterò qui le risorse.
‫Perché hanno la documentazione su come è
‫possibile utilizzare Compose YAML, estrarre cose come variabili di
‫ambiente e altre cose. Impacchettalo in un'unica
‫immagine e spedisci il tuo YAML come immagine.
‫Ciò significa che ora puoi eseguire la versione del tuo
‫YAML e distribuirlo con una sola riga senza
‫dover fare come tirare giù lo YAML e quindi digitare lunghi comandi.
‫È un modo piuttosto interessante per farlo.
‫Sta usando qualcosa di nuovo chiamato standard CNAB, che
‫non entreremo qui, ma è C
‫N A B.
‫È stato un annuncio che Docker e Microsoft hanno
‫fatto nel 2018.
‫Puoi controllare tutto sul sito Web dell'app
‫Docker nelle risorse. Ancora una volta, tutta questa
‫roba riguarda i modi opzionali di terze parti per personalizzare ed
‫estendere lo YAML predefinito per rendere più facile per il tuo
‫team mentre cresci.