Press "Enter" to skip to content

GOTO 2018 • Kubernetes-ize your Java Application • Arun Gupta


[Musica]
grazie mille grazie, ti conosco
avere una scelta tra cui scegliere tante altre
sessioni ma sono contento che tu scelga il mio così
grazie mille meno persone mi chiedono
riguardo a cosa sono questi baffi per questo
baffi è baffi novembre o
Movember è una dichiarazione per aver detto
quello
troppi uomini stanno morendo giovani così tanto
la salute delle donne è importante per gli uomini
la salute è altrettanto importante così così
assicurati di riposare abbastanza da assicurarti
mangia sano assicurati di allenarti
regolarmente in particolare per i programmatori
il nostro stile di vita è molto sedentario, quindi se
c’è un uomo nella tua vita che conosci
te stesso tuo padre tuo padre tuo
partner a tuo fratello incoraggiarli a farlo
vivere in modo sano quindi è una specie di mia 30
secondi di messaggio che voglio dire
tutti torniamo alla vita reale così
questo discorso riguarderà i kubernetes
dimensionare la tua applicazione java Sono un Java
lo sviluppatore è uno sviluppatore Java per molti
molti anni in realtà mi sono unito a Sun
Microsystems indietro quando stavamo rilasciando
JDK 1.2 come sviluppatore Java di cosa si tratta
che devo fare agli occhi di Kubernet
applicazione sai che entra in gioco il mio capo
la mia stanza Ehi, questa nuova cosa è Cuban
arriva confezionato a questa applicazione
e distribuirlo in un kubernetes
architettura quindi cosa devo fare così è
una sorta di mio viaggio su come vedo una sorta di
il flusso simile a questo è aperto
fonte github repo su campioni AWS
kubernetes per lo sviluppatore Java quindi
il nome è molto intuitivo in questo senso
tutto quello che farò ci sono
assolutamente nessuna diapositiva sta per essere
camminato attraverso questo repository Github
essenzialmente così se guardi il tavolo
dei contenuti qui sto andando rapidamente a piedi
attraverso quale sia la mia applicazione di base
l’applicazione è per scopo molto semplice è
solo un’applicazione di avvio primaverile che
ritorna Hello World che è tutto
oh questo è tutto ciò che sai e tu
può imitare il tuo server complesso
applicazione da esso se si desidera quindi
Parlerò del viaggio su come andiamo
attraverso kubernetes dimensionando il tuo java
applicazione a cosa è richiesto
docker pacchetto la tua applicazione quali sono
le mie diverse opzioni come sviluppatore Java
cosa devo fare per creare un
kubernetes si manifesta attorno ad esso e come
distribuisco la mia intera cosa come un
applicazione allora abbiamo parlato di a
un po ‘ di te lo sai come Java
sviluppatore sono abituato a strumenti come
IntelliJ Eclipse NetBeans esegue il debug del mio
domanda come li porto
paradigmi sai come sono carbonato
ridimensionando la mia applicazione essenzialmente
parleremo in particolare da Java
prospettiva e quando stai creando
applicazione basata su micro-servizi
davvero bisogno di ridurre le dimensioni dell’immagine
quindi pagheremo un po ‘di speciale
attenzione a come tagliare l’immagine
dimensione là in particolare con
caratteristiche di iniziare con jdk 11 in poi
o 9 in poi in realtà ma ora 11
in sostanza, parleremo di come si fa
migrare la tua applicazione da dev a
messa in scena per pungolare quelle diverse fasi
parleremo un po ‘di come si fa
creare un cluster Kubernetes su AWS per
quello e poi dipenderà dal
tempo verso la fine parleremo un po ‘
un po ‘sulle tue preoccupazioni trasversali
come monitorare le metriche che registrano Canary
schieramenti a B blu-verde qualunque sia il nome
lo chiami così parleremo un po ‘
un po ‘per quello e poi l’ultima cosa
sarebbe ovviamente un po ‘ circa
eseguire una pipeline di distribuzione non solo
sul tuo laptop locale dove posso vedere
feedback rapido ma possibilmente eseguendolo
sulla nuvola così bene quindi questo è
praticamente il flusso del repository qui come
bene e sto andando letteralmente
camminare attraverso uno per uno copia incolla il
codice che dovrebbe funzionare davvero se lo fosse
non funziona, questo è un problema che conosci
quindi più che incoraggiarti a file
problemi di inviare richieste di pull alcun modo che
puoi contribuire a sapere tutto
è il benvenuto essenzialmente così la mia domanda
è abbastanza semplice
è una semplice applicazione di avvio a molla quindi
Ho intenzione di accendere il mio IntelliJ qui
mentre esce è uno stivale a molla
l’applicazione non fa altro che restituire a
semplice ciao così host port e slash
ciao okay fammi camminare attraverso il
applicazione qui così ecco la mia sfumatura
controller e come puoi vedere è a
semplice applicazione Springwood
ritorna ciao quindi niente di eccezionale
se guardi, dice Palm D’Or XML
è di nuovo uno standard per la mappa map XML
qui sto usando Spring Boot Start o Web
Ho un buon plug-in di musica di primavera che
mi consente di eseguire l’applicazione nel mio
console e ho un plug-in jib maven
qui di cui parlerò un po ‘
più tardi e questo è in un profilo separato
quindi ignora quel profilo per un secondo ma
per tutti gli scopi pratici questo è molto
applicazione Java standard come te
inizierà con così ora vado in
la mia console qui bene prima di tutto se io
torna al repository qui il codice sorgente
è nella directory dell’app in modo da guardare
app e questo è dove tutto il mio codice sorgente
è laggiù e questa è la directory
che ho mostrato anche in IntelliJ, okay
quindi sono nella directory dell’app che è
kubernetes per l’ app per sviluppatori Java e
tutto quello che dirò è lo stivale primaverile di Maven :
corri okay, vediamo un po ‘cosa sono i miei
il comportamento dell’applicazione sembra iniziare
con almeno così accende il mio
applicazione
sai scaricare Internet se necessario
e poi dirò arricciare bene il
l’applicazione è in esecuzione in locale sulla porta
8080 e holo è l’URL per il
l’applicazione se faccio ciò restituisce appena
una risposta ciao molto semplice molto pulita
risposta e l’applicazione è
intenzionalmente molto semplice perché il
l’intero punto è mostrare il viaggio da
da lì in poi sai di essere il
esperti in materia per come il tuo
l’applicazione sembra quindi torniamo indietro
qui per un secondo e termino il mio
applicazione in modo che possa liberare il mio
porta qui ok, quindi è molto semplice
passo qui la prossima cosa che voglio fare è
Voglio iniziare la conversione di questa immagine di un
Immagine Java in un pacchetto più scuro ora o
immagine più scura ora va bene così come faccio a prendere
quello e quali sono le mie diverse opzioni
bene posso usare ci sono strumenti chiamati come
docker maven plug-in o Gradle maven
plug-in Grader docker
quelli sono i plugin che si bloccano in
il tuo mixer zampa ora e puoi legare il
fase e l’obiettivo insieme così anche se
dici pacchetto Maven come parte del
pacchetto Maven richiamerà che
obiettivo particolare come sai in caso di
un plug-in maven docker che costruirà il
immagine docker e genererà il
immagine docker
come parte della tua stessa applicazione così
mi vedi vincere pacchetto e se tu
specificare un profilo a seconda se lo è
specificato nel profilo o nel principale
forma XML è possibile generare un’immagine più scura
proprio lì in sé
Allo stesso modo funziona per Gradle così bene
questo è un approccio all’altro approccio
che ho visto i clienti che usano tutto il
il tempo è in realtà pochi mesi fa alcuni
settimane fa, piuttosto, ho fatto un sondaggio che ho chiesto
come gli sviluppatori preferiscono generare
la loro immagine più scura c’è una finestra mobile
plugin c’è un plugin Gradle
c’è un file di finestra mobile che è una specie di
la sintassi standard o quella finestra mobile
fornisce su come si crea il tuo finestra mobile
immagini a maggioranza schiacciante vorrei
dire quasi il 70% degli sviluppatori
che ho intervistato e loro erano circa 400
più parole a quel sondaggio così erano
circa il 70 percento degli sviluppatori l’ha dichiarato
usa il file di finestra mobile, quindi diamo un’occhiata a
file docker e in sostanza ciò che possiamo
fare da quelle parti, quindi se guardo la mia finestra mobile
file qui così qui mi permetto di chiudere
questi qui così ecco il mio file docker ora
il modo in cui il file di docker è come sei tu
sapere che ha un sacco di istruzioni in
Ecco la prima affermazione in a
il file docker è in genere una riga
che dice ok, c’è la mia immagine di base
quindi ho intenzione di iniziare con la base
immagine e quindi su quella base operativa
sistema costruirò la mia applicazione
ora in questo caso sto usando maven 3.5 JDK
Per prima cosa, la prima è una specie di mia
immagine di base laggiù perché è così
pertinente
bene questo è rilevante perché se io sono
dando che posso letteralmente dare questo docker
file su qualsiasi altra macchina non mi serve
qualsiasi altro strumento di terze parti
erano installati lì perché ora sono
usando Maven come immagine di base stessa così
Potrei letteralmente dire costruire un’immagine docker
e scaricherà l’immagine di base
che include strumenti maven come parte di
quello stesso così mi permette di farlo
pacchetto le mie dipendenze del mio
applicazione indipendente anche dal runtime
tempo di compilazione come parte del file docker
stesso così può facilmente comprimerlo
c’è ora uno dei modi tipici è
che vi se lo si esegue ogni volta
lo gestisci perché la via docker
fornisce la stratificazione dell’immagine che sarebbe
scarica gli artefatti maven tutti i
tempo in modo che potrebbe davvero gonfiare il tuo
costruire tempo essenzialmente così uno dei
i modi in cui ho visto fare persone è
dove possono dire di creare un esperto
repository e rendimi nel mio caso m2
door tarde o GZ quindi ho creato un clean
repository maven e quindi posso solo
copia quel repository di maven nel file
sistema dell’immagine stessa e il
la differenza qui è chiamata come add
il prossimo comando è copia
bene cosa aggiungere lo fa ci vuole em a
door turd o GZ e si espande
si espande automaticamente nella radice
elenco
ciò che copia fa è solo una copia
in realtà non espandere niente di così
a seconda di come sai come stai
strutturando il file docker è possibile
iniziare a sfruttarlo di conseguenza ora io
ho copiato le mie dipendenze di prova
lì poi sto dicendo che il maven usa il
pom.xml proveniente dall’abate de rectory
e fare il pacchetto pulito in modo pulito e
semplice che mi permette di costruirlo ora
in genere il file docker avrà a
single da statement questo ne ha due
da dichiarazioni e che è chiamato come a
file di finestra mobile multistadio e cosa c’è
accadendo qui è sulla linea uno
essenzialmente sto dicendo che qui è il mio primo
stage e il nome è chiamato come build my
la seconda fase inizia davvero dalla linea
otto e là sto dicendo oh utente aperto
JDK 8: otto – immagine JRE ok uno dei
i grandi modelli di design piuttosto anti
i modelli che ho visto sono i clienti
costruirà le loro applicazioni Java e
useranno il JDK aperto come immagine base
o intendo che JDK aperto è solo uno
distribuzione essenzialmente ma useranno
JDK come immagine base hai davvero bisogno
JDK come immagine di base quindi il mio punto qui è
invece di usare JDK come immagine di base prova
usare JRE come immagine di base perché se
stai solo impacchettando un runtime
artefatto che è il tuo file jar tutto te
il bisogno è solo un JRE di cui non hai bisogno
intero kit di sviluppo o quello che sono
essenzialmente e che potrebbe significativamente
ridurre le dimensioni dell’immagine della finestra mobile
stesso così questa è una grande differenza in
termini di dimensioni ed è molto rilevante
in particolare in un mondo di micro-servizi
perché la tua immagine potrebbe essere dinamicamente
scaricato su qualsiasi host in qualsiasi punto di
tempo per cui vuoi essere sicuro della tua immagine
dimensione tipo di soggiorni magra e pulita
questo senso va bene così nel mio secondo stadio
Sto usando JRE come immagine di base che sono
esponendo alcuni porti tutto quello che sto facendo è
la fase di costruzione per copiare l’obiettivo
directory nel mio secondo stadio I
ricordate nella prima fase devo em a
Todd o Jeezy tutti i file di classe ecc
generato là non ne ho bisogno
come parte della mia immagine più oscura così sono
copiare esplicitamente il target generato
file jar nel mio secondo stage che ho creato
il lavoro lì ha impostato alcune opzioni Java
questi sono utili per me quando sto usando
debugging le mie applicazioni più tardi e poi
Ho appena acceso l’ applicazione così a
un paio di punti importanti qui usando
file multi stadio primo stadio per
edificio scartando tutto dal
primo stadio semplicemente selezionando il file jar
copiandolo alla seconda fase e la
seconda fase in particolare di nuovo usando
JRE come immagine di base non JDK che è un
aspetto importante va bene così è una specie di
il comando che possiamo usare qui io
può letteralmente copiare questo comando qui e
se vado alla mia console qui posso solo
dì la creazione dell’immagine docker . Gli do un tag
in questo caso la barra di Aruna Gupta squama
e dico punto che prende punto come il
contesto attuale e ovviamente no
avere m2 punto o punto GZ quindi non spenderò
tempo per creare m2 punto punto o GZ ma
ci sono istruzioni essenzialmente su
come puoi crearti a Todd o GZ qui
quindi posso dire che maven crea un em pulito a
Todd o GZ per me ma una volta ho m
Todd o GZ quindi posso solo creare un
immagine docker molto comoda
quindi questo è un modo per creare dock
questo è il secondo modo di degradare
immagine docker in realtà di cui abbiamo parlato
finestra mobile multistadio plug-in plug-in docker
file e poi il terzo strumento che è
fatto dal team del contenitore Google come
così come Jim Jim è di nuovo collegato come un
plug-in Maven docker e ne ha certo
vantaggi che sono molto rilevanti
in particolare per gli sviluppatori Java perché
prima di tutto non ha bisogno di una finestra mobile
demone quindi nel mio caso, come sapete di docker
il plug-in o la finestra mobile sono sempre disponibili
parla con un demone docker o con un motore docker
in esecuzione sul mio host locale o da qualche parte
qualunque sia il mio client daugher configurato
agli sviluppatori esterni potrebbe non avere un
demone docker in questo senso, quindi è così
dove lo strumento jib funziona molto a portata di mano
non ha bisogno di un demone docker secondo
cosa sai se guardi il
file hawker sai qualcosa
i file potrebbero essere davvero spaventosi , sai
e quanto complesso possa essere il file più scuro
anche se l’intera intenzione e
il design doveva essere semplice ma medico
file potrebbero essere davvero difficile a volte per
scrivi così in quel senso sai se tu
sono affermati o programmatori XML se tu
come il formato laggiù è solo
ti permette di scrivere tutto nel
Formato Palm D’Or XML laggiù e il
terza parte che è in realtà la quarta
parte l’ altra che è molto molto
rilevante è se si capisce come la
le immagini sono a strati sai anche se tu
dare un’occhiata a un’immagine più scura è
essenzialmente un mucchio di strati il molto
il primo strato è un sistema operativo di base
quindi, in cima a quello, hai un JDK
allora hai la tua domanda e così via
e così via, ma ora in un mondo di maven o
goditi il ​​nostro mondo se stai costruendo un
applicazione di avvio di primavera qual è la parte
che cambia di più la parte
cambia di più è il tuo non applicazione
le dipendenze dell’istantanea o l’altra
dipendenze dei file jar così essenzialmente
quello che Jib fa è che fornisce un enorme
vantaggio crea quegli strati dove
c’è un livello per le dipendenze jar
c’è un livello per l’istantanea
dipendenze e c’è uno strato per
le tue classi di applicazione solo così
essenzialmente quando costruisci il
l’immagine sta solo riscrivendo quell’applicazione
livello di classe quelle altre dipendenze se
non sono cambiati li identifica
e lo mantiene esattamente allo stesso modo
significa che ora è quando stai spingendo il
immagine l’immagine è di nuovo spinto al
hub repo docker come un set di livelli così
quando stai spingendo il repository spingendo il
immagine e sai che non lo sei
spingere come un centinaio di megabyte di immagini
ma stai solo spingendo la tua domanda
classi che sono tipicamente in pochi
frammento di kilobyte pure, quindi penso
questo è un grande vantaggio di Jib
essenzialmente così ho visto i clienti che usano
docker maven plugin docker file e jib
in tutti i casi possibili, quindi vedete
non c’è un martello d’oro qui vedi cosa
lavora per te e vedi e poi come te
può effettivamente creare un’immagine per
te stesso ora se do un’occhiata a questo qui
quindi quello che posso fare è nella mia intelligenza
potrei andare al profilo che noi
erano nascosti prima qui è un jib maven
plug-in sto usando la versione zero point
nove punto tre n- tutto quello che voglio dire
specificare è voglio solo utilizzare JDK aperto
otto Jerry come immagine di base di me
facendo un
essenzialmente il mio file docker mi limito a darlo
un’immagine più scura specifichi le mie opzioni l ‘
porti che voglio esporre e lego il
pacchetto per la fase di costruzione, quindi ora posso
tornare qui nel mio terminale in sostanza
Posso dire di aver compilato il jib rocker bill
– P jib e questo userà il fiocco
plug-in Maven e crea l’immagine della finestra mobile
e poi quando guardo il
storia dell’immagine che ti mostrerà
esattamente come viene eseguita la stratificazione
ora questa è una specie di bug nella gemma
stesso perché sta dicendo di recuperare
credenziali di registro per l’ hub di registro
commander docker se non sta costruendo al
motore di finestra mobile locale quello che sta facendo è
in realtà sta costruendo l’immagine ma
sta spingendo l’immagine verso l’hub della docker
direttamente così il plugin del jib ho archiviato un bug
su questo hanno bisogno di fornire un po ‘
un po ‘più di feedback attivo su di esso, ma fino a quando
allora quello che sta veramente facendo è adesso
spingendo l’immagine direttamente usando il
conferenza Wi-Fi al mio hub di docker così
aspetteremo che si completi e poi
torneremo essenzialmente in questo momento
diciamo se la tua immagine è attiva e
correre quello che voglio fare è voglio
creato la mia immagine docker posso copiare questo
comando qui così fammi accendere il fuoco nel mio
Terminale qui, quindi tutto quello che farò è io
voglio eseguire quel contenitore ora il mio java
l’applicazione è impacchettata come finestra mobile
immagine ora sto dicendo container docker
corro che gli sto facendo un saluto di nome
il port forwarding 8080 sul
localhost 8080 nel contenitore e io sono
eseguendolo in modalità distaccata quindi in a
contenitore di sfondo e quindi sto usando
questa particolare immagine, quindi se ho il fuoco in su
gestirà il mio contenitore qui, okay
e ora posso dire i log del contenitore docker
e il mio nome è un saluto che mostrerà
me il contenitore registra essenzialmente e
gli stessi registri che sono stati mostrati nei miei
console per la mia applicazione java sono ora
visibile usando la mia immagine docker stessa così
ora posso dare lo stesso comando qui se
torniamo qui posso dire un curl HTTP
localhost 8080 ciao sto prendendo il
esatta stessa risposta ma questa volta ora
il
la risposta in realtà viene dal più scuro
immagine così il primo passo è ottenere il tuo java
applicazione in esecuzione e in esecuzione secondo passo
è pacchettizzare la tua applicazione java come
immagini più scure assicurarsi che si sta effettivamente
ottenere lo stesso identico risultato ok
quindi quello che farò è che me ne vado
di nuovo qui al mio contenitore i registri sembrano
bene, quindi ho intenzione di rimuovere il
contenitore per liberare la porta qui così
là va via il mio contenitore così come me
terminata la mia domanda la mia Java non può
contenitore docker va via così così
che cosa è il mio adesso se guardo qui
per esempio immagine docker LS afferrare
saluto, ho molti saluti
qui, ma se guardo, dico Aruna
Gupta taglia il saluto e dice l’ultimo
immagine qui va bene se guardo le ultime
immagine questa è circa 490 megabyte ora se
Guardo che è una storia di immagini più scure
[Musica]
saluto se guardo questo
Saluto qui ecco la mia immagine di base qui
che è quindi circa cento megabyte
installazione dell’app apt-get che sai installare
alcuni pacchi qui qui arrivano tutti
del mio JDK circa trecentonove
megabyte e qui è la mia applicazione
qui a sua volta quarantasei virgola otto
megabyte così nel complesso diventa
abbastanza ingombrante ora immagina al volo te
stanno ridimensionando i tuoi microservizi e
in basso e questo 490 megabyte di immagine
deve essere scaricato su un host sul
volare che sostanzialmente aggiunge al tuo servizio
il tempo di ridimensionamento è dove è super
fondamentale per mantenere le dimensioni dell’immagine
davvero piccolo
ora Jerry canine ha introdotto il concetto
di modularità così puoi davvero saperlo
loro hanno fatto quello che hanno fatto
preso il JDK e altri divisi in
più moduli e la tua applicazione
potrebbe essere uno dei moduli e per
esempio se stai scrivendo uno stivale a molla
applicazione di cui non hai veramente bisogno come a
colbaugh o conosci un WT o tipo swing
dei moduli è l’aspetto importante
okay, quindi quello che puoi fare qui è che puoi
usa jdk 11 che è l’ultimo jdk
da oracolo essenzialmente ma e tu puoi
crea un JRE personalizzato di cui non hai bisogno
in piena regola
ri è possibile creare un costume molto JRE
facilmente e per quello che essenzialmente usiamo
due strumenti j-link e app di giada okay così
vediamo come stiamo andando usare quelli
utensili
bene il primo strumento che useremo
è chiamato come app Jade Jaidev è un
pacchetto di strumenti in JDK stesso e tutti noi
stanno dicendo che va bene
Le app Jade stampano le dipendenze del modulo
per la mia app dot jar file va bene questo è il
file jar generato da
Applicazione Singapore Springwood e
primavera da un avvio a molla da solo è
non modulare quindi devo specificare tutto il
i moduli che fanno da boot dipendono davvero
su e questo è l’elenco dei moduli
che dipende ma essenzialmente sono
raccolta selezionando i moduli che sono
davvero necessario per il mio avvio a molla
domanda e poi se ci sono i miei
l’applicazione ha dipendenze così
quelli sono gli unici moduli in particolare
il ruolo delle app di giada è darmi il
lista di moduli che l’applicazione
dipende e quindi sto usando lo strumento
chiamato come J link con J link che sto dicendo
crea un JRE personalizzato per me aggiungendo tutto
questi moduli ora quello che ottengo è un’usanza
JRE che è esattamente sintonizzato per il mio
applicazione al contrario del pieno
GRE a cui non mi importa davvero se
dai un’occhiata al file della finestra mobile qui
per questo motivo ho JRE
quindi tutto quello che sto facendo è invece di usare
maven Apache Apache Maven come base
immagine o aperta JDK Joey è un’immagine di base
Sto usando debian 9 slim ho generato il mio
personalizzato JRE e poi in quello personalizzato JRE
è la mia macchina virtuale, quindi sto usando la mia barra bidimensionale
Java per accendere l’immagine della finestra mobile
essenzialmente o la mia applicazione java bene
qual è la differenza di dimensioni in sostanza
quello che vedi qui è davvero enorme
l’immagine normale era di 490 megabyte
immagine che ho generato utilizzando l’ abitudine
la ciliegia è 162 megabyte, quindi è così
letteralmente meno di un terzo della dimensione
della mia immagine normale quindi raccomanderei
dare un’occhiata a se puoi davvero
mettere a punto le dimensioni dell’immagine della finestra mobile
usando il JRE personalizzato va bene così
il secondo passo è essenzialmente la creazione di un
immagine più scura fuori dalla mia applicazione java
e quindi assicurandosi che l’applicazione
continua a lavorare indipendentemente dal fatto che tu stia usando
docker maven plugin docker file J
qualunque strumento tu stia utilizzando per il pacchetto
l’applicazione ma ora il terzo passo
è davvero per scrivere un manifest kubernetes
per quella applicazione essenzialmente così cosa
Farò è che ho bisogno di un kubernetes
cluster per la mia macchina ci sono a
un paio di opzioni per quello il primo
che è stato prevalente per lungo tempo
è mini cubo, quindi le persone scaricano mini
cubo che ti dà un singolo nodo
cluster di kubernetes sulla macchina ma
puoi ottenere e puoi ottenere molto facilmente
iniziato con quello ora l’altra opzione
è se hai il suo motore sul tuo
installare sulla macchina, ad esempio
questo è un macbook e su un macbook che ho
docker per Mac installa quindi se vedi
la cima qui puoi vederla sì, posso
clicca sulle preferenze
più tardi nella finestra mobile per Mac, sto vedendo questo
la scheda di Kubernetes ora è essenzialmente finestra mobile
usato per avere solo sciami docker come un
motore di orchestrazione ha kubernetes
cotto in l’ultima versione di finestra mobile
così da poter dire di sapere cosa
abilita kubernetes come parte del mio cluster
stesso del mio più scuro per Mac stesso e
ciò che ti dà è di nuovo un singolo nodo
cluster quindi per me voglio dire che non ho usato
mini cubo per diversi mesi se io
ho bisogno di un singolo nodo kubernetes cluster I
basta cliccare letteralmente su abilita
qui si applicano i kubernetes e questo è tutto e
qui puoi vedere che ti sta mostrando
la finestra mobile è in esecuzione e Kubernetes lo è
correndo così posso facilmente iniziare
con un solo nodo kubernetes cluster if
Ho la finestra mobile per Mac o altro
la tua versione parlante locale è una volta
creare un cluster kubernetes quindi il
l’idea è che ora ho bisogno di prenderlo
immagine docker e convertirla in a
kubernetes manifest e quindi distribuirlo
applicazione pensa alla tua applicazione
la tua applicazione è tipicamente multipla
componenti che conosci e poi ciascuno
il componente dovrà avere un kubernetes
manifestare così per la prima volta è buono
per iniziare con manifest di kubernetes
va bene che scriverò a
servizio di kubernetes o kubernetes
distribuzione e ho intenzione di creare quello
manifest ma poi molto presto inizierai
avere
più servizi e multipli
implementazioni e quindi diventa a
sfida come inizio davvero
distribuire più di questi oggetti
insieme come posso portare coerenza
attraverso più di quegli oggetti e
è una specie di sfida che tu
dover affrontare
è lì che caricherà è utile
quindi le carte del timone sono un’astrazione in cima
di più manifesti kubernetes che
fondamentalmente definisce come un kubernetes
l’applicazione dovrebbe assomigliare così tu hai
un’applicazione kubernetes definita come
arte del casco che ha più manifesti
lì dentro diamo un’occhiata a cosa
il mio manifest potrebbe potenzialmente assomigliare
quindi ho intenzione di andare al mio manifest
directory qui in manifest ho un mio
directory di app bene diamo un’occhiata a
prima di tutto conosci un semplice manifesto
ecco un tipico manifest di Kubernet
Sto dicendo che questa è app slash v1 API I’m
definizione del manifest di distribuzione qui
oggetto di distribuzione che è uno standard
kubernetes oggetto su come si crea a
spiegamento in kubernetes I questo
la distribuzione ha alcuni metadati che sto dicendo
Voglio una singola replica di questo
implementazione particolare definisco certo
abbina le etichette che otterremo in a
secondo ma poi nel dispiegamento cosa io
avere un pod che è di prima classe
Il concetto e pod di kubernetes è il più basso
oggetto kubernetes che puoi creare con
te stesso essenzialmente e pod avrà
come uno o più contenitori ora
i contenitori è una parte che abbiamo appena
imparato come parte della creazione di
immagine docker in modo che sia esattamente sorta di
il mio punto di intersezione laggiù ora se
Torno al mio manifest qui, quindi il nostro
distribuzione ho una replica che ho
metadata qui e poi nella specifica del pod
che è chiamato come una specifica pod
essenzialmente posso definire i miei contenitori
e questa è una specie della mia immagine che io solo
creato così una volta che hai il tuo java
l’applicazione pronta ha creato il tuo colore più scuro
immagine spinto a un hub di docker allora tu
può metterlo in un manifest kubernetes
proprio come questo esattamente come mostrato sopra
qui va bene e se ancora una volta eccomi qui
esponendo le mie porte qui 8080 per HTTP ora
ciò che questa distribuzione creerà è a
baccello
a ciascuna scheda viene assegnato un indirizzo IP e
che l’indirizzo IP è effimero quello che
significa è un pod se è terminato su a
macchina e se è iniziata in modo diverso
alla macchina potrebbe essere assegnato un IP diverso
indirizzo ma vuoi essere sub che vuoi
avere alcuni mezzi per poter fare riferimento
quella parte quindi l’indirizzo IP non è il modo
con la quale ti riferirai in modo tale che tu
fai è davvero creare un kubernetes
servizio quindi quello che sto facendo qui è che sono
creando un servizio di kubernetes qui e
in questo sto dicendo e il mio servizio
specifica essenzialmente sto dicendo
selettore è app : saluto e quale app
: Saluto è un paio di valore nome che
è collegato a qualsiasi pod kubernetes, quindi se
Torno di nuovo ai miei baccelli qui e al mio
parti indietro Allego i metadati
qui e nei metadati sto dicendo il
le etichette sono app: saluto quindi niente di
in questo modo crei un kubernetes
distribuzione con una singola replica del
pod con un’app specifica per le etichette :
saluto e poi crei a
servizio di kubernetes e il servizio dice
oh dammi un pod che è quello
un’etichetta particolare non sa chi è
creando quella parte ma è un po ‘scioltamente
architettura accoppiata essenzialmente a nessuno
può creare quella parte ma è altamente
raccomandato che il vostro servizio e
la distribuzione è un po ‘ accoppiata
essenzialmente e poi nel servizio
di nuovo sto dicendo quali sono le porte I
bisogno di esporre se dico di tipo: carico
bilanciatore e ora se il servizio è
distribuito su un provider cloud utilizza il
così il bilanciamento del carico specifico del provider cloud
ad esempio se si distribuisce questo servizio
su AWS creerà fondamentalmente un
istanza di bilanciamento del carico elastico per
stai bene così dal punto di vista dello sviluppatore
il modo in cui funziona è creare un
distribuzione si crea un servizio se tu
vuoi un nome in grado di riferire al tutto
i baccelli e poi dietro la scena il tuo
numero di repliche per la distribuzione
può scalare su e giù ma il tuo
il nome referenziabile rimane esattamente il
stesso e ci sono molti modi per
che quel numero di repliche può salire
e ora puoi impostare la salute
metriche è possibile impostare le soglie CPU
soglie di memoria basate su
le repliche possono automaticamente salire e
giù o è possibile ridimensionarli manualmente
e giù e ci sono modi e
meccanismi nei kuberneti per ridimensionarli
in sé non c’è davvero abbastanza stream Bay come noi
stavano parlando questo è letteralmente fatto per
un servizio è la tua applicazione
tipicamente non solo un servizio
l’applicazione è più servizi così
avrai distribuzioni e assistenza per
praticamente tutti i servizi e questo è
esattamente il ruolo che si gioca molto
bene da un’alleanza è il diagramma del timone così
torniamo qui un’occhiata a dire che il mio
AB questo è nella cartella manifest my
app e qui sto vedendo un po ‘come il mio
applicazione Sembra veramente Va bene così
diamo un’occhiata al punto grafico yeah Mel
per prima cosa si tratta di una sorta di metadata
il grafico stesso versione ecc che tu
voglio specificare qui poi ho un
valori punto Yambol questo è dove io
specificare tutti i tipi di hard coding di
la mia immagine diversa digita le mie porte
numero di repliche tutte quelle informazioni
può essere specificato qui perché
essenzialmente quali sono i timoni
sono manifestati kubernetes templatizzati
quindi se guardo dico modelli ora guardo
per dare il benvenuto alla distribuzione, ad esempio o
compreso lo spiegamento, lo sto ancora dicendo
v1 beta one API è un oggetto di distribuzione
ma ora sto usando il nome del punto di rilascio che
è una coppia di valori nome che viene da
i valori indicano Yama che posso iniziare a definire
quali etichette sono necessarie posso iniziare
mettere le repliche conta in modo simile
se guardo il mio servizio qui servizio
di nuovo ha etichette dei nomi delle versioni esterne
porta interna porta quindi cosa mi dà questo
è la possibilità di specificare tutti i miei
vincoli o hard-coding dei valori
in valori o – sì mal stesso e
quindi riutilizzarli qui così sono
seguendo veramente il principio del DRI di
non ripeterti bene e anche questo
porta molta coerenza a se lo sono
utilizzando più servizi e distribuzioni
attraverso la mia applicazione così ora ho il mio
cluster di kubernetes diamo un’occhiata a
che prima di tutto il cubo Caudill è il
CLI devi solo scaricare la CLI da te
trovare il link per esso da Cuba
kubernetes o io o è possibile installarlo
prepara anche tu una volta installato
la coccola coccola la CLI quindi puoi dire
cubo config ottenere contesto e cosa
Mi sta dicendo che va bene mostrami tutto
il tipo in genere si avrà è un
viene creato più cluster Kubernetes
e in un dato momento lo farai
configura la tua CLI CUD Cube che è
alla CLI per gestire il cluster di kubernetes
così configurerai il cubo di coccole
CLI per parlare con uno dei kubernetes
grappoli e come si identifica
del cluster kubernetes sta parlando
così dici che le coccole del cubo si configgono
contesto mostra il contesto di tutto il
cluster che è stato creato per te
quindi in questo caso ho un cluster e KS
e una finestra mobile per il cluster desktop ora
finestra mobile per il cluster desktop è quella
che abbiamo creato usando la finestra mobile per desktop
quindi se ho bisogno di cambiare il mio contesto così io
posso solo dire che il contesto di configurazione della casella di controllo
e posso dire docker per desktop qui
e di default per mostrarmi la stella
questo particolare spazio dei nomi o questo
nome del cluster particolare che significa il mio
cue cuddle CLI qualsiasi comando che io do
sarà in coda la CLI della quadriglia
reindirizzato a quel particolare cluster
ma ora l’ho cambiato quindi diamo un’occhiata
ottenere di nuovo il contesto ora la stella è arrivata
alla finestra mobile per desktop quindi in pratica cosa
Sto facendo è che sto semplicemente cambiando cosa
il mio cubo coccola CLI sta per essere
parlando sta parlando al mio locale
docker kubernetes cluster locale o è
parlando con il mio gruppo di idee Coburn
è in esecuzione altrove in questo caso
capita di essere in esecuzione sul cloud AWS
va bene, torniamo qui
quindi quello che ho fatto è che ho un kubernetes
cluster Ho Q cuddle CLI configurato
parlare con il cluster di kubernetes giusto
ora ho bisogno di installare il timone nella mia
cluster di kubernetes almeno
la versione 2.0 avrà un client-server
architettura quindi di nuovo hai bisogno di dire
brew install helm CLI in modo da ottenere il
helm CLI qui e poi una volta il tuo cubo
cuddle CLI è configurato per parlare con a
particolare gruppo di kuberneti che dici
helm in esso così installa un lato server
componente nel cluster kubernetes come
bene, quindi hai anche la tua CLI dell’elmo
confidenza configurata CLI Cuddle configurata
hai il tuo aiuto Charlie per andare ora
sei finalmente pronto per distribuire il tuo
l’applicazione va bene, quindi quello che stiamo andando
fare è essenzialmente qui è che sono giusto
andando a dire helm install dammi il
il nome dell’applicazione e manifest tagliano il mio
l’app è dove il mio grafico esiste così sono
andando a prendere quel comando qui tutto ciò che sono
fare è aiutare installare dargli un piano
e char directory già l’app
esiste, quindi quello che faremo è che lo siamo
dirò di cancellare la mia app e lo faremo
purificalo e implementalo
di nuovo così questo prende il mio diagramma del timone che
consiste di più kubernetes
si manifesta e crea tutto il
dispiegamento e servizi parte importante
capire è distribuire tutto il
artefatti insieme lo sai
ti permettono di cancellare tutti gli artefatti
insieme ma a runtime come fanno questi
gli artefatti sono realmente correlati a ciascuno di essi
altro è completamente applicazioni
responsabilità va bene così ora in questo caso
per esempio sta dicendo che va bene
creando la mia app di saluto questo è il mio
spiegando qui questo è i pod qui
questi sono il mio servizio qui, quindi quello che posso
diciamo che il cubo Caudill ottiene le distribuzioni okay così
mi mostrerà il tuo spiegamento e lui
dice che uno dei pod desiderati è uno attuale
è aggiornato uno è disponibile lì
potrebbe dipendere da quanto frequentemente
la tua app sta cambiando quanto frequentemente
sono ridimensionamento su e giù per la distribuzione
questi numeri potrebbero essere diversi, potrei dire
servizio che mostra
me il servizio qui e in caso di
il servizio lo sta dicendo perché hai detto
bilanciamento del carico come esterno e I
riconoscere sì, non è un fornitore di cloud
ma sto schierando il mio servizio su
localhost, quindi esporrò il tuo
servizio su localhost qui essenzialmente
okay e ancora una volta il porto qui è 80
che è in mappatura da 3 0 a 5 8 sul mio
contenitore lì, quindi cosa posso fare qui
è ora vediamo se possiamo dare questo
comando qui così ora sto prendendo il
lo stesso risultato esatto dai miei kubernetes
applicazione quindi il punto che sto cercando
di dire qui è che si avvia per Java
pacchetto di applicazione è una finestra mobile
contenitore ottenere lo stesso risultato esatto da
il pacchetto contenitore docker ha a
kubernetes manifest elmetto grafico e ottenere
lo stesso identico risultato, quindi continui
per assicurarti che la tua applicazione sia
continuare a progredire nella stessa
direzione ora quello che posso fare anch’io sono io
posso andare dal mio intelligente
Ho già impostato un punto di interruzione nel corso
qui ora posso dire correre e posso andare a
di debug ok Ho un profilo già
creato ma essenzialmente ciò di cui ho bisogno
fare è che ho bisogno di creare un profilo a distanza
qui e una volta creo un profilo remoto
queste sono le istruzioni che sono
mostrato per impostazione predefinita e dice
ok, prendi questo comando qui, quindi copia
incolla questo comando e questo è un comando
che avevamo nel nostro file di docker perché
che è una sorta di dove la mia JVM è
interagendo così prendo questo comando messo
nel mio file docker essenzialmente e
ora dice che la mia VM sta ascoltando locale
host e porta 5005 ok, quindi eseguiamo il debug
questo qui
quindi il mio IntelliJ è ora connesso e
aspettando che qualcuno invochi
localhost : cinquemila cinque così vado
torna al mio terminale , invochiamo
questa cosa di nuovo e non appena invoco
ora passa al mio IntelliJ ora questo
è una funzione un po ‘più dettagliata
allora vedrai tutta la tua classe
variabili tutto e puoi iniziare
debugging attraverso il punto di essere
qualunque strumento tu stia usando
nel tuo sviluppo di applicazioni Java
quelli sono tutti completamente e ancora molto
pertinente
anche nella terra dei Kuberneti e lo sono
mostrandoti questo per Kubernetes ma tu
potrebbe certamente fare il debugging a
stadio precedente come se steste facendo
eseguire il debug del contenitore docker stesso ok
quindi ora, in questo caso, ovviamente se guardo
a questo dice che la classe non ha campi così
non mi sta mostrando alcun valore qui ma
quello che posso fare è che posso dire di andare avanti
corri e ottengo il mio risultato di nuovo ciao
Non sono mai stato così felice di vedermi pronto
la mia vita tre volte di seguito va bene
quindi abbiamo preso quella parte coperta e dal
modo tutte le istruzioni sono completamente
dettagliato sul repository Github così nel caso
vuoi seguirlo alla lettera
copia / incolla dovrebbe funzionare sai che sono molto
programmatore pigro che non ricordo
cose che ho appena messo nel github
repo e poi lascia il github repo
mi ricorda di nuovo così ora ho
stato in grado di testare la mia domanda su a
cluster locale il mio prossimo passo è davvero
che va bene ho provato questa cosa su un
cluster a nodo singolo qui sul mio locale
macchina Sono pronto per andare al cloud così
questo significa che ho bisogno di eseguire i miei ID coven
cluster nel cloud bene che puoi
sicuramente scegliere un fornitore di cloud di
la tua scelta lo speriamo certamente
Amazon quindi se stai correndo se vuoi
lì per eseguire il cluster di kubernetes su AWS
sono una varietà di scelte molte delle nostre
i clienti usano i poliziotti che è una comunità
fornito uno strumento con il quale è possibile creare
cluster di Kubernetes su AWS o se tu
non voglio passare attraverso il pesante
sollevamento di creare e gestire a
il cluster di kubernetes da solo è possibile
certamente usare Amazon eks questo è un
cluster di kubernetes gestito questo è un
servizio che abbiamo annunciato di reinventare
2017 e molti dei nostri clienti sono
amandolo così letteralmente tutto ciò che fai
vai alla console di AWS e dici
creare un cluster Kubernetes AW e
voilà, ottieni un gruppo di coven Aires cosa
si ottiene è altamente gestito o pienamente
piano di controllo completamente gestito disponibile
devi ancora collegare il piano dati
ad esso quelli sono i nodi in cui il
i contenitori stanno funzionando essenzialmente ma
è un processo piuttosto semplice e
ben documentato ora nel mio caso ma
anche se no intendo di nuovo come ho detto che sono
molto pigro, quindi non voglio passare
il processo di fare questo attraverso il
ed è divertente quando lo fai per
la prima volta che conosci la console
oh, lo clicco
per questo ma la seconda volta diventa
come oh è molto ripetitivo e lo ero
molto noioso quindi mi piace sempre automatizzare
cose così è qui che lo sgabello chiama
eks cuttle è molto simile al cubo del kernel
come il cartello di eks che crea un e KS
cluster per te
e lui caso cartello è uno strumento creato da
uno dei nostri partner che prenota così davvero
enormi oggetti di scena per loro in modo essenzialmente cosa
si fa è di creare il ich es coccola
strumento e con questo singolo comando tu
posso solo dire che creare coccole
cluster dargli un nome cluster di cui ho bisogno
quattro nodi e in questa particolare regione
e questo è tutto quel comando davvero
crea un intero cluster ETS per te
controllo completamente disponibile altamente disponibile
piano crea anche un piano dati e
li collega al piano di controllo dati
e il tuo cluster è pronto in pochi
minuti praticamente ok ora se torno indietro
qui se ricordi che il nostro cubo è coccolato
configurato per desktop locale qui posso
dite che la carta del cubo otterrà i nodi dice oh
c’è un singolo nodo qui, quindi ora io
posso cambiare il contesto qui, quindi posso dire
ottenere il contesto e posso dire utilizzare il contesto
e posso passare e ho un eks
grappolo pre creato così posso accenderlo
a questo il mio cluster eks ora se dico get
i nodi questo è fondamentalmente mostrando un quattro
nodo di cluster che già creato
Ci OS – va bene così che cosa ci vuole per
cambia la tua app dallo sviluppo in a
testare l’ ambiente di staging nel cloud o
anche una produzione nel cloud così tanto
dei clienti il ​​modo in cui lo fanno
letteralmente cambiano il loro contesto
un cluster in un altro cluster e
ridistribuire l’intera applicazione e il
una parte importante laggiù è letteralmente
ridistribuire l’ intera applicazione perché
tutto quello che hai è che conosci la finestra mobile
l’immagine è la fonte della verità, quindi la tua
applicazione java nell’immagine più scura di te
lo so e questo è esattamente la fonte di
artefatto che viene distribuito attraverso
diversi cluster quindi sei veramente
riducendo il disadattamento di impedenza con
i tuoi diversi ambienti essenzialmente
laggiù ora molti clienti
quello che fanno è personalizzare il
docker immagine il tag etcetera che loro
voglio giocare perché il mio database
l’ambiente è diverso e il mio test e
gli ambienti di staging sono diversi così
tutte queste capacità fanno molto
esiste ma il punto è che tu sei letteralmente
basta cambiare il cluster e ridistribuire il
applicazione un altro strumento che ho visto
i clienti che utilizzano è di hep tio e lo è
chiamato come l’ arco, quindi se guardi l’arco
questo strumento è molto utile in genere
pensato per gestire il tuo disastro
recupero ma essenzialmente ciò che fa
ci vuole un back up dai tuoi kubernetes
cluster puoi fare un backup e poi
puoi ripristinarlo su un altro
cluster quindi è molto utile in sostanza
se pensi ai kubernetes
l’architettura ha un sacco di
componenti stateless come il mio servizio
schieramenti ma tutto questo è
ancora memorizzato in CD che è il mio
database di back-end essenzialmente così che cosa
arco fa è automaticamente prende a
backup del tuo HDD e lo ripristina in a
nuovo cluster quindi è un altro modo in cui noi
ho visto i clienti migrare
tra diversi ambienti
essenzialmente così ancora una volta ho mostrato
qui sai come puoi migrare da
dev to prod puoi controllare la lista di
pod la tua applicazione è attiva e funzionante
quindi quello che posso fare ora posso dire se io
dì la lista del timone
Ho il timone già installato sull’eks
cluster dice che si è tutto quello che ha
sistema di installazione così ora posso dire installare
la stessa identica applicazione è ora
essere schierato sul mio cluster eks
in esecuzione su AWS quindi se dico cubo Caudill
ottenere assistenza e dispiegamenti ed è
mostrandomi il mio servizio e implementandolo
sta mostrando un sacco di altri come
bene ma allora posso dire
il nome dell’etichetta equivale al saluto
in realtà le implementazioni hanno solo quello
Etichetta Oh hai scritto indietro
sì, l’etichetta dipende se sei
distribuendolo come un aiuto grafico l’etichetta
potrebbe essere un po ‘diverso quindi se possiamo
quello che possiamo fare è descrivere il cubo Caudill
[Musica]
dispiegamenti il ​​mio saluto e se saliamo
qui le etichette sono il grafico OC uguale all’app
è quello che ha creato il rilascio
c’è un diverso set di etichette qui
oh ecco qua Oh app è uguale alla mia app :
Saluto qui così oh non vorremmo scavare
troppo in esso, ma la parte chiave è ora
perché ho detto type: load balancer in
questo caso creerà un ELB ELB
ci vogliono circa due o tre minuti per essere
fornitura e pronto per essere utilizzato
ma essenzialmente una volta che è stato schierato il
la stessa identica applicazione è ora accessibile
sul mio bilanciamento del carico elastico qui ok
quindi cambiamo marcia sapendo che abbiamo parlato
riguardo alla mia figlia, tu sai java
immagine docker dell’applicazione timone kubernetes
sai come distribuirlo in un cluster
migrando attraverso i cluster ora ciò che io
voglio fare è voglio essere in grado di I
creare una nuova versione della mia applicazione
come faccio a portare quella nuova versione del
applicazione nel cluster come faccio
il mio test canarino come faccio a essere mio
testare là e quando sto facendo
test canarino voglio indirizzare solo il 5%
del traffico alla mia nuova versione non a
bel po ‘, ma questo è dove il concetto
di rete di servizio è utile e il
la rete di servizio più popolare è essenzialmente
è per voi oggi che vediamo molti dei nostri
i clienti che utilizzano e il modo in cui lavora è
si basa davvero sul concetto di a
sidecar ricorda che ne abbiamo parlato a
un baccello
c’è un singolo contenitore è lì
può avere uno o più contenitori così da te
sapere nel mio pod c’è un’applicazione
contenitore e quello che faccio è come ogni pod
si sta creando che potrei iniettare a
contenitore del sidecar ad esso e quel sidecar
fondamentalmente il contenitore per sto è usato
su Y e Y è un CNC F
progetto ed è stato contribuito con l’ ascensore
così ascensore ha usato il non- vo per a
mentre e sono in grado di fare fino a due
milioni di richieste simultanee al secondo
essenzialmente usando sul perché e questo è il
capacità c’è una scala che porta
si tratta di un ingombro di memoria molto piccolo
e ho scritto in C ++ così non è così
aggiungere un sovraccarico enorme ma essenzialmente per
immagina ogni pod nel tuo cluster che è
per essere creato ha un sidecar poco saggio
iniettato bene ora il contenitore in un pod
possono parlare tra loro perché loro
condividere il file system di rete tutto
che possono parlare tra loro usando
localhost quindi ora immagina che ci sia un
servizio di saluto e c’è un nome
servizio vogliono parlare tra loro
non parlano tra loro direttamente
parlano al loro perché il proxy on
perché i proxy quindi capiscono chi sono
bisogno di parlare con e poi questi servizi
parlarci così, immagina
tutto il traffico di rete in
cluster di kubernetes per la tua applicazione
almeno sta attraversando l’inviato
proxy e il fatto che sta attraversando
sul perché delega ti permette di fare un sacco di
nessuna magia laggiù immagina se tu fossi
fare un dispiegamento canarino come fanno le persone
in genere lo sviluppo di Canary in
i kubernetes senza servizio si adattano bene
hanno una distribuzione in scala
distribuzione ci sono 10 repliche nel
spiegamento ora diciamo che vuoi
avere un altro dispiegamento laggiù e
in quella distribuzione si desidera nascondere solo
Il 5% del traffico bene il minimo
il numero di repliche che posso avere è 1 ma
questo è 10 così da renderlo almeno 10
per cento quindi non ho quella granularità
quindi ho bisogno di rendere davvero 20 e mantenere
questo per portare il 5% del traffico così
non è un modo molto efficiente e questo è
esattamente dove su perché tipo di si inserisce
molto bene perché tutto ciò che stiamo facendo è
perché tutto il traffico sta attraversando
sul perché posso letteralmente iniziare a creare
schemi di spostamento del traffico all’interno del mio
cluster kubernetes molto facilmente, quindi lasciami
vi guidi rapidamente attraverso uno di quelli
file qui, quindi essenzialmente ciò che noi
fare è
così una volta ho ancora installato nel mio
cluster di kubernetes Servo uno scontro così
fondamentalmente scarichi il sto toolkit
e poi si installa un acciaio
cluster di kubernetes ora i kubernetes
cluster riconosce diversi sto
componenti che possono essere creati per dentro
per esempio in questo caso sto creando un
servizio virtuale sto creando un
regola di destinazione e nel virtuale
servizio quello che sto dicendo è qui a
saluto il servizio virtuale che sta prendendo
Saluto padroni di casa e voglio essere in grado di
guida il traffico per salutare e io
avere un nuovo servizio che sta dicendo
saluto howdy e volevo una guida 75%
traffico per salutare ciao e 25%
traffico per salutare howdy come stanno
saluto ciao e come si definisce
sono definiti nella regola di destinazione
e quelli sono definiti usando il saluto:
ciao etichetta e saluto: fa tanto adesso
immagina di poter continuare a schierare la tua
le applicazioni che conosci cambiano semplicemente
etichette su di loro di conseguenza e
di conseguenza creare il giusto virtuale
regole di servizio e di destinazione da modificare
sapere quanto traffico deve essere
spostato tra diverse applicazioni
quindi questo è un caso d’uso tipico
il caso d’uso più comune per un servizio
mesh ci sono molte altre cose
che si può fare qui così parliamo
sul traffico che cambia come funziona
puoi fare spiegazioni su Canary come farlo
funziona anche T viene distribuito
tracciamento se le tue app stanno utilizzando più
lingue che utilizzano diverse immagini di finestra mobile
puoi abilitare la traccia distribuita
in tutti questi differenti applicazioni è
completamente linguistico agnostico in questo
senti che puoi anche iniziare a iniettare false
nella tua applicazione e ora sta facendo
parlando di ingegneria del caos usando
kubernetes è un argomento completo da solo così
Non scaverò nei dettagli ma
essenzialmente se si guarda al timeout
sezione parla di come puoi
iniettare come HTTP 404 o 500 o timeout
nella tua applicazione per rendere il tuo
applicazioni più resilienti in modo che sia
ancora un grande vantaggio di Sto e l’ultimo
parte di cui voglio parlare rapidamente
la guarigione come negli ultimi 30 secondi è semplice
è creare la tua implementazione
oleodotti
quindi, ovviamente, usiamo Jenkins così là
è un progetto del cloud aziendale basato
chiamato come Jenkins X e io in particolare
amo quel progetto perché Jenkins X
rende bene qualsiasi applicazione Java
applicazioni kubernetes che conosci e basta
porta kubernetes a loro in un molto
cloud nativo modo che è sicuramente un
strumento che vuoi guardare all’altro
strumento che uso attivamente sul mio
lo sviluppo quotidiano è un’impalcatura
è da un team di strumenti per i contenitori di Google
e fondamentalmente ti permette ogni volta che lo faccio
apportare una modifica al mio repository di codice se
L’ho salvato automaticamente
immagine docker aggiornare i miei kubernetes
artefatti e distribuirlo alla mia azienda
cluster quindi vorrei raccomandare di prendere un
guarda che tutto il codice come ho detto è
ancora sul repository Github mi piacerebbe
per te per archiviare i problemi e tiriamo
Richieste o dimmi cos’altro faresti
piacerebbe vedere qui che ci sarò
la conferenza per le prossime ore se
vuoi parlarmi o venire a cercarmi
allo stand AWS grazie mille
[Applausi]

Please follow and like us: