
va bene quante persone conoscono
contenitori questa è la traccia docker ma
devi sempre controllare quante persone
sono un paio di altri contenitori fantastici
perché non ho intenzione di immergermi in profondità
che contenitore è, ma parlerò
riguardo ai contenitori in genere, in genere
non mi piace parlare di contenitori
perché penso che siano davvero come 1 a
5 percento del problema generale ma
questo discorso è piuttosto interessante, penso
perché abbiamo parlato della necessità di
cose come standard, quindi lo faremo
parlare di un razzo di un’app vedere quale è
le specifiche del contenitore dal sistema operativo principale in un
tentare di fornire uno standard del settore
linee guida su quale applicazione
contenitore è e la prima domanda noi
è per questo che scrivi così presto sai
forse anche pre-docker un sacco di gente
aveva questa visione che potevano usare
contenitori per costruire il perfetto
infrastruttura giusto così tante persone
la loro prima esperienza con il
container vai 5 minuti in e
le cose sono fantastiche, hai questo
nella tua mente o qualunque cosa tu sia
la tua infrastruttura sembra proprio ora
la tua convinzione iniziale era che ti adattassi
contenitori e sarà
bellissimo
e poi vai in produzione e tu
Scopriamo che c’è un sacco di pezzi
manca giusto così sai che sei tu
distribuendo stai distribuendo ma non lo fai
mi piacciono davvero cose come il servizio
scoperta capito e poi tu
scopri cose come il docker bridge
per la prima volta e si scopre che
non è davvero facile avere i padroni di casa
comunicare tra loro e in
alcuni casi e alcuni rari casi voi
in realtà scaricare un contenitore che
in realtà si preoccupa di quale kernel
la versione è in esecuzione e ora non hai
modo di affrontarlo perché c’è davvero
no standard intorno a questa roba è solo
nuovo a destra in modo da spostare verso quella strada e
cosa fai se sei uno sviluppatore te
chiama la tua squadra di ops quando sei fuori squadra
ti vede tipo di vacillare e le cose sono
sembra brutto, quindi stai portando le tue operazioni
squadra
ancora una volta non ci sono standard così
sfortunatamente il tuo team operativo non può fare
molto per voi in questo modo, purtroppo,
è così che andrà a finire voi
in realtà non hanno scelta in questa materia
la buona notizia è che le cose sono
migliorando e uno degli obiettivi di questo
parlare è principalmente per fornire una panoramica di
spec. del contenitore dell’applicazione e chiamiamo
app C in breve e poi razzo che
è il nostro KT è pronunciato razzo e io sono
andando a evidenziare dove app C e il
formato immagine docker d’accordo quindi c’è un
molte cose persone coinvolte in app II
d’accordo che la finestra mobile ha fatto bene quale
è fornire questa idea che siamo in grado di assumere un
applicazione e descriverlo come un singolo
applicazione su cui possiamo ragionare
questo significa che smettiamo di parlare di Java
questo significa che iniziamo a parlare di Ruby
e parliamo solo di applicazioni
giusto e l’altra parte è lì dovrebbe
essere una configurazione all’interno di quell’immagine che
dice a un esecutore cosa fare con quello
immagine giusta, quindi vogliamo scrivere è scrivere
che in basso cosa significa e poi
quando un piatto e penso di guidare davvero
la casa delle specifiche che faremo davvero
qualcosa con esso così vivo che sto andando a
prendere una serie di immagini di finestra mobile che sto per
convertirli in occhi AC che vedrò
che aspetto ha questo processo, così possiamo
vedere dove le cose sono le stesse e dove
le cose sono diverse e poi lo faremo
parlare di come effettivamente firmare e
distribuire quelli così uno degli obiettivi di
FC: avevamo bisogno di un modello di fiducia più forte
quindi se stai tirando fuori cose a caso
prima non dovresti fare internet
quella
non tirare cose a caso dal
internet ma una cosa che ti piacerebbe
fare è essere in grado di tirare qualcosa e
convalidare da dove proviene
va bene così se hai gestito
sistemi per qualsiasi quantità di tempo che hai
è stato abituato a questo per tutta la tua carriera
giusto usando un gestore di pacchetti normalmente
quei pacchetti sono firmati da a
entità specifica di cui ti fidi quando
li porti dentro
sai in qualche modo a chi ti stai fidando
ci siamo trasferiti nel selvaggio west ovest questi
giorni in cui ci sono solo cose sul
internet e siamo proprio come a caso
portali nella nostra infrastruttura e
questo è particolarmente pericoloso quando tu
inizia a pensare a portare le cose
come i database
e servizi chiave che alimentano il tuo
l’infrastruttura si sta veramente facendo
veramente veramente pericolosa per un sacco di
gente e poi ne parleremo
come fare effettivamente qualcosa con il razzo
come perché abbiamo costruito questo e come è
fondamentalmente diverso dagli altri
container runtimes quindi prima ad un massimo
livellare le specifiche del contenitore dell’applicazione e
gli obiettivi con questo è avere qualcosa
questo è ben II significato specificato che abbiamo
documentato ogni singolo dettaglio su cosa
un’immagine è come dovrebbe essere eseguita
quale chiamata di sistema dovrebbe essere in gioco e
vogliamo costruire una comunità intorno ad esso
quindi gli obiettivi erano le specifiche non è buono se
c’è solo un’implementazione di esso in modo
stiamo cercando di incoraggiare altre persone a
implementare e ci sono in realtà a
paio di implementazioni del
specifica del contenitore dell’applicazione in modo tale che il numero
una cosa è il formato dell’immagine giusto il
il formato dell’immagine è chiamato ACI secondo è
un meccanismo di scoperta quindi quando costruisci
una di queste immagini dovresti essere in grado
per ospitarla ovunque tu voglia
significa se hai un server web e tu
voglio solo buttare le tue immagini lì dentro
e servili semplicemente alla tua organizzazione
dovrebbe essere in grado di farlo che non c’è
registri speciali non ci sono impostazioni predefinite
registro in modo che sia buono e cattivo in alcuni
modi in cui la parte cattiva è che non c’è un centro
posto dove andare a trovare tutti gli ACS nel
mondo la parte buona è che non hai bisogno
molti strumenti per ospitare una qualsiasi di queste cose
tutto nel contenitore dell’app
specifica è stata pensata per essere semplice voi
può costruire una specifica del contenitore di applicazioni
la nostra immagine con gli strumenti da riga di comando a destra
puoi usare tar gzip e GPG per firmare
loro e si può solo costruire il proprio
immagine senza fantasia totalmente richiesta e poi
l’ ambiente di runtime , quindi quello che fai
avere un’immagine e puoi trovare l’immagine
la prossima cosa che devi fare è essere in grado
per specificare come si esegue l’immagine, quindi se
vuoi essere compatibile con
specifiche del contenitore di applicazioni necessarie
fare un certo insieme di cose in modo che
le persone possono anche contare sul comportamento
attraverso i sistemi e quindi una serie di strumenti
per aiutare a costruire convalidare e aiutare le persone
solo in generale ottieni l’applicazione
implementazioni corrette
la prima cosa di cui parlo è la
formato di immagine quindi il formato dell’immagine molto
simile al formato dell’immagine della finestra mobile qui
praticamente il punto di partenza
contenitore di applicazioni spec esigenze ACI
per contenere tutto ciò che il
l’applicazione deve essere eseguita e se lo è
non dovrebbero almeno specificare il
montare i punti che devono essere aggiunti a
fallo così se pensi a se
stai usando la finestra mobile e hai un
l’immagine l’immagine ti dice alcune cose
forse è il punto di ingresso, ma non è così
devo dirti tutti i volumi
richiede che tu sia libero di comprare solo mount
in tutto e sono mappati ovunque
vogliono giusto quindi ce n’è un po ‘
vantaggio là c’è flessibilità ma
non puoi leggere l’immagine manifest all’interno
di un formato finestra mobile per conoscere il necessario
importo punti per un’immagine quindi se qualcuno
scrive davvero buona documentazione lo farà
essere davvero facile da abbattere e montare
cose ma sarebbe molto meglio se si
in realtà ha eseguito l’ immagine e ti ha detto
non ha montato in tutto il monte richiesto
indica che questo non funziona, possiamo farlo in
app C perché ne facciamo un requisito
quindi ci sono due cose principali che c’è una
il filesystem di root è la stessa cosa dei Dockers
il formato dell’immagine e il filesystem di root è
solo che alcune persone prenderanno un
sistema esistente e si può tar il
tutto su e rendi quella tua radice
file system su cui è possibile utilizzare la finestra mobile
è probabile che produca un filesystem di root
il modo più popolare di produrre root
file system in questi giorni o è possibile utilizzare
strumenti di sistema nativi di Debian RedHat
buoni strumenti per costruire sistemi completi in
alla radice e quindi hai bisogno di un’immagine
manifestare così per un ACI molto semplice questo
è uno di un progetto chiamato kubernetes
per la gestione dei contenitori e questo è il
Server API ed è un collegamento statico
andare binario in realtà questa donna non lo è
collegato staticamente li legherò
in alcune librerie dall’host
normalmente non farebbe che a volte
diresti solo che ho intenzione di costruire
cima a Debian ma sono un grande fan di
contenitori che sono circa 10 Meg’s che faccio
non come scaricare i contenitori che sono
come 500 Meg o un concerto e ci sono modi
si può andare in giro che e il manifesto
quindi se visiti la specifica ha dettagli
su ogni chiave che puoi trovare o
descrivi in un manifest
ora questi manifesti sono la versione
quindi questa è la 0.5 che una versione di
questo manifest un esecutore può leggerlo
versione e nessuno può scoprirlo
quello si manifesta ora questo è incompleto così
Posso adattarlo sullo schermo ma questo
mi dice il nome dell’applicazione
contenitore la versione è fondamentalmente
simile a un tag mobile e sta per
l’esecutore a ragionare su quello
tag significa che potrebbe essere una versione cementata
potrebbe essere tutto ciò che voglio dire che abbiamo
il concetto di un sistema operativo giusto così uno dei
gli obiettivi per le specifiche del contenitore di applicazioni erano
lavorare da più sistemi operativi
per fare che le immagini hanno bisogno di
avere una sorta di metadati da dirti
questo funzionerà per FreeBSD e così sarà
lavoro per i contenitori di destra di Linux hanno un
kernel condiviso
loro semplicemente non correranno da nessuna parte così così noi
facciamo è fornire alcuni metadati per aiutare
l’ esecutore capisce se può
effettivamente eseguire quella etichetta eseguire quello
contenitore o no e quindi abbiamo un
il punto di ingresso chiamato è ech, quindi questo è
fondamentalmente simile al punto di ingresso
troverai in utente docker e gruppo e
quindi il punto di mount è specifico così
qui sto specificando che ho bisogno di SSL
ricercare l’host in modo mio link statico
binary proverà a cercare questo locale
file system per certs ma non lo troverà
loro così che cosa sto specificando nella mia immagine
manifest è che quelli devono essere passati
in fase di esecuzione se non sono definiti
qui e così ciò che monta le cose non lo faranno
lavoro devi essere molto specifico su
la tua intenzione e il contenitore delle applicazioni
spec quindi un meccanismo di scoperta così uno
degli obiettivi era che volevamo essere facili
per chiunque di costruire e ospitare il proprio
registro il registro docker è in realtà
davvero molto potente ma è così
in realtà complesso così complesso che tu
devi andare a cercarne uno per ottenere
iniziato ci sono dei buoni open source
quelli là fuori ma a volte vuoi
qualcosa di super-super semplice e in questo
caso stiamo guardando aa CI e tutti a
CI è di default deve avere un distaccato
firma quando si tenta di installare
i tempi di esecuzione di un contenitore devono essere controllati
vedere se c’è una firma di rilevamento e
fai il processo di verifica quindi puoi
spegnerlo, ma noi facciamo di passare a una
bandiera che dice in salta sicura
verifica in modo che
no stai facendo qualcosa che tu
probabilmente non dovrebbe farlo e così dentro
questo caso abbiamo questi tre artefatti
e le chiavi pubbliche così in quel modo
l’esecutore può scaricare quelle chiavi pubbliche
e utilizzare quelle chiavi pubbliche per verificare il
immagine ora c’è semplice scoperta e a
semplice scoperta , prendi i tuoi artefatti
e lo metti dietro qualsiasi endpoint HTTP
importa
buttalo su nginx mettilo su f3 Google
stoccaggio non importa si fa riferimento a
l’ URL completo e poi cosa accadrà
è un esecutore seguirà una convenzione
prenderà il tuo URL e compilerà il
vuoti quindi è un modello che vediamo
lì così prendiamo il nome dell’ACI
la versione o quel tag e il
l’estensione sarà un CI e quindi di
convenzione cercherà una conoscenza SC
quello è il vero distaccato
firma e tenta di fare il
verifica l’altra opzione è meta
scoperta quindi diciamo che hai un
esecutore che potrebbe essere diverso
capacità forse vuoi
distribuisci le tue immagini tramite BitTorrent o
qualcosa di un altro protocollo, quindi cosa?
puoi fare è puoi dare l’esecutore
suggerimenti e puoi anche avere un altro
posto dove si memorizzano le immagini reali
quindi forse non è sullo stesso server
questo sta scontando i metadati su dove
per trovare l’ immagine quindi in questo caso possiamo
colpisci un endpoint e tutto ciò che devi fare
è tornare indietro questa intestazione HTML a destra
e l’intestazione è solo un modello per
dì all’Esecutore come compilare il
spazi vuoti per trovare quello che vuole tutto bene
quindi ho colpito questo endpoint e ci riesco
Il tag di scoperta di Casey torna indietro e mi dice
che il contenuto che stai cercando così
se abbini questo nome usa questo modello
per scaricare effettivamente quello che stai cercando
per se il contenuto non è lì allora
dovrai solo gestire il normale
Il processo HDTV non viene trovato e quindi giù
qui otteniamo la chiave pubblica, quindi ho il
capacità di abbattere quelli durante il
processo di scoperta e questo è stato progettato
perché sentiamo che le persone lo faranno
probabilmente vorresti fare qualcosa al di fuori di
HTTP s3 forse anche qualcosa di simile
BitTorrent hai molti host così tu
voglio sapere dove possiamo trovare la voce
punto per quella roba poi il runtime
ambiente così l’altra metà di questo
la storia è che ora hai un’immagine
devo farlo funzionare così epsy definisce come un ciz
sono eseguiti su una casa particolare così
una cosa di cui dobbiamo parlare è come
il nostro layout del file system in modo che un’app veda noi
avere questo concetto di un pod e lo faremo
ne parliamo un po ‘più tardi
ma abbiamo avuto questa idea dai kubernetes
progetto della capacità di comporre a
raccolta di contenitori in un unico
l’unità di esecuzione ora ne consente alcuni
schemi interessanti puoi prenderne due
mappe distinte che devono essere eseguite insieme
e farli essere indipendenti è e
quindi comporli in un costrutto pod
ed è garantito che condivideranno il
stesso ambiente di esecuzione che significa questo
hanno condiviso lo spazio dei nomi così sono
andando a contattarsi o localhost
opzionalmente possono condividere punti di mount
tra di loro
e possono condividere i loro isolatori
significa quanta memoria della CPU è combinata
l’unità può avere ora una volta che hai un pod
concetto lo rende davvero facile
programma attraverso un cluster che puoi dire
queste cose devono andare insieme tu no
finire in una situazione in cui metà di voi
dipendenze atterrano su un host e il
l’altra metà potrebbe essere in sospeso e non può trovare
una casa e programmati in modo da risolvere
che avendo un volume di baccelli come abbiamo visto
prima nel manifesto come sono le limette
effettivamente gestito o come sono montati
il lavoro degli esecutori è di farlo per impostazione predefinita
devi essere in grado di gestire vari
networking quindi abbiamo una rete
implementazione o standard non andrò
nei dettagli c’è ma uno dei
implementazioni di AB C che è un razzo
ha il supporto per i plugin di rete quindi tu
può fare cose come IP VLAN o DHCP
qualcosa di simile al docker bridge
la tua scelta
hai portato il tuo plug-in e poi
Isolatori di risorse su Linux che lo farebbero
essere gruppi di C proprio la capacità di specificare
Limitazioni della memoria limitazioni della CPU questo
guy yo Network IO tutte le cose che
il kernel supporta puoi esprimere
quelli in una forma di Isolatori ora
Gli isolatori saranno diversi per
diversi sistemi operativi perché loro
significano cose diverse quindi il caso di
Linux in pratica stai descrivendo semplicemente C
gruppi e quindi la registrazione anche
specifica che il runtime è
responsabile della gestione dei registri per tutti
i baccelli e i contenitori che corrono dentro
loro poi c’è una serie di strumenti così
il
strumento di errore che spedisce all’interno del
applicazione spettri postulare Ori è
chiamato strumento AC e quale strumento AC lo farà
ti permettono di creare un contenitore così
diciamo che hai un sistema di CI e
stai costruendo la tua applicazione
puoi fare è allineare la radice
il filesystem per la tua app mette tutto
sul posto con mossa normale e CP
comandi e si finisce con questo
struttura della directory e quello che fai è
aggiungi un file di metadati che descrive
come dovrebbe essere quella particolare applicazione
essere eseguito e lo strumento di esecuzione AC eseguito
e poi sputa qualcosa di CI o di te
può farlo con solo strumenti da riga di comando
puoi semplicemente fare un tar e gzip
su quello e quello è lo stesso effetto il
la prossima cosa che puoi fare con lo strumento è
anche alcune cose ad hoc diciamo te
abbassa un elemento a cui vuoi guardarlo
manifest puoi stamparlo dal
riga di comando per vedere cosa è l’utente
intenzione era che puoi anche convalidare
questi si manifestano di nuovo come strumenti standard
per estrarre il manifest usando semplicemente tar
per recuperare un singolo file una volta che ho quello
singolo file Posso convalidare quel manifest
oppure puoi convalidare il tuo manifest prima
costruire la vostra un C’è anche possibile
convalidare l’attuale CI come te
costruiscilo e ci sono altri strumenti per
validazione degli endpoint di scoperta e creazione
certo che lo hai fatto bene e finalmente
lo strumento AC può anche essere utilizzato per convalidare
un’implementazione della specifica stessa
a destra ci sono un paio AC occhi possiamo
utilizzare per dare a un’implementazione a
esercitare la C lo fa in realtà
implementare correttamente la specifica un’altra
pezzo di attrezzo ultimo parlerò
circa è docker per un elemento di configurazione giusto così Dockers
l’ecosistema è vastissimo, ecco dove si trova il
la maggior parte dei contenitori vive e
c’è tra il formato di immagine Dockers e
app C sono così simili che possiamo
tirane uno al volo e convertilo
quindi hai più opzioni quindi se
stai correndo diciamo il razzo
daremo uno scaricatore di porto al punto che grab
contenitore lo converti al volo e basta
eseguilo a volte potresti volerlo
cambia un po ‘le cose così dentro
il mio caso e vedremo nella demo che possiamo
utilizzare dr in un elemento della configurazione per scaricare la finestra mobile
contenitore da in questo caso dal
registro queda io sto tirando giù questo
contenitore e hai appena notato che il mio
il contenitore è piuttosto piccolo è come sette
punto otto Meg è solo un binario ed è
comprimi il modulo e poi inizia
convertendolo in un AC io così
tutti gli strati e una bella cosa
questo strumento funziona su qualsiasi sistema operativo in cui tu
puoi eseguire questo go binary così da
il mio Mac posso effettivamente scaricare tutto il
strati di finestra mobile ma ciò che accadrà è
si inizierà la conversione di cose così nella vostra
file docker se si utilizzano i volumi
direttiva dr2 AC Posso capirlo
e in effetti creano tutti i metadati
pezzi dobbiamo rappresentare i volumi
che avevi bisogno del tuo AC I
automaticamente per te e poi solo
espelle il risultato e andrà effettivamente
attraverso questo quindi l’altra parte di un CI
o le specifiche del contenitore di applicazioni eravamo noi
volevo avere più implementazioni
per avere una specifica validata
hai bisogno di più di una implementazione di
quindi ci sono un paio di librerie FC
essendo quello che usiamo dentro
razzo e ci sono alcune librerie C ++
e c’è anche qualche runtime
implementazioni così poco dopo di noi
ha pubblicato una specifica qualcuno è venuto attraverso
con le jail freebsd e ZFS
implementazione di ab c– ero veramente
fantastico e lo hanno fatto in modo indipendente
semplicemente seguendo i documenti sul sito
chroma che è una gestione del contenitore
strumento di orchestrazione da una società in noi
chiama f Sarah e questo è carino
interessante che hanno questo sistema operativo contenitore
che fondamentalmente esegue l’applicazione
contenitori ma è stato progettato per essere simile
questo insieme coeso quindi è solo un
sistema operativo in cluster per impostazione predefinita e solo
ha scelto di utilizzare l’app C perché lo era
abbastanza specificato per loro da evitare
implementare le proprie cose e seguirle
standard che erano già stati pubblicati
e naturalmente lanciare una cosa a riguardo
razzo e la sua implementazione runtime a
molte persone non sanno molto in alto
livello ci sono alcuni dettagli lì
avere un alto livello di ciò che fa il razzo
prende questi file system di root e noi
avere queste cose chiamate diverse
palchi stadio zero stadio uno e palco
due che fase 0 è il nostro lavoro da scaricare
tutti quelli un CSI e costruire un file
sistema in modo da poter immaginare di farlo
dove c’è un Java un CI che ha appena
la tua JVM ha un altro CI
in realtà ha come il tuo file di guerra tuo
applicazione e forse alcune altre cose
che ha bisogno di correre sopra e quello che possiamo
facciamo è possiamo costruire questo e adagiarlo
in un file system di avvio finale e
quello che facciamo nel razzo è che lo prendiamo
root filesystem e lo diamo al sistema
D e
ma lascia che gestisca il processo per
tu e il modo in cui lo facciamo funzionare
sistema D nello spawn o sistema D in generale
stiamo guardando il tuo manifest e possiamo
genera automaticamente l’unità D del sistema
file per te e dire che ecco il
punto di esecuzione ecco i comandi di te
c’è bisogno di tutti i supporti di cui hai bisogno
e possiamo trasformarlo nel sistema operativo in
gestisci la tua domanda per te allora
erediti tutti i benefici di
qualcosa come il sistema D e vedremo
quello che sembra
va bene così prima che arriviamo al dem
parleremo di razzo a
un po ‘e vado a prendere le mani
con questo così voi ragazzi potete riempire il
flusso reale per questo così razzo abbiamo dovuto
cambia il nostro nome a causa di scontri sul nome
con altri progetti quindi lo chiamiamo semplicemente
la nostra Katie ma abbiamo ancora lo pronunciano
razzo così il razzo è un CLI uno strumento per
esecuzione di contenitori di app su Linux
proprio qui non ci sono piani da fare
funziona su qualsiasi altra piattaforma è
pod Linux speriamo di vederne altri
implementazioni su altre piattaforme che utilizzano
i loro costrutti nativi, ma il razzo no
essere quello strumento universale per farlo a
almeno oggi la cosa importante da fare
capisci che il razzo non ha demoni in
tutto a posto quindi non c’è demone di razzi
che funziona che interagisci con te
sapere che il razzo corre in primo piano e
questo funziona bene con sistemi come
upstart e sistema D perché lo faranno
assumere e gestire il processo in corso
avanti quindi dobbiamo fare davvero qualcosa
cose complicate se hai una linea di comando
strumento che ha nel negozio di sistema dove
stai memorizzando tutte le tue immagini una volta
scaricarli poi devi fare le cose
come i blocchi del file system e la consulenza
serrature per assicurarsi che più
le istanze della CLI non si avviano
collisione e sovrascrittura dei dati ma noi
gestisci che il vecchio stile affronta
ora una cosa unica nel razzo è
che il motore di esecuzione è scambiabile
quindi quello che ho spiegato prima era che noi
utilizzare il sistema D e il sistema D in spawn a
prendi il tuo CI e gestiscilo idealmente
potrebbe usare il contenitore live direttamente dal
progetto docker e fare esattamente lo stesso
cosa devi solo interpretare il
metadati e fai ciò di cui hai bisogno o dentro
il caso di Intel in realtà prendono
i tuoi occhi AC e gestili molto
VM specializzata che viene eseguita in KVM
ti dà non troppo male velocità di esecuzione
in circa 150 millisecondi e il bello
La cosa è che conosci le persone
sono preoccupati per la sicurezza dei container te
probabilmente dovrebbe essere preoccupato
sicurezza del contenitore perché non lo è
inteso come significato di limite di sicurezza
più per tipo di darti l’euforia del ghiaccio se
lo lanci in una VM che hai ereditato
che quel muro giardino sono alcune persone
cercando così ciò che Intel fa loro
prendere il razzo e aggiungere un altro
fase di esecuzione uno dove loro solo
gettalo all’interno di KVM e avvialo da
Là
giusto ma il flusso di lavoro si sente esattamente il
lo stesso hai un ACI a cui lo dai
gli esecutori e gli esecutori scelgono
questo di nuovo in cui vuole correre sotto
o hai la possibilità di correre
dr. immagini direttamente da
qualunque registro tu abbia funzionato
bene nella maggior parte dei casi ed è amichevole
all’interno dei suoi sistemi e cluster
strumenti di orchestrazione quindi una cosa noi
voleva fare era assicurarsi che il razzo fosse
abbastanza piccolo da essere qualcosa che si costruisce
le piattaforme in cima alle buone notizie sono a
molto del lavoro che abbiamo fatto nel razzo e
la collaborazione che stiamo facendo
il team di docker sta cercando di ottenere alcuni di questi
la stessa modularità all’interno della finestra mobile così
sarà bello se puoi prendere docker e
eseguirlo senza demone o forse prendere
finestra mobile ed eseguirlo solo con la build
passi a destra o fare fare la finestra mobile
dove funziona solo in primo piano e
consentire qualcosa come systemd da prendere
e poi i pod sono così unici
ancora una volta è possibile eseguire uno di essi
più contenitori in un’unica esecuzione
unità e se lo fai quella pausa ottiene
spazi dei nomi condivisi e facoltativamente volumi
quindi abbiamo parlato del sistema D ed ecco a
un po ‘più in dettaglio Intel chiama loro
implementazione chiaro contenitori destra
Intel ha fatto molto lavoro e
investimento per far sì che le macchine virtuali siano veloci
con le loro estensioni vxt e tutto il
sicurezza che loro hanno fatto intorno
è così che hanno deciso di fare
accetta l’altra tecnologia che tu
trova nel kernel e loro in realtà
capito un modo per velocizzare le cose così
la maggior parte delle VM oggi si avviano in non so
secondi a volte minuti a seconda di
la tua piattaforma ma i secondi sono davvero
lento rispetto a quello che ottieni
un runtime del contenitore come finestra mobile o
razzo quindi quello che sono riusciti a fare è stato
capire come costruire un sottilissimo o
Wes, basta
per portarti al docker giusto anche saltando
il processo di avvio del BIOS perché non lo fanno
ne ho bisogno
giusto sanno che non hai intenzione di
cercare di eseguire un sistema completo lì così
tu salti l’intera cosa allora tu
andare direttamente nel kernel nella finestra mobile
e tu fai funzionare il contenitore facendo così
consente loro di ottenere la via dall’alto verso il basso
quindi ne avrai altri 18 a
20 Meg di overhead sulla memoria ma tu
ottenere tutte le cose che sono stati utilizzati per
prima di allora se hai qualche kayvyun
strumenti di gestione indovinare ciò che hanno appena
lavoro se hai quella sovrapposizione di fantasia
cosa in rete che stavi usando
con KVM funziona quando apri il
strumenti di gestione dello stack con volontà di razzi
basta lavorare e la stessa cosa può
eventualmente applicato alla finestra mobile di
costruendo un altro back-end di esecuzione tutto
giusto, ecco come funziona il razzo a
livello molto alto quindi ricorda che ho detto
di default devi fidarti delle immagini
che tu fai notare ora c’è una bandiera
dove puoi saltare la verifica ma
cerchiamo di non promuovere quell’idea che vogliamo
questa idea dove, in questo caso, se voglio
per scaricare questo set di kubernetes di
binari o un CIS ho bisogno di fidarsi del
chiave pubblica prima chiave a destra distribuzione
è un problema affidato alle chiavi delle persone
altro problema ma una volta che ti fidi
qualcuno è così che lo aggiungi al tuo
negozio quindi in questo caso sto facendo questo a
tasto radice che dice che non vuoi nulla
firmato da quella chiave di cui sono disposto a fidarmi
ora puoi chiarire questo argomento e dirti
so cosa mi fido di quella chiave per un singolo
AC I immagine che è o forse da
qualsiasi cosa da un dominio specifico se tu
voglio solo scaricare un AC III e
verificarlo
si esegue il comando di recupero del razzo e
una volta che hai scaricato alcuni di questi
cose che puoi chiamare le immagini per vedere
tutto ciò che è installato sul tuo
sistema ora una cosa da tenere a mente
quando i download di razzi in un CI vengono archiviati
con il suo hash giusto così tante persone
vengono gettati via quando si prende un contenitore
e tu lo chiami, non lo so
0:19 e spingi bene quell’etichetta
chiunque era libero di sovrascriverlo
etichetta di nuovo a destra e indovina cosa è 0:19
questa nuova cosa era qualcos’altro
ieri ma è questa cosa nuova
oggi e questo ti butterà fuori
perché non si comporta nello stesso modo
anche se ha lo stesso nome così dentro
razzo quando vai e prendi un contenitore
prendiamo che otteniamo l’hash
di esso sha-512 e poi lo immagazziniamo
il significato del contenuto indirizzabile del negozio
che quando vuoi eseguire quella cosa
di nuovo guardiamo l’ indice e corriamo
che hash è quello che non stiamo andando a
vai a prendere qualcosa perché ha il
stesso nome che non corrisponde a quella hash siamo
non eseguirlo se qualcosa viene buttato via
con i contenuti su questo sarà
rotto
va bene questo dà un po ‘di gente
più sicurezza e fiducia in quello che tu
in realtà la grande notizia è dentro
le specifiche v2 della dockter che stanno pianificando di fare
la stessa identica cosa se hai visto
parte del lavoro nel dr. V 2 puoi
in realtà si rivolgono ai contenitori – sono
hash ora a destra quindi questo è molto chiave per
in realtà avendo un po ‘ di questo immutabile
infrastruttura o qualcosa che puoi
in realtà si fida quindi è eccellente
vedi ora quando vuoi eseguire un pod quando
lanci un pod anche se sei dentro
In questo caso sto facendo funzionare un singolo contenitore
corrono ancora in un baccello ecco quello che tu
ora questo è un po ‘il nostro razzo Bose
ha un file di configurazione quindi se non l’hai fatto
voglio specificarlo sul comando da riga di comando
in realtà metterlo in quello che chiamiamo loro pod
manifest, quindi è fondamentalmente come adiacente
descrizione di tutte le bandiere che tu
bisogno di passare tutti i volumi e poi
puoi semplicemente passare i file di configurazione al razzo
invece di tutte queste bandiere così eccomi qui
mostrandolo in questo modo per semplicità così
all’interno del nostro ACI, specificiamo che noi
bisogno di alcuni volumi e poi in fase di runtime noi
mappare quei volumi e dobbiamo essere
specifico il volume proviene dall’host
possiamo anche contrassegnarli molto di sola lettura
simile al modo in cui i documenti gestivano i volumi
e poi di nuovo stiamo specificando il
ACI che vogliamo ora ricordiamo una volta noi
usa questo nome e noi scarichiamo un ACI
esecuzioni future useremo invece l’hash
tornare su Internet e poi
il resto di questi è la bandiera passata a
il punto di ingresso nel contenitore molto
simile a quello che fai nella finestra mobile e
poi se voglio elencare le cose che
sono in esecuzione eseguiamo la lista da te
hanno anche la possibilità di usare l’altro
comandi systemd come la macchina CTL
perché quando gestiamo un contenitore di razzi
ci registriamo con il sistema D e tutto il
altri strumenti del sistema operativo funzionano semplicemente a secco
tutto il resto del sistema operativo è completamente
integrato e infine quando corri
un sacco di contenitori non so come
molti di voi si imbattono in questo che stai correndo
contenitori contenitori per i keniani loro
muoiono, vanno e vengono, vanno e vengono
e poi ti piace il docker PS – ae
sei come chi ha fatto quello giusto e
allora non sei veramente sicuro su quale
quelli che puoi eliminare perché potresti
elimina uno che è ancora in essere
usato da qualcuno è esilarante quando tu
fallo così in quello che facciamo in racket noi
abbiamo questo fondamentalmente abbiamo preso molto
approccio semplice alla raccolta dei rifiuti
i contenitori ci stanno bene se il
contenitore non è più in esecuzione ed è
essendo referenziato da nessun altro allora noi
basta fare questa parte in cui spazziamo noi
solo dire hey stiamo andando siamo segniamo tutto
le pause li spostiamo in un altro
directory sul filesystem
dettaglio di implementazione ma abbiamo appena segnalo
loro e ti dà il tempo di piace ehi
forse ricominciamo e poi abbiamo
alcune politiche quindi per impostazione predefinita ogni 30
minuti passiamo attraverso tutto ciò
è stato garbage collection o contrassegnati lasciare
li spazzo, loro vanno via e noi l’abbiamo fatto
in un modo in cui è possibile eseguirlo
comando all’interno di un lavoro cron proprio così
li segneresti sul tuo calendario
li spazzi nel tuo orario o tu
puoi semplicemente eseguirli di nuovo manualmente
no daman, quindi sei libero di capirlo
come vuoi fare questo e poi questo è
come gestisci il razzo con SystemD Upstart
sembrerebbe qualcosa di simile, quindi questo è
un normale sistema d-unità
così invece di eseguire un binario qui noi
esegui il comando del razzo che abbiamo visto
la riga di comando prima e poi tu
arrivare a usare il resto del sistema D
gestione del processo che significa riavvio
politiche tutte le altre verifiche degli errori
e un altro grande per me che penso
è davvero potente la maggior parte delle persone si affaccia
è la capacità di dipendere da un altro
servizio giusto come non iniziare questo
servizio a meno che non inizi l’altro server
va bene così sistema che tipo di
ti dà quello gratuitamente non stiamo andando
per provare a implementarlo in un razzo a
Gestore del processo migliore gestirlo e
allora usi solo il tuo normale sistema
strumenti proprio così al primo avvio questo
cosa sarà scaricata nella
negozio content-addressable che lo convalida se
tutto controlla che funzionerà se non
fallirà e il sistema D te lo dirà
hey ecco l’ errore che abbiamo ricevuto dal razzo
contenitore non valido non verrà eseguito
va bene così questa è la panoramica di epsy
e lanciamo così cercheremo di farlo ora
viene eseguito attraverso la conversione di alcuni
container docker guarderemo il
file più scuri e basta vedere cosa serve
per renderli un CIS di destra e me ne vado
per cercare di scegliere un insieme complesso di cose
c’è un progetto chiamato cover nays di
Google che ti permette di gestire
contenitori e scala così che cosa ho fatto
è e mi piace usare molto la finestra mobile
in realtà ho creato contenitori docker
per ognuna di queste cose va bene così io
fatto in un modo in cui ho effettivamente usato
qualcosa come composto da far girare a
kubernetes pieno raggruppano sei
interessati a che si può controllare
quei dettagli ma quello che stiamo andando
concentrarsi su qui è fondamentalmente ho creato un
un mucchio di contenitori docker che sembrano
come questo diritto molto semplice faccio del mio
costruire e CI perché non mi piace il grande
bill contenitori così prendo i miei artefatti io
li ho copiati e cosa sono
fare qui sta specificando ogni singolo
volume che ho intenzione di mappare in
futuro sto facendo questo per dare suggerimenti per
gli strumenti ACI per la conversione corretta
perché senza questo dovrò fare
alcune cose strane e te ne mostrerò un po ‘
di quei problemi il più complicato
file docker che ho in questo insieme
stack è il couplet couplet è il
interessante perché interagisce con
l’host e ha bisogno di fare qualcosa di strano
cose per l’host e ha un po ‘
un po ‘ di problemi in esecuzione da un contenitore
Devo sapere che l’host è il rilascio I
bisogno di essere effettivamente in grado di ispezionare
anche le cose che i Dockers fanno
esegui alcuni binari che vivono sull’host
e ho bisogno di fare un pasticcio di cui ho bisogno
usa NS per entrare nel namespace di
l’ host così posso fare mount point lì
in questo modo quando le cose vengono montate via
finestra mobile in altri contenitori è ancora
funziona quindi è un’immagine piuttosto complessa
che quando l’eseguo ho intenzione di avere a
montare alcune cose in modo da specificare tutto
le cavalcature ora voi ragazzi sapete cosa
edificio Duckers immagini sembrano così
una volta che ho tutte le mie immagini costruite e bene
questa è la parte in cui faremo un po ‘
una soluzione, quindi quello che voglio fare è
prendi tutti i miei occhi AC che stanno correndo dentro
Quetta AO e convertirli in un CIS
va bene così come lo facciamo
verrà utilizzata la finestra mobile in uno strumento CI
Li ho scaricati nel caso Wi-Fi
non funziona ma proveremo un paio di
loro in modo da poter vedere l’idea qui così
inizieremo con il server API
quindi quello che facciamo qui è eseguire la finestra mobile
a un comando di CI e noi diamo questo
prefisso sai docker colon due punti I
significa “barra del colon” che lo sa
ha bisogno di uscire alla finestra mobile e cosa sarà
capita qui Wi-Fi per favore lavora è volontà
inizia a scaricare ciascuno dei livelli e
una volta che li avremo tutti su disco andremo
attraverso il significato del processo di conversione
vogliamo solo il filesystem di root
hai mai guardato all’interno di un’immagine docker
c’è un mucchio di altre piccole radici
file system che costituiscono il diverso
strati prendiamo tutti questi e solo
combinalo e fondamentalmente appiattisci il
tutto fuori
strappiamo i metadati dall’aspetto docker
al suo file JSON e lo convertiamo e
mappare le chiavi che hanno senso e poi noi
finire con qualcosa di simile giusto così
una volta che hai uno di quelli che puoi usare
Strumento AC per cat il manifest, vediamo così
ci sono un paio di comandi qui che possiamo
possiamo manifestare il manifest di cat
convalida per assicurarsi che la cosa che
in realtà convertito funziona davvero se
vogliamo noi possiamo cat il file manifest
vieni manifestare e poi lo faremo
stampalo stampalo in modo che possiamo vedere realmente
come sembra senza un casino
drat
Jason sul mio schermo e abbiamo scaricato il
distico quindi Kelsey Hightower e
server API coop e questo è ciò che
la conversione sembra giusta così il tag
abbiamo ottenuto da docker finito per essere il nostro
versione il nome è queda IO I in realtà
non mi piace quel nome, quindi voglio cambiare
questo diritto, ma io non voglio manualmente
entra e strappa questa cosa e mettila
di nuovo insieme, quindi quello che possiamo fare è usare
il comando patch così posso effettivamente
patch alcuni occhi AC così qui e io solo
metti questo sul terminale in modo da poter vedere
un po ‘meglio possiamo chiamare l’AC
comando manifest patch occhio posso rinominare
l’AC I
e questo è tutto ciò che voglio davvero fare per
questo e quello che sta succedendo qui è
l’a / c è stato squarciato il
manifest è stato aggiornato
alcuni valori che vogliamo ed è essere
rimetti insieme ora quelli sono tutti
piuttosto semplice ma quello che è a
un po ‘più complesso è il reale
distico un punto di montagna che non posso
fare in un CI o che la finestra mobile non consentirà
devi fare il montaggio di un Etsy risolto
comm bene che viene aggiunto in fase di esecuzione
da docker se si tenta di specificare che come
una finestra mobile del volume non ti consentirà di costruire
un contenitore quindi quello che devo fare è farlo
dopo il fatto, quindi ho intenzione di patch
che nell’usare il comando patch così per
il distico faremo eseguire questo comando e
dobbiamo anche eseguirlo come privilegiato
contenitore ora nel manifest di Dockers
non c’è modo di dire che questo è necessario
essere un contenitore privilegiato ma in un CI I
necessario specificare questo modo al fine di fare
che posso specificare il mount di cui ho bisogno
ottenere comm risolto e posso davvero
specificare un po ‘più di capacità qui così
una volta che l’ ho fatto costruisco il mio nuovo
contenitore e se si nota che sono in realtà
rinominando tutti questi contenitori mentre vado
attraverso questo diritto, quindi mi sto spogliando
il mio prefisso dal registro così sto andando
passare molto velocemente e convertire
il resto di questi e una volta che ho questi
fatto la prossima cosa che dobbiamo fare noi
devono firmarli correttamente, quindi è la firma
piuttosto semplice fai tutto
con GPG quindi se hai esperienza con
GPG, quello che possiamo fare è che lo faremo
esportare la chiave pubblica per la mia chiave di firma
e questo è così che posso ospitarlo sul mio
endpoint quindi questa è la chiave pubblica
possiamo fidarci più tardi e poi possiamo andare
attraverso e inizia a firmare il nostro un IC così
Lo userò per ciclo
solo andando a passare per ogni CI
produrremo un distaccato
firma per ciascuna di quelle cose giuste
in modo che andremo a firmare tutti ora questo
può saltare in aria perché non mi sono convertito
tutto il mio contenitore va bene, un CI è finito
vediamo cosa succede
va bene , è firmato quello
erano a posto quindi ora ho il test
firme per tutto il CSI proprio così
quelli sono tutti gli artefatti di cui ho bisogno ora
una volta che hai questi artefatti, sono solo
andando a memorizzarli in un secchio di file
Farò il calcolo di Google giusto così questo è il modo
li distribuisci così li costruisci
li firmi e li ospitali dove
tu vuoi che il razzo supporti, credo
cose come l’ autenticazione di base quindi se vuoi
metterli dietro qualche autenticazione voi
può farlo e quello è il back-end
collegabile in modo da poter aggiungere altro
meccanismi di autenticazione quindi eccomi qui
hosting di tutto ciò di cui ho bisogno il prossimo
cosa che dobbiamo fare prima di poter lanciare
questi contenitori è che abbiamo bisogno di fidarsi del
chiave, quindi quello che facciamo è che saltiamo sul nostro
macchina quindi ecco la macchina in funzione
razzo e diciamo di crederci
particolare chiave pubblica che farò
una chiave principale in modo che mi sta chiedendo ti
sei sicuro di volerlo questo
particolare chiave quindi questo è nel mio razzo
chiave di firma della scienza e ciò che accade è
esso viene memorizzato nella catena chiave che
vive di nuovo sul server tutto ciò che può
essere fatto con semplici strumenti da riga di comando
quindi se volete conoscere tutte le chiavi che
dal vivo sul tuo sistema puoi lanciare LS
directory di chiavi fidate e sono tutte
memorizzato lì con le loro impronte digitali
nome giusto, quindi tutto ciò che ha un
impronta digitale che chiave verrà utilizzata durante
il processo di validazione ora una volta
fidati di queste cose su cui puoi correre
la riga di comando ma ricorda che lo sarà
appuntato in primo piano, quindi cosa tu
davvero vuole fare è creare il sistema D
per tutte queste cose e ho anticipato
tempo mettere le unità sistemd in posizione così
qui ho un’unità di sistema D per tutti
questi servizi se lo guardi e
alcuni di loro hanno dipendenze dagli altri
la maggior parte dei servizi qui richiede questo
questo server API è attivo e funzionante qui
Sto facendo una configurazione completa per
kubernetes
e cosa voglio fare se guardi il
controller manager richiede anche il
Server API quindi lo lasceremo fare
Sistema Lavori che per noi e
lasceremo anche che il sistema D gestisca il
riavvia se questo dovesse fallire tutto bene
e anche correndo in primo piano che
il razzo fa di default
questo significa che il diario è completamente
integrato in modo che tutti i registri scorrevano
la gara di rotazione del sistema D Journal
gestito e tutte quelle cose che non facciamo
devo andare a cercare i log per il nostro effettivo
contenitori una volta che iniziano a correre così
questo punto possiamo solo iniziare
le cose vanno bene così possiamo abilitarle se
vuoi che inizino automaticamente da
tempo di avvio o basta chiamare l’inizio
comando per il sistema D, quindi lo faremo
qui lo farà il responsabile del controller
davvero non importa quale ordine comincio
questi in principalmente perché il reale
binari stessi sono sufficienti per intelligenti
aspetta che le dipendenze vengano fuori
bene avviare lo scheduler e poi lo faremo
finalmente inizia l’ Akula tutto a posto
ora puoi da qui in avanti che puoi
effettivamente utilizzare i comandi di sistema D per capire
gestire le cose sui tuoi processi
li in questo modo se vuoi o possiamo usarli
alcuni comandi di razzi così posso fare il razzo
lista e vedo che tutti i miei contenitori
stiamo effettivamente correndo anche noi
integrazione con la macchina CTL così possiamo
elencateli e il CTL della macchina a destra
conoscere il razzo registra tutto
i tuoi contenitori con il sistema D e poi
puoi iniziare a usare la CTL della macchina
strumenti e sono tutti indirizzati da questo
hash e una volta che è attivo e funzionante se
tutto funziona correttamente noi
dovrebbe essere in grado di vedere i kubernetes
in realtà funziona e ci riesce
effettivamente vedo che uno dei nodi ha ottenuto
registrato nel sistema, quindi cosa abbiamo
fatto qui abbiamo preso un set di finestra mobile
contenitori li abbiamo convertiti in AC
occhi
li abbiamo firmati li abbiamo patchati
li in un repository upstream noi
creato alcuni file di unità di sistema per
loro e poi facciamo riferimento a questi ACIS
che abbiamo costruito prima e ora gettiamo
li nelle unità del sistema D e lasciamo che il
sistema prendere in consegna e gestire i nostri servizi
proprio come stavamo facendo prima come rpms
o distro degli inverni statici e ora abbiamo
un equipaggio completo Bernays single senza cluster up
e correndo così con quello che mi piace
concludere la presentazione e aprirlo
per domande grazie
Prenderò che la prima domanda è questa
la persona che crea l’immagine che firma
o è il repository che firma
l’immagine si vede cosa intendo così
domanda era chi è responsabile di
firmando l’immagine tu vuoi sempre il
la responsabilità è la persona che è
distribuire e costruire l’immagine
giusto questa è la tua relazione di fiducia
voglio avere così non con il repository
perché chi è il repository giusto a
entità singola che firma tutte le immagini
il numero uno se non costruissero il
immagine o non ha avuto origine per loro
è davvero difficile per loro essere
responsabile in modo ideale se riesci a ottenerlo
più vicino alla persona che è in realtà
costruire, compilare o scrivere il
software che è l’entità che desideri
fidarsi di sì, quindi la fiducia è difficile
come se lo volessi, quindi la domanda era
la domanda di follow-up è stata quindi necessaria
chiave per ogni immagine di follow-up quindi lì
potrebbe essere un mondo in cui hai qualcuno
che curerà i contenuti che conosci
non c’è niente da cui fermare qualcuno
diventando la distribuzione centralizzata a
avere qualche tipo di processo di qualificazione
per dire hey abbiamo controllato queste cose e noi
fidati di loro e poi stabilisci fiducia
con quelle entità proprio loro
firme staccate possono essere ridimensionate
va bene così puoi averne molti
firme per loro giusto così da quando è
non cotto nell’immagine reale che sei
libero di andare a prendere queste cose e ridimensionarle
li per la tua stessa entità e dì sì noi
fidato della persona che l’abbiamo scaricato
lo abbiamo convalidato ora spostiamolo in
il nostro repository e riassegneremo
loro con la nostra chiave e poi tu
fidati che i bambini siano una buona domanda
sì, la domanda è tutti i comandi
che ho corso così lontano
il comando della lista dei razzi richiede sudo correttamente
e la domanda è: puoi lanciare un razzo?
così come un utente in rotta su un sistema, così siamo
lavorando su quello il problema principale è quello
accesso ai gatti dove tutto è
memorizzato quindi se guardiamo sotto la nostra vita
razzo questo è dove tutto il contenuto
roba regolabile è così tutto il blob tutto
gli hash e quella è una posizione sicura
e l’unica persona in questo momento che noi
lascia capire che è rotta, quindi abbiamo
per capire un modo per sapere come possiamo
dividi questi privilegi e così via
vogliamo fare è avere la capacità di
scaricare contenuti come qualsiasi visualizzazione utente solo
probabilmente come utenti autorizzati ma poi
runtime richiederà l’ autorizzazione
necessario per eseguire un binario sul particolare
sistema così oggi giusto quindi questo è quello che
siamo questo è quello che stiamo ottenendo se
possiamo solo possiamo dobbiamo capire
come appare il modello da una UX
punto di vista è più facile da centralizzare
tutto ma puoi immaginare un mondo dove
ci sono contenitori che ottengono
installato localmente nel tuo utente
directory e hanno vissuto solo lì
proprio così da quando questa base di file system
non c’è davvero nulla che ci fermi da
dicendo qui c’è un set di chiavi fidate
ecco una serie di vitelli per tutto il
immagini e questo è solo locale per il tuo
particolare home directory e poi
le cose si lanciano e vivono lì solo nel modo giusto
così ci siamo posti fino ad essere in grado di fare
quello giusto è solo una questione di
buona domanda prioritaria
qualsiasi altra domanda è fantastica, fantastica
grazie ragazzi per la partecipazione
tu
contenitori questa è la traccia docker ma
devi sempre controllare quante persone
sono un paio di altri contenitori fantastici
perché non ho intenzione di immergermi in profondità
che contenitore è, ma parlerò
riguardo ai contenitori in genere, in genere
non mi piace parlare di contenitori
perché penso che siano davvero come 1 a
5 percento del problema generale ma
questo discorso è piuttosto interessante, penso
perché abbiamo parlato della necessità di
cose come standard, quindi lo faremo
parlare di un razzo di un’app vedere quale è
le specifiche del contenitore dal sistema operativo principale in un
tentare di fornire uno standard del settore
linee guida su quale applicazione
contenitore è e la prima domanda noi
è per questo che scrivi così presto sai
forse anche pre-docker un sacco di gente
aveva questa visione che potevano usare
contenitori per costruire il perfetto
infrastruttura giusto così tante persone
la loro prima esperienza con il
container vai 5 minuti in e
le cose sono fantastiche, hai questo
nella tua mente o qualunque cosa tu sia
la tua infrastruttura sembra proprio ora
la tua convinzione iniziale era che ti adattassi
contenitori e sarà
bellissimo
e poi vai in produzione e tu
Scopriamo che c’è un sacco di pezzi
manca giusto così sai che sei tu
distribuendo stai distribuendo ma non lo fai
mi piacciono davvero cose come il servizio
scoperta capito e poi tu
scopri cose come il docker bridge
per la prima volta e si scopre che
non è davvero facile avere i padroni di casa
comunicare tra loro e in
alcuni casi e alcuni rari casi voi
in realtà scaricare un contenitore che
in realtà si preoccupa di quale kernel
la versione è in esecuzione e ora non hai
modo di affrontarlo perché c’è davvero
no standard intorno a questa roba è solo
nuovo a destra in modo da spostare verso quella strada e
cosa fai se sei uno sviluppatore te
chiama la tua squadra di ops quando sei fuori squadra
ti vede tipo di vacillare e le cose sono
sembra brutto, quindi stai portando le tue operazioni
squadra
ancora una volta non ci sono standard così
sfortunatamente il tuo team operativo non può fare
molto per voi in questo modo, purtroppo,
è così che andrà a finire voi
in realtà non hanno scelta in questa materia
la buona notizia è che le cose sono
migliorando e uno degli obiettivi di questo
parlare è principalmente per fornire una panoramica di
spec. del contenitore dell’applicazione e chiamiamo
app C in breve e poi razzo che
è il nostro KT è pronunciato razzo e io sono
andando a evidenziare dove app C e il
formato immagine docker d’accordo quindi c’è un
molte cose persone coinvolte in app II
d’accordo che la finestra mobile ha fatto bene quale
è fornire questa idea che siamo in grado di assumere un
applicazione e descriverlo come un singolo
applicazione su cui possiamo ragionare
questo significa che smettiamo di parlare di Java
questo significa che iniziamo a parlare di Ruby
e parliamo solo di applicazioni
giusto e l’altra parte è lì dovrebbe
essere una configurazione all’interno di quell’immagine che
dice a un esecutore cosa fare con quello
immagine giusta, quindi vogliamo scrivere è scrivere
che in basso cosa significa e poi
quando un piatto e penso di guidare davvero
la casa delle specifiche che faremo davvero
qualcosa con esso così vivo che sto andando a
prendere una serie di immagini di finestra mobile che sto per
convertirli in occhi AC che vedrò
che aspetto ha questo processo, così possiamo
vedere dove le cose sono le stesse e dove
le cose sono diverse e poi lo faremo
parlare di come effettivamente firmare e
distribuire quelli così uno degli obiettivi di
FC: avevamo bisogno di un modello di fiducia più forte
quindi se stai tirando fuori cose a caso
prima non dovresti fare internet
quella
non tirare cose a caso dal
internet ma una cosa che ti piacerebbe
fare è essere in grado di tirare qualcosa e
convalidare da dove proviene
va bene così se hai gestito
sistemi per qualsiasi quantità di tempo che hai
è stato abituato a questo per tutta la tua carriera
giusto usando un gestore di pacchetti normalmente
quei pacchetti sono firmati da a
entità specifica di cui ti fidi quando
li porti dentro
sai in qualche modo a chi ti stai fidando
ci siamo trasferiti nel selvaggio west ovest questi
giorni in cui ci sono solo cose sul
internet e siamo proprio come a caso
portali nella nostra infrastruttura e
questo è particolarmente pericoloso quando tu
inizia a pensare a portare le cose
come i database
e servizi chiave che alimentano il tuo
l’infrastruttura si sta veramente facendo
veramente veramente pericolosa per un sacco di
gente e poi ne parleremo
come fare effettivamente qualcosa con il razzo
come perché abbiamo costruito questo e come è
fondamentalmente diverso dagli altri
container runtimes quindi prima ad un massimo
livellare le specifiche del contenitore dell’applicazione e
gli obiettivi con questo è avere qualcosa
questo è ben II significato specificato che abbiamo
documentato ogni singolo dettaglio su cosa
un’immagine è come dovrebbe essere eseguita
quale chiamata di sistema dovrebbe essere in gioco e
vogliamo costruire una comunità intorno ad esso
quindi gli obiettivi erano le specifiche non è buono se
c’è solo un’implementazione di esso in modo
stiamo cercando di incoraggiare altre persone a
implementare e ci sono in realtà a
paio di implementazioni del
specifica del contenitore dell’applicazione in modo tale che il numero
una cosa è il formato dell’immagine giusto il
il formato dell’immagine è chiamato ACI secondo è
un meccanismo di scoperta quindi quando costruisci
una di queste immagini dovresti essere in grado
per ospitarla ovunque tu voglia
significa se hai un server web e tu
voglio solo buttare le tue immagini lì dentro
e servili semplicemente alla tua organizzazione
dovrebbe essere in grado di farlo che non c’è
registri speciali non ci sono impostazioni predefinite
registro in modo che sia buono e cattivo in alcuni
modi in cui la parte cattiva è che non c’è un centro
posto dove andare a trovare tutti gli ACS nel
mondo la parte buona è che non hai bisogno
molti strumenti per ospitare una qualsiasi di queste cose
tutto nel contenitore dell’app
specifica è stata pensata per essere semplice voi
può costruire una specifica del contenitore di applicazioni
la nostra immagine con gli strumenti da riga di comando a destra
puoi usare tar gzip e GPG per firmare
loro e si può solo costruire il proprio
immagine senza fantasia totalmente richiesta e poi
l’ ambiente di runtime , quindi quello che fai
avere un’immagine e puoi trovare l’immagine
la prossima cosa che devi fare è essere in grado
per specificare come si esegue l’immagine, quindi se
vuoi essere compatibile con
specifiche del contenitore di applicazioni necessarie
fare un certo insieme di cose in modo che
le persone possono anche contare sul comportamento
attraverso i sistemi e quindi una serie di strumenti
per aiutare a costruire convalidare e aiutare le persone
solo in generale ottieni l’applicazione
implementazioni corrette
la prima cosa di cui parlo è la
formato di immagine quindi il formato dell’immagine molto
simile al formato dell’immagine della finestra mobile qui
praticamente il punto di partenza
contenitore di applicazioni spec esigenze ACI
per contenere tutto ciò che il
l’applicazione deve essere eseguita e se lo è
non dovrebbero almeno specificare il
montare i punti che devono essere aggiunti a
fallo così se pensi a se
stai usando la finestra mobile e hai un
l’immagine l’immagine ti dice alcune cose
forse è il punto di ingresso, ma non è così
devo dirti tutti i volumi
richiede che tu sia libero di comprare solo mount
in tutto e sono mappati ovunque
vogliono giusto quindi ce n’è un po ‘
vantaggio là c’è flessibilità ma
non puoi leggere l’immagine manifest all’interno
di un formato finestra mobile per conoscere il necessario
importo punti per un’immagine quindi se qualcuno
scrive davvero buona documentazione lo farà
essere davvero facile da abbattere e montare
cose ma sarebbe molto meglio se si
in realtà ha eseguito l’ immagine e ti ha detto
non ha montato in tutto il monte richiesto
indica che questo non funziona, possiamo farlo in
app C perché ne facciamo un requisito
quindi ci sono due cose principali che c’è una
il filesystem di root è la stessa cosa dei Dockers
il formato dell’immagine e il filesystem di root è
solo che alcune persone prenderanno un
sistema esistente e si può tar il
tutto su e rendi quella tua radice
file system su cui è possibile utilizzare la finestra mobile
è probabile che produca un filesystem di root
il modo più popolare di produrre root
file system in questi giorni o è possibile utilizzare
strumenti di sistema nativi di Debian RedHat
buoni strumenti per costruire sistemi completi in
alla radice e quindi hai bisogno di un’immagine
manifestare così per un ACI molto semplice questo
è uno di un progetto chiamato kubernetes
per la gestione dei contenitori e questo è il
Server API ed è un collegamento statico
andare binario in realtà questa donna non lo è
collegato staticamente li legherò
in alcune librerie dall’host
normalmente non farebbe che a volte
diresti solo che ho intenzione di costruire
cima a Debian ma sono un grande fan di
contenitori che sono circa 10 Meg’s che faccio
non come scaricare i contenitori che sono
come 500 Meg o un concerto e ci sono modi
si può andare in giro che e il manifesto
quindi se visiti la specifica ha dettagli
su ogni chiave che puoi trovare o
descrivi in un manifest
ora questi manifesti sono la versione
quindi questa è la 0.5 che una versione di
questo manifest un esecutore può leggerlo
versione e nessuno può scoprirlo
quello si manifesta ora questo è incompleto così
Posso adattarlo sullo schermo ma questo
mi dice il nome dell’applicazione
contenitore la versione è fondamentalmente
simile a un tag mobile e sta per
l’esecutore a ragionare su quello
tag significa che potrebbe essere una versione cementata
potrebbe essere tutto ciò che voglio dire che abbiamo
il concetto di un sistema operativo giusto così uno dei
gli obiettivi per le specifiche del contenitore di applicazioni erano
lavorare da più sistemi operativi
per fare che le immagini hanno bisogno di
avere una sorta di metadati da dirti
questo funzionerà per FreeBSD e così sarà
lavoro per i contenitori di destra di Linux hanno un
kernel condiviso
loro semplicemente non correranno da nessuna parte così così noi
facciamo è fornire alcuni metadati per aiutare
l’ esecutore capisce se può
effettivamente eseguire quella etichetta eseguire quello
contenitore o no e quindi abbiamo un
il punto di ingresso chiamato è ech, quindi questo è
fondamentalmente simile al punto di ingresso
troverai in utente docker e gruppo e
quindi il punto di mount è specifico così
qui sto specificando che ho bisogno di SSL
ricercare l’host in modo mio link statico
binary proverà a cercare questo locale
file system per certs ma non lo troverà
loro così che cosa sto specificando nella mia immagine
manifest è che quelli devono essere passati
in fase di esecuzione se non sono definiti
qui e così ciò che monta le cose non lo faranno
lavoro devi essere molto specifico su
la tua intenzione e il contenitore delle applicazioni
spec quindi un meccanismo di scoperta così uno
degli obiettivi era che volevamo essere facili
per chiunque di costruire e ospitare il proprio
registro il registro docker è in realtà
davvero molto potente ma è così
in realtà complesso così complesso che tu
devi andare a cercarne uno per ottenere
iniziato ci sono dei buoni open source
quelli là fuori ma a volte vuoi
qualcosa di super-super semplice e in questo
caso stiamo guardando aa CI e tutti a
CI è di default deve avere un distaccato
firma quando si tenta di installare
i tempi di esecuzione di un contenitore devono essere controllati
vedere se c’è una firma di rilevamento e
fai il processo di verifica quindi puoi
spegnerlo, ma noi facciamo di passare a una
bandiera che dice in salta sicura
verifica in modo che
no stai facendo qualcosa che tu
probabilmente non dovrebbe farlo e così dentro
questo caso abbiamo questi tre artefatti
e le chiavi pubbliche così in quel modo
l’esecutore può scaricare quelle chiavi pubbliche
e utilizzare quelle chiavi pubbliche per verificare il
immagine ora c’è semplice scoperta e a
semplice scoperta , prendi i tuoi artefatti
e lo metti dietro qualsiasi endpoint HTTP
importa
buttalo su nginx mettilo su f3 Google
stoccaggio non importa si fa riferimento a
l’ URL completo e poi cosa accadrà
è un esecutore seguirà una convenzione
prenderà il tuo URL e compilerà il
vuoti quindi è un modello che vediamo
lì così prendiamo il nome dell’ACI
la versione o quel tag e il
l’estensione sarà un CI e quindi di
convenzione cercherà una conoscenza SC
quello è il vero distaccato
firma e tenta di fare il
verifica l’altra opzione è meta
scoperta quindi diciamo che hai un
esecutore che potrebbe essere diverso
capacità forse vuoi
distribuisci le tue immagini tramite BitTorrent o
qualcosa di un altro protocollo, quindi cosa?
puoi fare è puoi dare l’esecutore
suggerimenti e puoi anche avere un altro
posto dove si memorizzano le immagini reali
quindi forse non è sullo stesso server
questo sta scontando i metadati su dove
per trovare l’ immagine quindi in questo caso possiamo
colpisci un endpoint e tutto ciò che devi fare
è tornare indietro questa intestazione HTML a destra
e l’intestazione è solo un modello per
dì all’Esecutore come compilare il
spazi vuoti per trovare quello che vuole tutto bene
quindi ho colpito questo endpoint e ci riesco
Il tag di scoperta di Casey torna indietro e mi dice
che il contenuto che stai cercando così
se abbini questo nome usa questo modello
per scaricare effettivamente quello che stai cercando
per se il contenuto non è lì allora
dovrai solo gestire il normale
Il processo HDTV non viene trovato e quindi giù
qui otteniamo la chiave pubblica, quindi ho il
capacità di abbattere quelli durante il
processo di scoperta e questo è stato progettato
perché sentiamo che le persone lo faranno
probabilmente vorresti fare qualcosa al di fuori di
HTTP s3 forse anche qualcosa di simile
BitTorrent hai molti host così tu
voglio sapere dove possiamo trovare la voce
punto per quella roba poi il runtime
ambiente così l’altra metà di questo
la storia è che ora hai un’immagine
devo farlo funzionare così epsy definisce come un ciz
sono eseguiti su una casa particolare così
una cosa di cui dobbiamo parlare è come
il nostro layout del file system in modo che un’app veda noi
avere questo concetto di un pod e lo faremo
ne parliamo un po ‘più tardi
ma abbiamo avuto questa idea dai kubernetes
progetto della capacità di comporre a
raccolta di contenitori in un unico
l’unità di esecuzione ora ne consente alcuni
schemi interessanti puoi prenderne due
mappe distinte che devono essere eseguite insieme
e farli essere indipendenti è e
quindi comporli in un costrutto pod
ed è garantito che condivideranno il
stesso ambiente di esecuzione che significa questo
hanno condiviso lo spazio dei nomi così sono
andando a contattarsi o localhost
opzionalmente possono condividere punti di mount
tra di loro
e possono condividere i loro isolatori
significa quanta memoria della CPU è combinata
l’unità può avere ora una volta che hai un pod
concetto lo rende davvero facile
programma attraverso un cluster che puoi dire
queste cose devono andare insieme tu no
finire in una situazione in cui metà di voi
dipendenze atterrano su un host e il
l’altra metà potrebbe essere in sospeso e non può trovare
una casa e programmati in modo da risolvere
che avendo un volume di baccelli come abbiamo visto
prima nel manifesto come sono le limette
effettivamente gestito o come sono montati
il lavoro degli esecutori è di farlo per impostazione predefinita
devi essere in grado di gestire vari
networking quindi abbiamo una rete
implementazione o standard non andrò
nei dettagli c’è ma uno dei
implementazioni di AB C che è un razzo
ha il supporto per i plugin di rete quindi tu
può fare cose come IP VLAN o DHCP
qualcosa di simile al docker bridge
la tua scelta
hai portato il tuo plug-in e poi
Isolatori di risorse su Linux che lo farebbero
essere gruppi di C proprio la capacità di specificare
Limitazioni della memoria limitazioni della CPU questo
guy yo Network IO tutte le cose che
il kernel supporta puoi esprimere
quelli in una forma di Isolatori ora
Gli isolatori saranno diversi per
diversi sistemi operativi perché loro
significano cose diverse quindi il caso di
Linux in pratica stai descrivendo semplicemente C
gruppi e quindi la registrazione anche
specifica che il runtime è
responsabile della gestione dei registri per tutti
i baccelli e i contenitori che corrono dentro
loro poi c’è una serie di strumenti così
il
strumento di errore che spedisce all’interno del
applicazione spettri postulare Ori è
chiamato strumento AC e quale strumento AC lo farà
ti permettono di creare un contenitore così
diciamo che hai un sistema di CI e
stai costruendo la tua applicazione
puoi fare è allineare la radice
il filesystem per la tua app mette tutto
sul posto con mossa normale e CP
comandi e si finisce con questo
struttura della directory e quello che fai è
aggiungi un file di metadati che descrive
come dovrebbe essere quella particolare applicazione
essere eseguito e lo strumento di esecuzione AC eseguito
e poi sputa qualcosa di CI o di te
può farlo con solo strumenti da riga di comando
puoi semplicemente fare un tar e gzip
su quello e quello è lo stesso effetto il
la prossima cosa che puoi fare con lo strumento è
anche alcune cose ad hoc diciamo te
abbassa un elemento a cui vuoi guardarlo
manifest puoi stamparlo dal
riga di comando per vedere cosa è l’utente
intenzione era che puoi anche convalidare
questi si manifestano di nuovo come strumenti standard
per estrarre il manifest usando semplicemente tar
per recuperare un singolo file una volta che ho quello
singolo file Posso convalidare quel manifest
oppure puoi convalidare il tuo manifest prima
costruire la vostra un C’è anche possibile
convalidare l’attuale CI come te
costruiscilo e ci sono altri strumenti per
validazione degli endpoint di scoperta e creazione
certo che lo hai fatto bene e finalmente
lo strumento AC può anche essere utilizzato per convalidare
un’implementazione della specifica stessa
a destra ci sono un paio AC occhi possiamo
utilizzare per dare a un’implementazione a
esercitare la C lo fa in realtà
implementare correttamente la specifica un’altra
pezzo di attrezzo ultimo parlerò
circa è docker per un elemento di configurazione giusto così Dockers
l’ecosistema è vastissimo, ecco dove si trova il
la maggior parte dei contenitori vive e
c’è tra il formato di immagine Dockers e
app C sono così simili che possiamo
tirane uno al volo e convertilo
quindi hai più opzioni quindi se
stai correndo diciamo il razzo
daremo uno scaricatore di porto al punto che grab
contenitore lo converti al volo e basta
eseguilo a volte potresti volerlo
cambia un po ‘le cose così dentro
il mio caso e vedremo nella demo che possiamo
utilizzare dr in un elemento della configurazione per scaricare la finestra mobile
contenitore da in questo caso dal
registro queda io sto tirando giù questo
contenitore e hai appena notato che il mio
il contenitore è piuttosto piccolo è come sette
punto otto Meg è solo un binario ed è
comprimi il modulo e poi inizia
convertendolo in un AC io così
tutti gli strati e una bella cosa
questo strumento funziona su qualsiasi sistema operativo in cui tu
puoi eseguire questo go binary così da
il mio Mac posso effettivamente scaricare tutto il
strati di finestra mobile ma ciò che accadrà è
si inizierà la conversione di cose così nella vostra
file docker se si utilizzano i volumi
direttiva dr2 AC Posso capirlo
e in effetti creano tutti i metadati
pezzi dobbiamo rappresentare i volumi
che avevi bisogno del tuo AC I
automaticamente per te e poi solo
espelle il risultato e andrà effettivamente
attraverso questo quindi l’altra parte di un CI
o le specifiche del contenitore di applicazioni eravamo noi
volevo avere più implementazioni
per avere una specifica validata
hai bisogno di più di una implementazione di
quindi ci sono un paio di librerie FC
essendo quello che usiamo dentro
razzo e ci sono alcune librerie C ++
e c’è anche qualche runtime
implementazioni così poco dopo di noi
ha pubblicato una specifica qualcuno è venuto attraverso
con le jail freebsd e ZFS
implementazione di ab c– ero veramente
fantastico e lo hanno fatto in modo indipendente
semplicemente seguendo i documenti sul sito
chroma che è una gestione del contenitore
strumento di orchestrazione da una società in noi
chiama f Sarah e questo è carino
interessante che hanno questo sistema operativo contenitore
che fondamentalmente esegue l’applicazione
contenitori ma è stato progettato per essere simile
questo insieme coeso quindi è solo un
sistema operativo in cluster per impostazione predefinita e solo
ha scelto di utilizzare l’app C perché lo era
abbastanza specificato per loro da evitare
implementare le proprie cose e seguirle
standard che erano già stati pubblicati
e naturalmente lanciare una cosa a riguardo
razzo e la sua implementazione runtime a
molte persone non sanno molto in alto
livello ci sono alcuni dettagli lì
avere un alto livello di ciò che fa il razzo
prende questi file system di root e noi
avere queste cose chiamate diverse
palchi stadio zero stadio uno e palco
due che fase 0 è il nostro lavoro da scaricare
tutti quelli un CSI e costruire un file
sistema in modo da poter immaginare di farlo
dove c’è un Java un CI che ha appena
la tua JVM ha un altro CI
in realtà ha come il tuo file di guerra tuo
applicazione e forse alcune altre cose
che ha bisogno di correre sopra e quello che possiamo
facciamo è possiamo costruire questo e adagiarlo
in un file system di avvio finale e
quello che facciamo nel razzo è che lo prendiamo
root filesystem e lo diamo al sistema
D e
ma lascia che gestisca il processo per
tu e il modo in cui lo facciamo funzionare
sistema D nello spawn o sistema D in generale
stiamo guardando il tuo manifest e possiamo
genera automaticamente l’unità D del sistema
file per te e dire che ecco il
punto di esecuzione ecco i comandi di te
c’è bisogno di tutti i supporti di cui hai bisogno
e possiamo trasformarlo nel sistema operativo in
gestisci la tua domanda per te allora
erediti tutti i benefici di
qualcosa come il sistema D e vedremo
quello che sembra
va bene così prima che arriviamo al dem
parleremo di razzo a
un po ‘e vado a prendere le mani
con questo così voi ragazzi potete riempire il
flusso reale per questo così razzo abbiamo dovuto
cambia il nostro nome a causa di scontri sul nome
con altri progetti quindi lo chiamiamo semplicemente
la nostra Katie ma abbiamo ancora lo pronunciano
razzo così il razzo è un CLI uno strumento per
esecuzione di contenitori di app su Linux
proprio qui non ci sono piani da fare
funziona su qualsiasi altra piattaforma è
pod Linux speriamo di vederne altri
implementazioni su altre piattaforme che utilizzano
i loro costrutti nativi, ma il razzo no
essere quello strumento universale per farlo a
almeno oggi la cosa importante da fare
capisci che il razzo non ha demoni in
tutto a posto quindi non c’è demone di razzi
che funziona che interagisci con te
sapere che il razzo corre in primo piano e
questo funziona bene con sistemi come
upstart e sistema D perché lo faranno
assumere e gestire il processo in corso
avanti quindi dobbiamo fare davvero qualcosa
cose complicate se hai una linea di comando
strumento che ha nel negozio di sistema dove
stai memorizzando tutte le tue immagini una volta
scaricarli poi devi fare le cose
come i blocchi del file system e la consulenza
serrature per assicurarsi che più
le istanze della CLI non si avviano
collisione e sovrascrittura dei dati ma noi
gestisci che il vecchio stile affronta
ora una cosa unica nel razzo è
che il motore di esecuzione è scambiabile
quindi quello che ho spiegato prima era che noi
utilizzare il sistema D e il sistema D in spawn a
prendi il tuo CI e gestiscilo idealmente
potrebbe usare il contenitore live direttamente dal
progetto docker e fare esattamente lo stesso
cosa devi solo interpretare il
metadati e fai ciò di cui hai bisogno o dentro
il caso di Intel in realtà prendono
i tuoi occhi AC e gestili molto
VM specializzata che viene eseguita in KVM
ti dà non troppo male velocità di esecuzione
in circa 150 millisecondi e il bello
La cosa è che conosci le persone
sono preoccupati per la sicurezza dei container te
probabilmente dovrebbe essere preoccupato
sicurezza del contenitore perché non lo è
inteso come significato di limite di sicurezza
più per tipo di darti l’euforia del ghiaccio se
lo lanci in una VM che hai ereditato
che quel muro giardino sono alcune persone
cercando così ciò che Intel fa loro
prendere il razzo e aggiungere un altro
fase di esecuzione uno dove loro solo
gettalo all’interno di KVM e avvialo da
Là
giusto ma il flusso di lavoro si sente esattamente il
lo stesso hai un ACI a cui lo dai
gli esecutori e gli esecutori scelgono
questo di nuovo in cui vuole correre sotto
o hai la possibilità di correre
dr. immagini direttamente da
qualunque registro tu abbia funzionato
bene nella maggior parte dei casi ed è amichevole
all’interno dei suoi sistemi e cluster
strumenti di orchestrazione quindi una cosa noi
voleva fare era assicurarsi che il razzo fosse
abbastanza piccolo da essere qualcosa che si costruisce
le piattaforme in cima alle buone notizie sono a
molto del lavoro che abbiamo fatto nel razzo e
la collaborazione che stiamo facendo
il team di docker sta cercando di ottenere alcuni di questi
la stessa modularità all’interno della finestra mobile così
sarà bello se puoi prendere docker e
eseguirlo senza demone o forse prendere
finestra mobile ed eseguirlo solo con la build
passi a destra o fare fare la finestra mobile
dove funziona solo in primo piano e
consentire qualcosa come systemd da prendere
e poi i pod sono così unici
ancora una volta è possibile eseguire uno di essi
più contenitori in un’unica esecuzione
unità e se lo fai quella pausa ottiene
spazi dei nomi condivisi e facoltativamente volumi
quindi abbiamo parlato del sistema D ed ecco a
un po ‘più in dettaglio Intel chiama loro
implementazione chiaro contenitori destra
Intel ha fatto molto lavoro e
investimento per far sì che le macchine virtuali siano veloci
con le loro estensioni vxt e tutto il
sicurezza che loro hanno fatto intorno
è così che hanno deciso di fare
accetta l’altra tecnologia che tu
trova nel kernel e loro in realtà
capito un modo per velocizzare le cose così
la maggior parte delle VM oggi si avviano in non so
secondi a volte minuti a seconda di
la tua piattaforma ma i secondi sono davvero
lento rispetto a quello che ottieni
un runtime del contenitore come finestra mobile o
razzo quindi quello che sono riusciti a fare è stato
capire come costruire un sottilissimo o
Wes, basta
per portarti al docker giusto anche saltando
il processo di avvio del BIOS perché non lo fanno
ne ho bisogno
giusto sanno che non hai intenzione di
cercare di eseguire un sistema completo lì così
tu salti l’intera cosa allora tu
andare direttamente nel kernel nella finestra mobile
e tu fai funzionare il contenitore facendo così
consente loro di ottenere la via dall’alto verso il basso
quindi ne avrai altri 18 a
20 Meg di overhead sulla memoria ma tu
ottenere tutte le cose che sono stati utilizzati per
prima di allora se hai qualche kayvyun
strumenti di gestione indovinare ciò che hanno appena
lavoro se hai quella sovrapposizione di fantasia
cosa in rete che stavi usando
con KVM funziona quando apri il
strumenti di gestione dello stack con volontà di razzi
basta lavorare e la stessa cosa può
eventualmente applicato alla finestra mobile di
costruendo un altro back-end di esecuzione tutto
giusto, ecco come funziona il razzo a
livello molto alto quindi ricorda che ho detto
di default devi fidarti delle immagini
che tu fai notare ora c’è una bandiera
dove puoi saltare la verifica ma
cerchiamo di non promuovere quell’idea che vogliamo
questa idea dove, in questo caso, se voglio
per scaricare questo set di kubernetes di
binari o un CIS ho bisogno di fidarsi del
chiave pubblica prima chiave a destra distribuzione
è un problema affidato alle chiavi delle persone
altro problema ma una volta che ti fidi
qualcuno è così che lo aggiungi al tuo
negozio quindi in questo caso sto facendo questo a
tasto radice che dice che non vuoi nulla
firmato da quella chiave di cui sono disposto a fidarmi
ora puoi chiarire questo argomento e dirti
so cosa mi fido di quella chiave per un singolo
AC I immagine che è o forse da
qualsiasi cosa da un dominio specifico se tu
voglio solo scaricare un AC III e
verificarlo
si esegue il comando di recupero del razzo e
una volta che hai scaricato alcuni di questi
cose che puoi chiamare le immagini per vedere
tutto ciò che è installato sul tuo
sistema ora una cosa da tenere a mente
quando i download di razzi in un CI vengono archiviati
con il suo hash giusto così tante persone
vengono gettati via quando si prende un contenitore
e tu lo chiami, non lo so
0:19 e spingi bene quell’etichetta
chiunque era libero di sovrascriverlo
etichetta di nuovo a destra e indovina cosa è 0:19
questa nuova cosa era qualcos’altro
ieri ma è questa cosa nuova
oggi e questo ti butterà fuori
perché non si comporta nello stesso modo
anche se ha lo stesso nome così dentro
razzo quando vai e prendi un contenitore
prendiamo che otteniamo l’hash
di esso sha-512 e poi lo immagazziniamo
il significato del contenuto indirizzabile del negozio
che quando vuoi eseguire quella cosa
di nuovo guardiamo l’ indice e corriamo
che hash è quello che non stiamo andando a
vai a prendere qualcosa perché ha il
stesso nome che non corrisponde a quella hash siamo
non eseguirlo se qualcosa viene buttato via
con i contenuti su questo sarà
rotto
va bene questo dà un po ‘di gente
più sicurezza e fiducia in quello che tu
in realtà la grande notizia è dentro
le specifiche v2 della dockter che stanno pianificando di fare
la stessa identica cosa se hai visto
parte del lavoro nel dr. V 2 puoi
in realtà si rivolgono ai contenitori – sono
hash ora a destra quindi questo è molto chiave per
in realtà avendo un po ‘ di questo immutabile
infrastruttura o qualcosa che puoi
in realtà si fida quindi è eccellente
vedi ora quando vuoi eseguire un pod quando
lanci un pod anche se sei dentro
In questo caso sto facendo funzionare un singolo contenitore
corrono ancora in un baccello ecco quello che tu
ora questo è un po ‘il nostro razzo Bose
ha un file di configurazione quindi se non l’hai fatto
voglio specificarlo sul comando da riga di comando
in realtà metterlo in quello che chiamiamo loro pod
manifest, quindi è fondamentalmente come adiacente
descrizione di tutte le bandiere che tu
bisogno di passare tutti i volumi e poi
puoi semplicemente passare i file di configurazione al razzo
invece di tutte queste bandiere così eccomi qui
mostrandolo in questo modo per semplicità così
all’interno del nostro ACI, specificiamo che noi
bisogno di alcuni volumi e poi in fase di runtime noi
mappare quei volumi e dobbiamo essere
specifico il volume proviene dall’host
possiamo anche contrassegnarli molto di sola lettura
simile al modo in cui i documenti gestivano i volumi
e poi di nuovo stiamo specificando il
ACI che vogliamo ora ricordiamo una volta noi
usa questo nome e noi scarichiamo un ACI
esecuzioni future useremo invece l’hash
tornare su Internet e poi
il resto di questi è la bandiera passata a
il punto di ingresso nel contenitore molto
simile a quello che fai nella finestra mobile e
poi se voglio elencare le cose che
sono in esecuzione eseguiamo la lista da te
hanno anche la possibilità di usare l’altro
comandi systemd come la macchina CTL
perché quando gestiamo un contenitore di razzi
ci registriamo con il sistema D e tutto il
altri strumenti del sistema operativo funzionano semplicemente a secco
tutto il resto del sistema operativo è completamente
integrato e infine quando corri
un sacco di contenitori non so come
molti di voi si imbattono in questo che stai correndo
contenitori contenitori per i keniani loro
muoiono, vanno e vengono, vanno e vengono
e poi ti piace il docker PS – ae
sei come chi ha fatto quello giusto e
allora non sei veramente sicuro su quale
quelli che puoi eliminare perché potresti
elimina uno che è ancora in essere
usato da qualcuno è esilarante quando tu
fallo così in quello che facciamo in racket noi
abbiamo questo fondamentalmente abbiamo preso molto
approccio semplice alla raccolta dei rifiuti
i contenitori ci stanno bene se il
contenitore non è più in esecuzione ed è
essendo referenziato da nessun altro allora noi
basta fare questa parte in cui spazziamo noi
solo dire hey stiamo andando siamo segniamo tutto
le pause li spostiamo in un altro
directory sul filesystem
dettaglio di implementazione ma abbiamo appena segnalo
loro e ti dà il tempo di piace ehi
forse ricominciamo e poi abbiamo
alcune politiche quindi per impostazione predefinita ogni 30
minuti passiamo attraverso tutto ciò
è stato garbage collection o contrassegnati lasciare
li spazzo, loro vanno via e noi l’abbiamo fatto
in un modo in cui è possibile eseguirlo
comando all’interno di un lavoro cron proprio così
li segneresti sul tuo calendario
li spazzi nel tuo orario o tu
puoi semplicemente eseguirli di nuovo manualmente
no daman, quindi sei libero di capirlo
come vuoi fare questo e poi questo è
come gestisci il razzo con SystemD Upstart
sembrerebbe qualcosa di simile, quindi questo è
un normale sistema d-unità
così invece di eseguire un binario qui noi
esegui il comando del razzo che abbiamo visto
la riga di comando prima e poi tu
arrivare a usare il resto del sistema D
gestione del processo che significa riavvio
politiche tutte le altre verifiche degli errori
e un altro grande per me che penso
è davvero potente la maggior parte delle persone si affaccia
è la capacità di dipendere da un altro
servizio giusto come non iniziare questo
servizio a meno che non inizi l’altro server
va bene così sistema che tipo di
ti dà quello gratuitamente non stiamo andando
per provare a implementarlo in un razzo a
Gestore del processo migliore gestirlo e
allora usi solo il tuo normale sistema
strumenti proprio così al primo avvio questo
cosa sarà scaricata nella
negozio content-addressable che lo convalida se
tutto controlla che funzionerà se non
fallirà e il sistema D te lo dirà
hey ecco l’ errore che abbiamo ricevuto dal razzo
contenitore non valido non verrà eseguito
va bene così questa è la panoramica di epsy
e lanciamo così cercheremo di farlo ora
viene eseguito attraverso la conversione di alcuni
container docker guarderemo il
file più scuri e basta vedere cosa serve
per renderli un CIS di destra e me ne vado
per cercare di scegliere un insieme complesso di cose
c’è un progetto chiamato cover nays di
Google che ti permette di gestire
contenitori e scala così che cosa ho fatto
è e mi piace usare molto la finestra mobile
in realtà ho creato contenitori docker
per ognuna di queste cose va bene così io
fatto in un modo in cui ho effettivamente usato
qualcosa come composto da far girare a
kubernetes pieno raggruppano sei
interessati a che si può controllare
quei dettagli ma quello che stiamo andando
concentrarsi su qui è fondamentalmente ho creato un
un mucchio di contenitori docker che sembrano
come questo diritto molto semplice faccio del mio
costruire e CI perché non mi piace il grande
bill contenitori così prendo i miei artefatti io
li ho copiati e cosa sono
fare qui sta specificando ogni singolo
volume che ho intenzione di mappare in
futuro sto facendo questo per dare suggerimenti per
gli strumenti ACI per la conversione corretta
perché senza questo dovrò fare
alcune cose strane e te ne mostrerò un po ‘
di quei problemi il più complicato
file docker che ho in questo insieme
stack è il couplet couplet è il
interessante perché interagisce con
l’host e ha bisogno di fare qualcosa di strano
cose per l’host e ha un po ‘
un po ‘ di problemi in esecuzione da un contenitore
Devo sapere che l’host è il rilascio I
bisogno di essere effettivamente in grado di ispezionare
anche le cose che i Dockers fanno
esegui alcuni binari che vivono sull’host
e ho bisogno di fare un pasticcio di cui ho bisogno
usa NS per entrare nel namespace di
l’ host così posso fare mount point lì
in questo modo quando le cose vengono montate via
finestra mobile in altri contenitori è ancora
funziona quindi è un’immagine piuttosto complessa
che quando l’eseguo ho intenzione di avere a
montare alcune cose in modo da specificare tutto
le cavalcature ora voi ragazzi sapete cosa
edificio Duckers immagini sembrano così
una volta che ho tutte le mie immagini costruite e bene
questa è la parte in cui faremo un po ‘
una soluzione, quindi quello che voglio fare è
prendi tutti i miei occhi AC che stanno correndo dentro
Quetta AO e convertirli in un CIS
va bene così come lo facciamo
verrà utilizzata la finestra mobile in uno strumento CI
Li ho scaricati nel caso Wi-Fi
non funziona ma proveremo un paio di
loro in modo da poter vedere l’idea qui così
inizieremo con il server API
quindi quello che facciamo qui è eseguire la finestra mobile
a un comando di CI e noi diamo questo
prefisso sai docker colon due punti I
significa “barra del colon” che lo sa
ha bisogno di uscire alla finestra mobile e cosa sarà
capita qui Wi-Fi per favore lavora è volontà
inizia a scaricare ciascuno dei livelli e
una volta che li avremo tutti su disco andremo
attraverso il significato del processo di conversione
vogliamo solo il filesystem di root
hai mai guardato all’interno di un’immagine docker
c’è un mucchio di altre piccole radici
file system che costituiscono il diverso
strati prendiamo tutti questi e solo
combinalo e fondamentalmente appiattisci il
tutto fuori
strappiamo i metadati dall’aspetto docker
al suo file JSON e lo convertiamo e
mappare le chiavi che hanno senso e poi noi
finire con qualcosa di simile giusto così
una volta che hai uno di quelli che puoi usare
Strumento AC per cat il manifest, vediamo così
ci sono un paio di comandi qui che possiamo
possiamo manifestare il manifest di cat
convalida per assicurarsi che la cosa che
in realtà convertito funziona davvero se
vogliamo noi possiamo cat il file manifest
vieni manifestare e poi lo faremo
stampalo stampalo in modo che possiamo vedere realmente
come sembra senza un casino
drat
Jason sul mio schermo e abbiamo scaricato il
distico quindi Kelsey Hightower e
server API coop e questo è ciò che
la conversione sembra giusta così il tag
abbiamo ottenuto da docker finito per essere il nostro
versione il nome è queda IO I in realtà
non mi piace quel nome, quindi voglio cambiare
questo diritto, ma io non voglio manualmente
entra e strappa questa cosa e mettila
di nuovo insieme, quindi quello che possiamo fare è usare
il comando patch così posso effettivamente
patch alcuni occhi AC così qui e io solo
metti questo sul terminale in modo da poter vedere
un po ‘meglio possiamo chiamare l’AC
comando manifest patch occhio posso rinominare
l’AC I
e questo è tutto ciò che voglio davvero fare per
questo e quello che sta succedendo qui è
l’a / c è stato squarciato il
manifest è stato aggiornato
alcuni valori che vogliamo ed è essere
rimetti insieme ora quelli sono tutti
piuttosto semplice ma quello che è a
un po ‘più complesso è il reale
distico un punto di montagna che non posso
fare in un CI o che la finestra mobile non consentirà
devi fare il montaggio di un Etsy risolto
comm bene che viene aggiunto in fase di esecuzione
da docker se si tenta di specificare che come
una finestra mobile del volume non ti consentirà di costruire
un contenitore quindi quello che devo fare è farlo
dopo il fatto, quindi ho intenzione di patch
che nell’usare il comando patch così per
il distico faremo eseguire questo comando e
dobbiamo anche eseguirlo come privilegiato
contenitore ora nel manifest di Dockers
non c’è modo di dire che questo è necessario
essere un contenitore privilegiato ma in un CI I
necessario specificare questo modo al fine di fare
che posso specificare il mount di cui ho bisogno
ottenere comm risolto e posso davvero
specificare un po ‘più di capacità qui così
una volta che l’ ho fatto costruisco il mio nuovo
contenitore e se si nota che sono in realtà
rinominando tutti questi contenitori mentre vado
attraverso questo diritto, quindi mi sto spogliando
il mio prefisso dal registro così sto andando
passare molto velocemente e convertire
il resto di questi e una volta che ho questi
fatto la prossima cosa che dobbiamo fare noi
devono firmarli correttamente, quindi è la firma
piuttosto semplice fai tutto
con GPG quindi se hai esperienza con
GPG, quello che possiamo fare è che lo faremo
esportare la chiave pubblica per la mia chiave di firma
e questo è così che posso ospitarlo sul mio
endpoint quindi questa è la chiave pubblica
possiamo fidarci più tardi e poi possiamo andare
attraverso e inizia a firmare il nostro un IC così
Lo userò per ciclo
solo andando a passare per ogni CI
produrremo un distaccato
firma per ciascuna di quelle cose giuste
in modo che andremo a firmare tutti ora questo
può saltare in aria perché non mi sono convertito
tutto il mio contenitore va bene, un CI è finito
vediamo cosa succede
va bene , è firmato quello
erano a posto quindi ora ho il test
firme per tutto il CSI proprio così
quelli sono tutti gli artefatti di cui ho bisogno ora
una volta che hai questi artefatti, sono solo
andando a memorizzarli in un secchio di file
Farò il calcolo di Google giusto così questo è il modo
li distribuisci così li costruisci
li firmi e li ospitali dove
tu vuoi che il razzo supporti, credo
cose come l’ autenticazione di base quindi se vuoi
metterli dietro qualche autenticazione voi
può farlo e quello è il back-end
collegabile in modo da poter aggiungere altro
meccanismi di autenticazione quindi eccomi qui
hosting di tutto ciò di cui ho bisogno il prossimo
cosa che dobbiamo fare prima di poter lanciare
questi contenitori è che abbiamo bisogno di fidarsi del
chiave, quindi quello che facciamo è che saltiamo sul nostro
macchina quindi ecco la macchina in funzione
razzo e diciamo di crederci
particolare chiave pubblica che farò
una chiave principale in modo che mi sta chiedendo ti
sei sicuro di volerlo questo
particolare chiave quindi questo è nel mio razzo
chiave di firma della scienza e ciò che accade è
esso viene memorizzato nella catena chiave che
vive di nuovo sul server tutto ciò che può
essere fatto con semplici strumenti da riga di comando
quindi se volete conoscere tutte le chiavi che
dal vivo sul tuo sistema puoi lanciare LS
directory di chiavi fidate e sono tutte
memorizzato lì con le loro impronte digitali
nome giusto, quindi tutto ciò che ha un
impronta digitale che chiave verrà utilizzata durante
il processo di validazione ora una volta
fidati di queste cose su cui puoi correre
la riga di comando ma ricorda che lo sarà
appuntato in primo piano, quindi cosa tu
davvero vuole fare è creare il sistema D
per tutte queste cose e ho anticipato
tempo mettere le unità sistemd in posizione così
qui ho un’unità di sistema D per tutti
questi servizi se lo guardi e
alcuni di loro hanno dipendenze dagli altri
la maggior parte dei servizi qui richiede questo
questo server API è attivo e funzionante qui
Sto facendo una configurazione completa per
kubernetes
e cosa voglio fare se guardi il
controller manager richiede anche il
Server API quindi lo lasceremo fare
Sistema Lavori che per noi e
lasceremo anche che il sistema D gestisca il
riavvia se questo dovesse fallire tutto bene
e anche correndo in primo piano che
il razzo fa di default
questo significa che il diario è completamente
integrato in modo che tutti i registri scorrevano
la gara di rotazione del sistema D Journal
gestito e tutte quelle cose che non facciamo
devo andare a cercare i log per il nostro effettivo
contenitori una volta che iniziano a correre così
questo punto possiamo solo iniziare
le cose vanno bene così possiamo abilitarle se
vuoi che inizino automaticamente da
tempo di avvio o basta chiamare l’inizio
comando per il sistema D, quindi lo faremo
qui lo farà il responsabile del controller
davvero non importa quale ordine comincio
questi in principalmente perché il reale
binari stessi sono sufficienti per intelligenti
aspetta che le dipendenze vengano fuori
bene avviare lo scheduler e poi lo faremo
finalmente inizia l’ Akula tutto a posto
ora puoi da qui in avanti che puoi
effettivamente utilizzare i comandi di sistema D per capire
gestire le cose sui tuoi processi
li in questo modo se vuoi o possiamo usarli
alcuni comandi di razzi così posso fare il razzo
lista e vedo che tutti i miei contenitori
stiamo effettivamente correndo anche noi
integrazione con la macchina CTL così possiamo
elencateli e il CTL della macchina a destra
conoscere il razzo registra tutto
i tuoi contenitori con il sistema D e poi
puoi iniziare a usare la CTL della macchina
strumenti e sono tutti indirizzati da questo
hash e una volta che è attivo e funzionante se
tutto funziona correttamente noi
dovrebbe essere in grado di vedere i kubernetes
in realtà funziona e ci riesce
effettivamente vedo che uno dei nodi ha ottenuto
registrato nel sistema, quindi cosa abbiamo
fatto qui abbiamo preso un set di finestra mobile
contenitori li abbiamo convertiti in AC
occhi
li abbiamo firmati li abbiamo patchati
li in un repository upstream noi
creato alcuni file di unità di sistema per
loro e poi facciamo riferimento a questi ACIS
che abbiamo costruito prima e ora gettiamo
li nelle unità del sistema D e lasciamo che il
sistema prendere in consegna e gestire i nostri servizi
proprio come stavamo facendo prima come rpms
o distro degli inverni statici e ora abbiamo
un equipaggio completo Bernays single senza cluster up
e correndo così con quello che mi piace
concludere la presentazione e aprirlo
per domande grazie
Prenderò che la prima domanda è questa
la persona che crea l’immagine che firma
o è il repository che firma
l’immagine si vede cosa intendo così
domanda era chi è responsabile di
firmando l’immagine tu vuoi sempre il
la responsabilità è la persona che è
distribuire e costruire l’immagine
giusto questa è la tua relazione di fiducia
voglio avere così non con il repository
perché chi è il repository giusto a
entità singola che firma tutte le immagini
il numero uno se non costruissero il
immagine o non ha avuto origine per loro
è davvero difficile per loro essere
responsabile in modo ideale se riesci a ottenerlo
più vicino alla persona che è in realtà
costruire, compilare o scrivere il
software che è l’entità che desideri
fidarsi di sì, quindi la fiducia è difficile
come se lo volessi, quindi la domanda era
la domanda di follow-up è stata quindi necessaria
chiave per ogni immagine di follow-up quindi lì
potrebbe essere un mondo in cui hai qualcuno
che curerà i contenuti che conosci
non c’è niente da cui fermare qualcuno
diventando la distribuzione centralizzata a
avere qualche tipo di processo di qualificazione
per dire hey abbiamo controllato queste cose e noi
fidati di loro e poi stabilisci fiducia
con quelle entità proprio loro
firme staccate possono essere ridimensionate
va bene così puoi averne molti
firme per loro giusto così da quando è
non cotto nell’immagine reale che sei
libero di andare a prendere queste cose e ridimensionarle
li per la tua stessa entità e dì sì noi
fidato della persona che l’abbiamo scaricato
lo abbiamo convalidato ora spostiamolo in
il nostro repository e riassegneremo
loro con la nostra chiave e poi tu
fidati che i bambini siano una buona domanda
sì, la domanda è tutti i comandi
che ho corso così lontano
il comando della lista dei razzi richiede sudo correttamente
e la domanda è: puoi lanciare un razzo?
così come un utente in rotta su un sistema, così siamo
lavorando su quello il problema principale è quello
accesso ai gatti dove tutto è
memorizzato quindi se guardiamo sotto la nostra vita
razzo questo è dove tutto il contenuto
roba regolabile è così tutto il blob tutto
gli hash e quella è una posizione sicura
e l’unica persona in questo momento che noi
lascia capire che è rotta, quindi abbiamo
per capire un modo per sapere come possiamo
dividi questi privilegi e così via
vogliamo fare è avere la capacità di
scaricare contenuti come qualsiasi visualizzazione utente solo
probabilmente come utenti autorizzati ma poi
runtime richiederà l’ autorizzazione
necessario per eseguire un binario sul particolare
sistema così oggi giusto quindi questo è quello che
siamo questo è quello che stiamo ottenendo se
possiamo solo possiamo dobbiamo capire
come appare il modello da una UX
punto di vista è più facile da centralizzare
tutto ma puoi immaginare un mondo dove
ci sono contenitori che ottengono
installato localmente nel tuo utente
directory e hanno vissuto solo lì
proprio così da quando questa base di file system
non c’è davvero nulla che ci fermi da
dicendo qui c’è un set di chiavi fidate
ecco una serie di vitelli per tutto il
immagini e questo è solo locale per il tuo
particolare home directory e poi
le cose si lanciano e vivono lì solo nel modo giusto
così ci siamo posti fino ad essere in grado di fare
quello giusto è solo una questione di
buona domanda prioritaria
qualsiasi altra domanda è fantastica, fantastica
grazie ragazzi per la partecipazione
tu
Please follow and like us: