Press "Enter" to skip to content

GOTO 2018 • Building Distributed Systems with Kubernetes • Erik St. Martin


[Musica]
quindi speriamo che non tutti siano in un cibo
coma qui voglio fare un rapido sondaggio
perché so che c’è una stanza per i contenitori
andando avanti e stiamo parlando di qualcosa
contenitori qui e il distribuito
i sistemi seguono e capiremo perché
molte persone qui stanno usando container in
in qualche modo sì, tutto bene, che ne dici?
orchestrazione dei contenitori no
devono necessariamente usare i kubernetes okay
un gruppo più piccolo va bene così sono una nuvola
sviluppatore avvocato presso Microsoft, dove io
concentrarsi principalmente su sistemi distribuiti
e kubernetes quindi voglio parlare
come quello che è il kuberneté al suo posto
core cos’è kubernetes e se lo chiedi
persone con cui molte persone potrebbero iniziare
cose come se fosse un contenitore
piattaforma di orchestrazione e intendo cosa
significa davvero e poi abbiamo
infrastruttura come piattaforma di servizio e
sai che molte persone intendono questo
perché c’è un sacco di strumenti costruiti
in quanto infrastruttura self-service
ma la domanda a cui voglio porsi
ognuno è quante persone vorrebbe
considera un framework o una libreria per
costruire i tuoi sistemi distribuiti su
in alto di peso ne abbiamo uno o due
tutto bene quindi, si spera per la fine di
questo discorso posso farti cambiare idea
la pausa mi ero promesso a me stesso
pausa invernale mi sono ripromesso di esserlo
sarebbe un po ‘ lontano dalla programmazione
come un hobby e così invece di quello
ho visto un programma televisivo sulla programmazione I
non so quante persone hanno visto il
mostrare fermarsi e prendere fuoco, ma è davvero
fantastico se non l’hai visto ma dentro
il primo episodio del primo
stagione fanno un commento uno dei
una delle persone dello show dice te
sapere che i computer non sono la cosa che sono
la cosa che ci porta alla cosa e
quel tipo di risonanza davvero con me
con il modo in cui ero stato a guardare
kubernetes negli ultimi due anni quindi
Mi piacerebbe prenderlo in prestito e dirlo
kubernetes non è la cosa che è il
cosa che ci porta alla cosa e cosa
Intendo dire che non è questo il
kubernetes non è un innovativo
tecnologia che aiuta a risolvere molte cose
i problemi che abbiamo adesso sono io
vuoi che la gente inizi a guardarla come
non è il prodotto finale che conosci e
questo è il linguaggio di assemblaggio di
sistemi distribuiti che ora abbiamo condiviso
modo di parlare di infrastrutture e
gli strumenti che Bill
con esso e su di esso sono andando essere
ciò che è veramente innovativo, quindi nel pensare
di questo c’è una specie di due
approcci uno è la personalizzazione di kubernetes
per adattarsi ai carichi di lavoro specifici e questo
sarebbe nel contesto di voi non lo sapete
costruire il proprio scheduler e
protocolli di consenso distribuiti e
protocolli di coordinamento e cose simili
questo e costruendolo sopra
kubernetes invece di costruirti da solo
e poi ci trasferiremo in una specie di
costruire astrazioni come strati in cima
quindi per prima cosa dobbiamo parlare di come
kubernetes lavora quante persone qui
hanno familiarità con il piano di controllo
di kubernetes funziona oK, abbiamo solo un
coppia fantastica sei nel posto giusto
quindi possiamo pensare a Kubernetes è giusto
un ciclo di riconciliazione di base è solo
prendendo costantemente lo stato desiderato e
conciliare lo stato attuale verso
così abbiamo una serie di kubernetes
oggetti e quelli che sono elencati
qui non sono necessariamente importanti né lo sono
è una lista completa ma generale
l’idea è che abbiamo questo dichiarativo
API dove inviamo questi file spec
con il nostro stato desiderato e sai dentro
questo esempio il numero di repliche e
il fatto che si tratti di un’immagine X del motore
le uniche cose che contano lo conosci noi
invia questo a kubernetes lo fa
cosa e se tutto funziona bene, tu lo sai
ottenere due istanze di questa esecuzione e
tutto questo è gestito dal controllo
aereo quindi ne abbiamo un paio
componenti che funzionano su tutto il lavoratore
nodi e questo è tutto ciò in cui il tuo
i pod terminano che abbiamo il couplet il
coop proxy e qualunque contenitore
runtime e poi abbiamo il nostro maestro
nodi con alcuni componenti del piano di controllo
lì ho Etsy D elencato qui
tipicamente in un ambiente di produzione
si sarebbe probabilmente funzionare quelle sul loro
possedere i nodi ma c’è solo così tanto tu
può stare su una diapositiva così al centro di
kubernetes è su CD e molte persone
non lo realizziamo necessariamente, ma così via
Il CD è un fault tolerant distribuito
database usa il consenso della RAF
protocollo di consenso distribuito che Jeff
stava citando stamattina nel suo discorso
ed è essenzialmente un negozio di valore chiave
che utilizza una gerarchia di directory dove
Puoi guardare
singole chiavi o la directory genitore
per modifiche aggiunte cose del genere
e ha alcuni primitivi in ​​là piace
blocchi distributivi e leadership
l’elezione e la maggior parte dei kubernet è
in realtà costruito sopra questo così il
il prossimo livello è il server API
ora tutti i componenti del piano di controllo
comunicare con il server API e
in fondo è solo una trasformazione
informazioni da quelle nei dati
per cui è archiviato in CD
cambia e notifica l’individuo
componenti di cose che cambiano così come
camminiamo attraverso questi voglio tipo di
parlare di te lo sai per costruire il tuo
sistemi distribuiti e soluzioni uniche
problemi che potrebbero avere il tuo caso d’uso
parliamo di punti di estensione simili
e come e perché potresti volerlo
personalizzarlo in modo tale che il server API stesso
tipo di avere due modi che possiamo iniettare
noi stessi siamo attraverso il server API
aggregazione quindi essenzialmente di cosa si tratta
significa come stai in piedi in un servizio e tu
aumentare il server API con questo servizio
e parleremo di alcuni interessanti
utilizzare casi come cataloghi di servizi per questo
e poi abbiamo una risorsa personalizzata
definizioni e questo è come dove sarebbe
pensi di avere un pod spec
può effettivamente presentare i tuoi tipi
in kubernetes e hai il tuo
controller che interagiscono con il
sistema basato su modifiche a quelli così aperti
il broker di servizi è in realtà un ottimo
esempio di aggregazione del server API così
essenzialmente ciò che questo ti permette di fare
espone altri servizi a Kubernetes
che non sono necessariamente supportati così
gli esempi hanno quelli come Asher
in particolare è come se fossimo esposti a DB cosmos
e le mie mie sequel di offerte e cose
del genere e un esempio di come questo
funziona essenzialmente quello che succede è il
Il server API comunica con il servizio
catalogo è possibile elencare le cose che sono
disponibile è possibile fornire loro e
quindi vincolante essenzialmente ottenere il
credenziali per comunicare con esso e
è montato come un segreto nel tuo
contenitore quindi è un po ‘veloce
esempio di provisioning
il mio sequel su Azure hai inviato una specifica
file proprio come faresti per il tuo pod
e tu dici che vorrei il mio sequel e
questo è il tipo di piano che voglio
utilizzare e quindi possiamo creare un legame in
per ottenere le credenziali per questo
nel nostro contenitore e questo offre molto
di potenza e con il server API
l’aggregazione del genere è che puoi creare
queste cose per te stesso
infrastruttura di servizio per cose che
potrebbe essere necessario creare specialmente quando
hai più squadre piuttosto che tipo
di dover fare questi one-off personalizzati
per le persone puoi esporre solo l’API
per loro di girare le proprie istanze
di alcuni servizi interni, quindi ora facciamo
parlare del responsabile del controller quindi
controller manager è il genere di cosa
che viene avviato quando abbiamo
qualcosa come una replica imposta tutto ciò che è
facendo è la sua a guardare il server API per
set di repliche e quindi è solo lavoro
per ora controllare il server API per i pod
che corrisponde alle etichette in quella replica
imposta questo è e poi se è il numero
non corrisponde crea o cancella
a volontà quindi non sta facendo nulla per
l’host o qualsiasi cosa stia solo gestendo
altre risorse all’interno del server API
va bene così all’interno del controller manager
c’è in realtà una serie di
la riconciliazione esegue alcuni loop che gestiscono
i nodi il controller di replica I
dare un esempio degli endpoint
controller che è ciò che corrisponde
servizi ai pod che corrispondono a tali etichette
e la loro disponibilità sonde si sa sono
riuscendo quindi abbiamo una nuvola
controllore gestore che è una specie di
cosa siamo simili agli altri
controller manager tranne che sa
molto di più come la tua nuvola
fornitori di API e in grado di fare di più
ispezione della salute dei nodi e
cose del genere prima di rimuoverle
impostazione delle rotte sui bilanciatori del carico
montaggio in volumi per lo storage cloud
che potresti avere così il controller
tipo di modello, come il motivo per cui si vorrebbe
per creare il proprio l’ovvio è se
sei un fornitore di servizi cloud e desideri
i tuoi servizi di gestione da supportare ma
le cose principali che vogliamo
gatto è un po ‘come il tuo disaccoppiare
applicazioni dalla specifica della risorsa
definizioni come questa ottiene questo ottiene
giusto per la maggior parte dei nostri servizi noi
finire con voi sapere 5 10 20 ml di file in
distribuire i nostri servizi e quindi se lo avete
per eseguire più istanze di questi
le cose che ottiene diventa davvero gentile
gnarly all’inizio e poi anche alcuni
cose che potresti avere cose personalizzate
fatturati per cui potresti voler creare
infrastruttura self-service e
astrazione della conoscenza operativa e
In realtà camminerò attraverso l’operatore
modello perché questo è davvero
interessante e se vuoi creare
il tuo controller su cui c’è un link
la diapositiva per I’m tipo di un campione
controller per basarlo su così kublai
go è un esempio di un controller personalizzato
modo che venga eseguito sostanzialmente in cluster esso
cerca questa annotazione sul tuo
definizione del servizio e poi guarderà
al tuo ingresso e troverà tutto
i padroni di casa che corrono nel tuo ingresso e questo
uscirà usando criptiamo tale
certificati per loro e configurare
nginx per quei certificati e tutti
questo genere di cose funziona solo gratis
non devi fare nulla di personalizzato quindi
l’operatore Prometeo è in realtà uno
dei miei preferiti quindi un esempio di come
l’operatore lavora è possibile creare questo
nuovo tipo chiamato Prometeo e ora tu
posso solo chiedere che mi piacerebbe un
Istanza di Prometeo con due repliche
e poi l’operatore sta guardando quello
e poi si spegne e crea a
set di stato e tu sai fare tutto il
il volume tutti i volumi e roba
così e anche operativo
conoscenza per quanto riguarda l’aggiornamento, quindi non lo faccio
avere un esempio qui, ma si potrebbe dire
la versione di Prometeo che vuoi
per correre e potrebbe riconoscere che è
eseguire una versione precedente e potrebbe farlo
gli aggiornamenti per te così sei tipo
cuocendo in questa conoscenza operativa
nel cluster stesso il fatto che esso
crea un set stateful come effetto collaterale
la cosa importante qui è che piace
l’API che esponiamo alle persone
consumando il nostro self-service
infrastruttura a loro interessa solo il
Specificare lo stato desiderato
a loro non importa davvero come si ottiene
implementato
in modo da una parte che mi piace molto su
l’operatore di Prometeo è quest’altro
il tipo che viene creato chiama un servizio
monitora ora il servizio monitora ciò che io
essenzialmente ci sto sto dicendo
che qualsiasi pod che corrisponde a questi
etichette voglio che tu lo colpisca sul HTTP
porta e raschia le metriche di Prometeo e
come pensare al potere di qualcosa
come quello
Non devo comunicare con
squadre operative per chiedere loro di
riconfigurare Prometeo ma sai
Promete di venire a grattare il mio nuovo
applicazione o quando decido di strapparlo
giù per riconfigurare Prometeo per me
questo è un po ‘ automatico dietro il
le cuciture e questo è ridicolo
potente quindi spero che questo non capisca
sono nei guai con il mio attuale datore di lavoro
o precedente datore di lavoro ma prima della mia attuale
ruolo che ho lavorato a Comcast e davvero
soluzione interessante che siamo venuti fuori
con stava usando risorse personalizzate
definizioni per rappresentare flussi video
stavano essenzialmente sostituendo questo
hardware specifico del settore chiamato in a
berretto che esiste in questi head end
posizioni le posizioni blu e it
multiplex video insieme e poi esso
spinto fuori verso questi dispositivi chiamati
scimmie X e questo usano la quadratura
modulazione di ampiezza sostanzialmente
modulare il video sul cavo coassiale
ma c’erano molti problemi con te
sapere come programmiamo questi carichi di lavoro
in modo che finiscano il più vicino al
cliente come vogliono e tutti e
queste cose iniziamo a pensare
la maggior parte di noi costruisce sistemi distribuiti per
una vita si comincia a pensare a
costruendo i nostri scheduler e tutto
queste cose e in realtà è carina
semplice da usare solo kubernetes
per questo diritto abbiamo l’ affinità dell’ospite e
i selettori di anti-affinità pod e tutti
tipi di cose che possiamo usare per aiutare
suggerire allo scheduler in modo essenziale
quello che abbiamo finito è stato creare il nostro
propria risorsa personalizzata per rappresentarli
flussi e ora solo gli ingegneri del video
ha dovuto configurare lo stato desiderato qui
i canali qui sono dove i loro input
vieni da te sai che è la zona di aggiunta
che questo deve essere effettivamente distribuito
a
allora questo tipo di creato un bello
separazione tra loro e il sistema
amministratori che hanno mantenuto tutto il
infrastruttura che gestisce il
la gente dell’infrastruttura doveva solo concentrarsi
per assicurare che i kubernetes siano rimasti
sani e i nodi sono rimasti sani
non dovevano preoccuparsi di tutti
gli aspetti operativi di questo e il
i tecnici video non dovevano avere SSH
accesso a tutti quelli
conosci l’hardware così quando iniziamo
guardando le definizioni delle risorse del cliente
l’aggregazione di API verse ce ne sono molte
le somiglianze ci sono alcune differenze
quindi sai CRD ovviamente la tua
controller che puoi implementare in qualsiasi cosa
linguaggio che vuoi tu ti aggreghi
devo usare go personalmente amo andare così
per me non è un problema, ma lo sai
se non ami vai tanto quanto me
forse questo è vedere RDS che non devi
gestire più versioni API
mentre l’ aggregazione API che fai è lì
sono convalidati in questo momento limitati
lavorando di più per le risorse del cliente
le definizioni ovviamente se fai le tue
API quindi puoi fare qualunque validazione
vuoi le risorse secondarie che puoi ridimensionare e
puoi supportare lo stato sulla tua abitudine
tipi e questo è in realtà davvero
fantastico quando pensi a cose del genere
questo giusto così usiamo il
materiale video come un esempio che posso
letteralmente un cubo CTL ottiene quello nostro
coop lo stato ETL su un particolare video
flusso e vedere le metriche per farlo bene
perché stiamo solo creando dove
lo stiamo trattando come un tipo nel
sistema come qualsiasi altra cosa, così possiamo
ridimensionalo possiamo possiamo riportare le statistiche
quelle sono le uniche cose che sono
supportato su CR DS ma su quell’API
punto di vista di aggregazione che puoi creare
nuove nuove risorse secondarie in modo da poter eseguire
lei si lega a queste cose così facilmente
Ora parleremo lo scheduler del
scheduler come il pezzo più complesso
giusto è in realtà abbastanza semplice quando
guardiamo le interazioni il
l’algoritmo stesso utilizza l’ imballaggio del contenitore e
ovviamente c’è una certa complessità nel
modo che è implementato ma quando noi
in realtà
il ruolo che svolge all’interno dei kuberneti
in sé in realtà è piuttosto limitata essa
guarda il server API fondamentalmente come un
palo lungo per qualsiasi pod o lavoro o cose
come quello che non ha un nome di nodo
assegnato ad esso e quindi è solo lavoro è
fare la sua cosa e decidere il nodo
aggiornare la specifica e spingerla di nuovo al
Server API che è l’unico
ruolo che lo schedulatore gioca in tutto questo
e penso che confonda le persone
a volte perché penso che un sacco di
la gente vuole presumere che sia il
cosa che mette davvero cose sul
nodo ma è possibile creare il proprio
scheduler e la bellezza di questo
in realtà sei tu non devi sostituire
lo scheduler predefinito o puoi
in realtà li gestiscono fianco a fianco e tu
può dire tipi di pod specifici e cose
così da usare uno schedulatore specifico
e questo è veramente super potente quando
pensiamo alla progettazione distribuita
sistemi perché forse il modo in cui il
la programmazione delle opere non lo sai ideale
per il nostro caso d’uso particolare, quindi, perché?
vuoi scrivere il tuo programma di pianificazione
ogni volta che hai bisogno di informazioni esterne a
prendere decisioni di pianificazione forse hai
cose come i moduli di crittografia hardware
o FPGA o cose del genere e facciamo
dicono che i tuoi moduli di crittografia hardware sono
innescato per set di dati specifici o sei
usando enclavi sicure o qualcosa del genere
che quel kubernetes non è a conoscenza di e
devi provare a usare quelle informazioni
programmazione basata sulla rete al momento
Kubernetes non supporta questo forse
stai facendo qualcosa come video
streaming e puoi tranquillamente saturare
cambia e sai che vuoi usare
SNMP o qualcosa per recuperare le metriche
da queste cose e usa quelle da fare
pianificare le decisioni forse sei tu
avere grandi quantità di dati di cui hai bisogno
con cui lavorare e si desidera lo scheduler
per provare a eseguirlo il carico di lavoro sui nodi
che contengono i dati o il più vicino ad esso
il più possibile così fresco che così bello
in realtà è il cavallo di battaglia su cui gira
ogni singolo nodo e questa è la cosa
che in realtà chiama fuori al contenitore
runtime e repository di immagini e
monta volumi e imposta l’ambiente
variabili usando l’API discendente e
mappe di configurazione e tutto quel jazz
fornisce un server API che in realtà
il server kubernetes api chiama a
ogni volta che fai qualcosa come exec del gioco
o allegare o registri e lo raccoglie
raccoglie tutte le metriche utilizzate
dallo scheduler e segnalato al
dashboard in modo che possiamo guardare questo
come esempio di base quindi è giusto
fondamentalmente facendo un lungo palo per l’API
server e noteremo che questo è un
modello con tutti i componenti e
sta cercando cose come pod o
lavori con un nome nodo corrispondente
il suo nome nodo è come oh okay
questo è un lavoro per me e poi questo
interagisce con il runtime del contenitore e
cerca di conciliare le differenze con te
so che Kubernetes dice che questa cosa era
cancellato ma lo sto ancora facendo forse io
dovrebbe chiudere questo contenitore
sai che sono quelli di avvio che non lo fanno
esiste eppure così perché si vuole a
crea il tuo così per il tuo kulit
probabilmente no e tu probabilmente
non dovrebbe, ma lo abbiamo fatto comunque
sperimentare prima coop con questo passato
anno creato qualcosa chiamato il
virtuale Kubla è una specie di esperimento
ed essenzialmente quello che fa è che lo è
interagisce con il server API allo stesso modo
modo che fa il normale Kubla e questo
si riferisce al server API come a
nodo in modo da guardare effettivamente kubernetes
e kubernetes vede un nodo che esiste
che in realtà non esiste non c’è
vero nodo lì e in pratica cosa
fa qualsiasi carico di lavoro che viene assegnato
ad esso si traduce che in questo caso io
avere come istanze del contenitore ma
hyper SH è supportato per cancelli lontani
supportato ora e alcuni altri e questo
fondamentalmente lo traduce in questi
piattaforme container e li esegue in
la nuvola quindi è essenzialmente un nodo
con risorse illimitate , quindi perché?
si anche vuole fare che alcuni esempi
sarebbero lavori batch hai un cluster
abbastanza grande da far funzionare il tuo normale
carichi di lavoro ma si desidera eseguire batch o
CI CD o cose del genere in mezzo al
elenchi di server nube che continuo a pensare
su come come posso smettere di pensare a
il mio hardware e nodi e kubernetes te
sapere è una grande astrazione ma
da qualche parte qualcuno doveva fare
alcune capacità di pianificazione e decidere come
grandi nodi ho bisogno di quanti di loro
ne ho bisogno quindi penso che cose del genere
distici virtuali sono sicuramente e più
di questa roba è abbastanza presto e
questo è una specie di l’idea è che
dovrebbero tutti sperimentare e provare
nuove cose stiamo ancora capire che fuori
ma sarebbe davvero fantastico avere
il potere dell’astrazione di
kubernetes
e non doversi preoccupare dei nodi
loro stessi CNI quindi non so quanti
la gente ha familiarità con CNI, è così
non menzionato molto ma CNI è
essenzialmente la rete di container
interfaccia questo è ciò che viene eseguito ogni
tempo di avvio di un pod da montare nel
interfaccia di rete nel contenitore così
nel mezzo abbiamo una configurazione CNI
file questo esiste su ogni casa
le cose importanti qui sono di terza linea
giù è il tipo e poi giù abbiamo
la sezione ipam quindi CNI è una specie di
composto da due parti una è il tipo
stesso che è in realtà crea il
le interfacce di rete impostano i percorsi
così e li monta e poi noi
avere l’ IPAM che è l’assegnazione IP
modulo quindi a volte la tua stessa rete
potrebbe voler gestire gli indirizzi IP
che i contenitori stanno ottenendo o potrebbero
bisogno di fare cose aggiuntive con il
gestione di quelli così perché vorresti
vuoi creare il tuo se hai bisogno
più interfacce e questo succede il
esempio di cavi che uso ne usano uno
interfaccia per comunicazione pod pod pod
e avevano bisogno di un’interfaccia separata a causa
al modo in cui il multicast funziona per essere montato
per tutte le uscite del video
streaming se hai bisogno di fare custom
routing per qualsiasi motivo bgp cose Netcom
di quella natura forse stai facendo
rete definita dal software questo è un
buon punto di iniezione per l’interazione
con la rete quando arrivano i contenitori
e giù quindi proxy proxy fukube di Kubb
esiste sui lavoratori stessi è
responsabile della realizzazione di servizi reali
se guardiamo una definizione di servizio e
abbiamo un IP del cluster che l’IP non ha
esiste ovunque è fondamentalmente solo
assegnato a
ora lo stesso proxy Kubb lo prenderà
cluster IP e troverà tutto il
corrispondenti endpoint per quel servizio che
sono pronti e imposterà le tabelle IP
regole e cose del genere in modo che
Qualunque cosa sull’host prova
comunicare con quell’IP che caricherà
equilibrio tra gli endpoint esistenti
si legherà anche a porti e cose
così se esponi le porte del nodo così
molto più quindi abbiamo cose come
risorse estese e queste sono
in sostanza, è possibile impostare risorsa personalizzata
limiti sul tuo nodo quindi forse lo sei
usando un FPGA o qualcosa che puoi impostare
limiti per una quantità che è
disponibile e poi nel tuo pod
Definizione è possibile specificare che essa
consuma così tanto da poterti suggerire
i contenitori di init scheduler sono questi
contenitori che vengono eseguiti prima del pod
in realtà inizia in modo normale
contenitori e una cosa carina di questo
a volte hai bisogno di fare un po ‘
inizializzazione che potrebbe richiedere chiavi
o credenziali che il tuo attuale
l’applicazione non ha bisogno di eseguire e
questi sono ottimi posti per farlo
passo di inizializzazione in questo modo il normale
i contenitori che funzionano sono gentili
di eliminare quella minaccia alla sicurezza
lì non dovendo avere le chiavi
quegli inizializzatori dei contenitori di produzione
e gli errori finalizzati sono in realtà
parte di kubernetes che non vedo usare
molto spesso ma in sostanza possiamo impostare
questo sul cluster per i pod o
cose oggetti che corrispondono a specifiche
criteri in cui possiamo forzare le cose
corse nel cluster in modo essenzialmente su
avvio di questo pod questi inizializzatori
corri e può mutare l’oggetto e
cose del genere in modo che possiamo forzare
vincoli o possiamo fare setup e
teardown quando riconosciamo contenitori o
certi tipi in arrivo I tipi di
accennato un po ‘di prontezza e
sonde di vividezza sono sonde prontezza
essenzialmente dicendo servizi che questo
la cosa è abbastanza salutare da poter essere
un endpoint nel servizio di bilanciamento del carico
sonde di vividezza significa solo questo
kubernetes non dovrebbe prendere nota
affinità un’anti affinità è così
su cui possiamo attrarre i carichi di lavoro
nodi specifici o respingerli
puoi usarli molto come se ne avessi bisogno
cose come GPU o cose di questa natura
affinità trama e anti-affinità questo
ci permette di prendere contenitori e attrarre
o respingerli gli uni dagli altri, quindi facciamolo
dì che stai correndo Redis, abbiamo ragione
o abbiamo solo un leader normale o
relazione follower tra due
componenti su cui non vogliamo che vengano eseguiti
lo stesso nodo e anche allora puoi impostare
i confini qui così il confine
non deve necessariamente essere un nodo noi
può impostare le etichette per un rack o a
particolare data center o cose simili
che in modo che possiamo garantire che essi
non esistono mai nello stesso limite
strato sto così Jeff stava citando diversi
cose che è puah rende impressionante e
ricevi gratis se installi SEO
il tuo cluster di cui abbiamo parlato distribuito
tracciamento e tracciamento distribuito è
glorioso, ma se si dispone di un certo numero di
dish micro servizi e roba in esecuzione
cercando di convincere tutti a spendere il
tempo per implementare effettivamente quello è
davvero doloroso quindi il modo in cui funziona è
si inietta su entrambi gli ingressi
e uscita strati di ogni contenitore così
puoi applicare le politiche, ma in aggiunta
puoi iniettare tutte le intestazioni che tu
bisogno di tracciamento distribuito quindi lo sa
quale è l’ inizio di questo processo
che questo deve avere e ID generato
per esso e poi per la via d’uscita lo farà
aggiungere queste cose in modo che sia un modo veloce
per ottenere almeno i limiti per quanto tempo
ogni micro-servizio ha preso e cose di
quella natura e una volta che inizi a vedere
queste cose ti aiuta di più
aggiungere più tracce nel file
servizi individuali puoi fare cose
come il routing della richiesta puoi fare a / b
test in modo da poter inviare un certo
percentuale del tuo traffico verso
pod specifici questo funziona davvero bene se
hai come un sistema di produzione e
devi correre come forse un canarino o
qualcosa del genere per vedere se un nuovo
la versione funzionerà bene che puoi
implementare i timeout a quel livello riprovare
puoi fare un po ‘di concurrent
connessioni che li può limitare a
servizi upstream e questo tipo di aiuto
con cose come la contropressione va bene così
la prossima cosa di cui voglio parlare
al di fuori di come si può iniettare
te stesso e personalizzare kubernetes per adattarsi
le tue esigenze sono costruzioni astratte
astrazioni in cima a Kubernetes così
all’inizio siamo in grado di sapere
Ho guidato con te sapere che Kubernetes non è il
cosa è la cosa che ci arriva al
cosa quindi abbiamo bisogno di iniziare a parlare di
con cosa vogliamo interagire
perché tutti questi file diamo non lo sono
e non è mai stato pensato per essere così abbiamo
ho roba come il timone, quindi il timone è se
la gente non ne ha mai sentito parlare è come un
gestore di pacchetti per kubernetes e questo
ti aiuta a sapere quando pensiamo
la gestione di un programma nel suo complesso a destra
diciamo solo un blog , potremmo davvero
avere il volume persistente pretendiamo noi
potrebbe avere qualcosa per il database noi
avere il front-end per questo
abbiamo mappe di configurazione che potremmo avere
segreti per il database e per il
credenziali per il blog stesso come ora
stiamo parlando sai cinque sei sette
cose che vengono gestite e tu lo sai
diventa doloroso quando hai bisogno di correre
più versioni di queste cose così
tipo di timone ti permette di occhi modello
e quindi inserire i valori e
trattare tutto è una sola applicazione
schierato è uno tutto indietro come uno
e penso che questo sia di aiuto, ma noi
ancora qualcuno deve creare questi sam’l
file aperti veloce Non so quanti
le persone qui stanno facendo funzioni come
un servizio a tutti i Trevor Lewis, okay
ho un paio di persone quindi sono abbastanza nuovo
il servizio II non è stato che non ho bevuto
il kool-aid ancora ma vedo alcuni usi ma
open veloce essenzialmente ti permette di fare
funziona come un servizio in cima a
kubernetes e credo che questo è dove
inizia a diventare più potente sai
sai che il passaggio è morto ma viva
il passo a destra le persone Lee stanno andando a
voglio piattaforme come un servizio, ma ora loro
tutti possono comunicare tipo allo stesso
livello alle persone di operazioni che solo tu
devi preoccuparti dei kuberneti
progetto progetto è un altro modo di tipo di
rendere le cose più facili in sostanza può
fai l’euristica sulla tua base di codice e
capire quale linguaggio di programmazione e
quadro che stai usando e poi
genera file docker e timoni
basato sul tipo di best practice conosciute
per quel particolare linguaggio o
quadro e penso che questo sia un passo avanti
la giusta direzione, giusto adesso
non siamo più stiamo avendo per allenarsi tutti
i nostri sviluppatori sulla creazione di file docker
e kubernetes spec file e cose
come quello penso che ad un certo punto quelli
le cose devono andare via per la media
lo sviluppatore pachiderma è davvero
interessante avrei dovuto mettere un
screenshot dell’interfaccia utente qui ma lo è
essenzialmente un sistema di pipeline di dati voi
può usare un’interfaccia utente per tipo di configurare il
input e tutti i passaggi della catena
quali hanno richiesto GPU e questo tipo di
gestisce la creazione di tutti i pod e
risorse e assicurandosi che finiscano
nodi con GPU e che i dati ottengano
inoltrato e tipo di tracce i dati
versioning e provenienza e il
la cosa importante qui è di guardare come
tutte queste cose che stiamo creando
sono tutti costruiti sulle stesse primitive
sotto come possono iniziare i kubernetes
diventando il linguaggio di assemblaggio che conosci
di sistemi distribuiti per noi quanti
la gente ha visto la meta-particella qui
ne abbiamo una coppia così è meta-particella
come questo è davvero molto ambizioso
progetto di Brendan brucia qui è uno di
i co-creatori di Kubernetes, ma io
penso che questo evidenzi davvero il punto
davvero bene quel tipo di cui abbiamo bisogno
democratizzare la creazione di distribuito
sistemi come te sanno che tutto è a
scala ora e ne abbiamo ancora di più
gli sviluppatori arrivano e devono essere
in grado di creare sistemi distribuiti
senza doverti sapere un e
il suo stesso background in esso così la sua idea è
sai essenzialmente creare librerie
nelle lingue che puoi includere
e tipo di esporre questi questi
concetti di sistemi distribuiti, quindi non lo faccio
sapere quante persone qui sono familiari
con andare
Ti prometto che non farà male se non un sei
vai , ma questo è un esempio in go
essenzialmente tu includi questa libreria tu
dire all’app per containerizzare se stesso che dici
Voglio 3 repliche che conosci sono gentili
del mio repository docker e cose di
quella natura e ora quando compili
questo e si esegue questa applicazione
si containerizzerà e spingerà
stesso fino a questo repository docker e poi
si schiererà da solo in Kubernetes
eseguendo 3 repliche e io forse sai
questa non è la cosa giusta ma penso
è importante che iniziamo a pensare
su questo mi piace che cosa che lingua
vogliamo parlare ai kubernetes
perché ora il tipo di cielo è il limite
la complessità di trattare con il
l’infrastruttura stessa è sorta di stato
portato via da noi , ecco un altro
esempio
essenzialmente ciò che è cambiato qui è invece
di dire con tre repliche ci siamo detti
volevo tre frammenti e poi l’abbiamo dato
la nostra espressione regolare per l’ URL di
usa come sharding ora questo sarà effettivamente
distribuire un set stateful e verrà impostato
tutti i servizi e una condivisione
servizio che verrà colpito e poi tu
può in qualche modo garantire che qualunque sia il
il nome utente è sempre finito per colpire
lo stesso frammento e questo è davvero
potente così il futuro così gentile come noi
affermò come mai i kubernetes non furono mai
destinato a essere lo strato superiore e come me
amo Kubernetes e io sono stato te
conoscere un grande fan per anni ma non è un
prodotto standard o è a
punto di partenza e mi piacerebbe vedere cosa
le persone iniziano a venire con loro
possedere soluzioni e sai eliminare
il tempo necessario per creare
conosci interi sistemi distribuiti da
gratta quando un sacco di componenti
esiste già quando pensiamo come
i pattern e gli scheduler del controller
e cose del genere da Kubernetes
inizia a personalizzarlo e la parte
che sto davvero impaziente di è
le cose su cui iniziamo a costruire
superiore e se hai idee mi piacerebbe
sentirli come penso che piaccia
siamo in un momento perfetto per suonare un
sperimentare
con quel grazie , suppongo che lei sia
chiederò quattro domande abbiamo tempo
abbiamo un minuto o due e tu hai
appena fatto esplodere le nostre menti con un milione
idee di cose che possiamo fare e costruire
quindi ho intenzione di dare alla gente un possibile
opportunità se vogliono chiederti un
domanda o due tutti stanno andando
c’è così tanto a cui pensare
ok wow Credo che questo funziona ora in modo da
penso che risolvano due scopi diversi
giusto così il modello dell’operatore è davvero
per tipo di creazione di self-service
infrastruttura dove stai cuocendo
conoscenza operativa in qualcosa
è già in esecuzione nel cluster
questo è in qualche modo consapevole dello stato desiderato
di questa cosa e del tipo di creazione
che questo accada e sai aggiornamento
strategie e cose del genere timone
i grafici servono davvero a gestire il
numero di file Yamo necessari
sai che ne avresti uno per il tuo servizio
per il tuo pod forse esistono un paio di pod
e sono fondamentalmente solo modelli e
allora quella è la tua tabella e poi puoi
installate semplicemente WordPress o qualcosa del genere
così e sai che puoi fondamentalmente
passare argomenti dicendo che questo è il
versione del contenitore che voglio eseguire
e cose del genere quindi penso che loro
risolvere due diversi problemi problema I
sento di voler fare una domanda
me stesso quindi sarò davvero veloce e poi
Darò loro il microfono a qualcun altro possibile
ti sembra che alla fine ci sei tu
ci ha mostrato un sacco di interessanti
progetti dove vorresti raccomandare
le persone iniziano se vogliono tuffarsi
con la personalizzazione delle comunità stesse
quindi penso che l’importante sia che io
pensiamo come comunità che iniziamo
collaborando su ciò che il
le azioni sono e cominciano a parlare di simili
quali sono le interfacce finali che vogliamo
consumare ma una delle cose che vorrei
l’amore per iniziare a vedere le persone lo fanno
creando i propri controller e
creare più operatori per cose simili
corriamo tutti come una ricerca elastica
o Redis o o simili come questi
le cose saranno potenti per il
comunità ma anche tu sai intervenire
lì e se hai un po ‘ unico
vincoli dentro il tuo tuo
infrastruttura come sentirsi liberi di creare
un plugin CNI o il proprio programmatore e
cose del genere rispetto alla meta
particella dove senti l’ equilibrio
si trova in termini di come le carte del timone in
termini di come descrivono una topologia
contro ciò che è tipo sepolto al
specifica all’interno della meta-particella
implementazione di un micro servizio così il
la domanda era come me
differenziare come meta-particella da
come un timone sì, quindi penso che il timone sia un
fantastico progetto che aiuta con il
gestione dei file Yamo ma anche io
spero per il futuro che non siamo ancora
lavorare a quel livello giusto così
un giorno la facilità d’uso di So che sono
in esecuzione in un cluster di Kubernetes e I
bisogno di un blocco distribuito e questo è il
nome del mio blocco distribuito e II solo
includi una biblioteca e io lo so
nessun altro nel gruppo può ottenerlo
bloccare penso che abbiamo bisogno che io non lo so
se la meta-particella è come otteniamo
penso che sia un’idea fantastica
e sperimenta e tu sai a
conversazione di avviamento su come ci arriviamo
perché alla fine abbiamo bisogno di
democratizzare la creazione di distribuito
sistemi come quelli che speriamo in un
giallo libero futuro Penso di essere tutto libero
libero – Mi piace che hey solo un rapido
domanda sui quattro ambienti ibridi
come sai su macchine virtuali con carrozzina
i contenitori sono le opzioni che hai elencato
sarà la misura giusta
quindi la differenza tra quello che vuoi
utilizzare VM in contenitori di tipo
insieme proprio a questo tavolo lati e
stai gestendo il tuo sì, voglio dire
i contenitori sono fantastici ma penso
che anche loro hanno un sacco di problemi
quella VM risolve troppo bene
per esempio un contenitore non è un duro
confine di sicurezza giusto come possiamo fare a
molte cose per rendere più contenitori
sicuro ma alla fine se stai correndo
una libreria scaduta nel tuo
contenitore e un kernel vulnerabile che posso
sfuggire al contenitore e ho accesso
a casa tua così se ne hai voglia
confini di sicurezza davvero molto difficili
forse contenitori come dire che stai facendo
multi-tenancy e tu ci siamo
diversi dipartimenti o cose simili
che come sai tu potresti aver ancora bisogno
VM ci sono alcuni casi interessanti
anche se nel cloud dove ad esempio a
CI puoi far funzionare il tuo pod ma tu
in realtà sono in una VM ci c’è
cose come distici virtuali in cui il tuo
il provider potrebbe effettivamente far girare una VM e
esegui solo il tuo contenitore all’interno di VM I
penso che le persone stiano ancora cercando di capire
fuori l’ approccio ibrido, ma io no
penso che le VM stanno andando via completamente
tutto ciò che è vecchio è di nuovo nuovo
e dovremo continuare a costruire
sui sistemi esistenti che sapevano tutto
giusto rinunciare ancora una volta per Eric
santo martino
[Applausi]

Please follow and like us: