CoreOS Tectonic: Container Linux, Quay.io, rkt, ecc

Distro Linux leggero per cluster di server Web nativi Kubernetes & App SaaS

CoreOS, la società di sviluppo di software cloud che gestisce la distribuzione di Container Linux, ha recentemente rilasciato Tectonic versione 1.64 (31/05/2017) che fornisce un modo rapido e semplice per distribuire un cluster Kubernetes per il supporto di app Web / mobile su AWS o un sistema autonomo rete di server cloud ospitati. Core OS ha oltre 100 progetti di software open source in fase di sviluppo aziendale su GitHub, inclusi operatori etcd, flanella, rkt, Ignition, Clair, Matchbox, dex e prometheus. Tectonic può essere utilizzato gratuitamente per i cluster Kubernetes fino a 10 nodi, dopodiché un certo numero di diverse società, data center, & le licenze commerciali sono disponibili con supporto tecnico professionale. Quay.io è un altro prodotto SaaS cloud offerto da CoreOS su licenza proprietaria che aiuta i team DevOps a gestire le istantanee dei container con Docker o rkt, cluster Kubernetes, Container Linux, & CoreOS Tectonic in produzione su larga scala. Quay.io include funzionalità di gestione delle snapshot del contenitore con sicurezza integrata, analisi, fatturazione, monitoraggio, build di repository, backup automatizzati e controllo della versione per il software dello stack di server Web con supporto avanzato GitHub, Bitbucket o Gitlab (Dockerfile Build Triggers).


Distro Linux leggero per cluster di server Web nativi Kubernetes e app SaaS

CoreOS è una delle principali società di software che sviluppano nuove soluzioni cloud open source su Linux e la società è stata avviata in un garage di Palo Alto, California, da Alex Polvi (CEO), Brandon Philips (CTO) e Michael Marineau nel 2013. Polvi aveva venduto la sua azienda Cloudkick a Rackspace nel 2010 e poi ha formato Core OS con Philips (ex sviluppatore del kernel SUSE Linux & Programmatore cloud Rackspace) & Marineau (da Google). L’obiettivo originale dell’azienda era essenzialmente quello di costruire una distribuzione Linux leggera per container che replicasse ciò che Google aveva operato nei loro data center con "Borg". A quel tempo, Kubernetes non era ancora stato rilasciato pubblicamente o open-source, ma dopo il 2014/15 quando la governance della piattaforma Kubernetes è stata rilevata dalla Linux Foundation, CoreOS ha svolto un ruolo importante nella Cloud Native Computing Foundation (CNCF) in modo da “contribuire a facilitare la collaborazione tra sviluppatori e operatori su tecnologie comuni.” Google ha anche successivamente lanciato il Google Container Engine per Kubernetes e Docker (GKE) con l’utilizzo di entrambi gli standard che vengono adottati sulle piattaforme cloud concorrenti in AWS, Azure, OCP, VMware, RHEL, ecc. Quasi tutte le principali società di software cloud dispongono di Kubernetes soluzione server web cluster nel 2017 con un uso diffuso di eccd & software rkt di CoreOS (CloudFoundry, Fedora, ArchLinux). CoreOS Tectonic compete in gran parte con GKE, RancherOS, Docker Swarm o utilizzando Kubespray come opzione di cloud ibrido self-hosted per la gestione di cluster di server Web bare metal su indipendenti ("vendor-agnostic") hardware del data center.

Distro Linux leggero per cluster di server Web nativi Kubernetes e app SaaS

CoreOS Container Linux è stato sviluppato per soddisfare le esigenze delineate nel famoso documento di ricerca pubblicato da Google nel 2013 noto come "Il datacenter come computer: un’introduzione alla progettazione di macchine su scala di magazzino." (Barroso, Clidaras, & Hölzle) Questo documento ha delineato i principi alla base della concezione dell’infrastruttura del data center sul modello cloud in contrapposizione alla progettazione a server singolo. Con l’hardware delle materie prime e milioni di server nelle distribuzioni aziendali, gli amministratori della rete cloud devono pianificare inevitabilmente CPU, RAM, & altro errore hardware del sistema. Molteplici copie di backup e la veridicità di ciascuna in casi di guasto dell’unità è una parte importante dell’archiviazione RAID in cui gli stessi principi si applicano ai server cloud in cluster elastici tramite il teorema CAP & Algoritmo Paxos. CoreOS ha risolto questi problemi con etcd, consentendo l’aggiornamento dei cluster Kubernetes tramite l’auto-aggiornamento & riparazione di processi che inviano aggiornamenti asincroni coordinati ai server mediante blocchi di riavvio. Ciò consente l’applicazione più semplice di aggiornamenti di massa di patch di sicurezza in un data center su un numero enorme di server rackmount alla volta. etcd ha migliori applicazioni di archiviazione per il salvataggio della configurazione, delle chiavi private, delle modifiche della password e di altre variabili di ambiente per i server Web in caso di guasti hardware che lo hanno reso uno standard importante nel settore attraverso piattaforme su termini di licenza open source. etcd viene utilizzato da Google (CFS, GFS, Big Table, Chubby, Spanner), Amazon (E2 Replicated Logs), Microsoft (Boxwood), Hadoop (ZooKeeper) e molte altre società di software cloud per risolvere il problema di Paxos nelle elezioni dei leader , condivisione del server Web, perdita di chiavi di crittografia private, & altre variabili di configurazione con errore hardware del data center. docker & I contenitori rkt isolano il codice dell’applicazione web / mobile, incluso l’input eseguito dall’utente dal sistema operativo hardware per una migliore sicurezza globale dei dati isolata nel cloud.

Video dimostrativo: Brandon Philips (Linux Conference 2015 – Auckland, NZ)

CoreOS: un’introduzione – "I modelli architettonici di una piattaforma su larga scala stanno cambiando. Le macchine virtuali dedicate e gli strumenti di gestione della configurazione vengono sostituiti dalla containerizzazione e da nuove tecnologie di gestione dei servizi come systemd. Questa presentazione fornirà una panoramica delle loro tecnologie chiave, tra cui etcd, flotta e docker. Vieni a scoprire come utilizzare queste nuove tecnologie per creare sistemi distribuiti efficienti, affidabili e di grandi dimensioni." Ulteriori informazioni su CoreOS, Kubernetes, & Container Linux

È importante comprendere le differenze tra contenitori di applicazioni e contenitori di sistema che funzionano come una macchina virtuale, come VPS che opera su piattaforme OpenVZ, KVM, Xen, Parallels, VMware, ecc. I contenitori forniscono un hypervisor di virtualizzazione alternativo che può essere utilizzato per creare soluzioni orientate agli oggetti a vari livelli di un data center mediante l’uso di partizioni isolate. I VPS / VM possono essere installati e ridimensionati in cluster elastici all’interno di contenitori e viceversa. La combinazione di configurazioni di container con l’ampia varietà di altre piattaforme di virtualizzazione disponibili sul mercato può essere utilizzata per creare soluzioni complesse per IT aziendali, fornitori SaaS / PaaS / IaaS, applicazioni software mobili e società di web hosting. La maggior parte delle soluzioni container non include SSH dedicato & strumenti di rete caratteristici delle istanze VPS o VM, ma questo fa parte di ciò che porta i contenitori di applicazioni utilizzati in produzione a basarsi sulle distribuzioni Linux più leggere disponibili. La pratica corrente in DevOps è quella di includere l’intero stack Linux per il livello superiore di codice in produzione in bundle con tutte le estensioni del server specifiche richieste dal web & app mobili tramite pacchetti di build o binari. Il modo unico in cui i contenitori Docker e rkt utilizzano il kernel Unix e l’API Unix porta a una combinazione di isolati & spazi dei nomi globali che possono essere utilizzati per mappare le variabili di configurazione all’interno / all’esterno dei contenitori per un migliore consumo di risorse isolato sull’hardware del server Web nei data center.

Distro Linux leggero per cluster di server Web nativi Kubernetes e app SaaS

rkt con CoreOS, Fedora, ArchLinux, & NixOS – "L’unità di esecuzione principale di rkt è il pod, una raccolta di una o più applicazioni eseguite in un contesto condiviso (i pod di rkt sono sinonimo del concetto nel sistema di orchestrazione di Kubernetes). rkt consente agli utenti di applicare diverse configurazioni (come i parametri di isolamento) sia a livello di pod sia a livello più granulare per applicazione. L’architettura di rkt significa che ogni pod viene eseguito direttamente nel classico modello di processo Unix (cioè non esiste un demone centrale), in un ambiente autonomo e isolato. rkt implementa un formato contenitore moderno, aperto e standard, le specifiche del contenitore app (appc), ma può anche eseguire altre immagini contenitore, come quelle create con Docker." Ulteriori informazioni su rkt Container Engine

Distro Linux leggero per cluster di server Web nativi Kubernetes e app SaaS

Costruire & Distribuire container su scala: "Usa Quay.io per automatizzare le build dei container, con l’integrazione con GitHub, Bitbucket e altro … Quay esegue continuamente la scansione dei container alla ricerca di vulnerabilità, offrendoti una visibilità completa su problemi noti e su come risolverli." Ulteriori informazioni su Quay.io

Video dimostrativo: Kelsey Hightower (CoreOS Workshop 2015 – Geekdom, SF)

Orchestrazione di container tramite CoreOS e Kubernetes – "Questo workshop pratico … insegnerà le moderne pratiche per l’orchestrazione dei container e mostrerà esempi di come i componenti lavorano insieme per gestire un cluster di container Linux. Con la sua capacità di alimentare l’infrastruttura nel cloud o su metallo nudo, la sessione utilizzerà Kubernetes con CoreOS come esempio che mostra ai partecipanti come distribuire e gestire un’applicazione Web multilivello." Ulteriori informazioni su CoreOS & kubernetes

Secondo Kelsey Hightower, un noto evangelista di Kubernetes che ha lavorato presso Google & CoreOS, Kubernetes non compete con CloudFoundry, Heroku o OpenDeis come a "percorso completo" per DevOps e soluzioni di cloud hosting in produzione. Piuttosto, si tratta di un framework di virtualizzazione specializzato principalmente nella gestione dei container, nella pianificazione e nella scoperta di servizi che molte aziende PaaS / SaaS concorrenti possono costruire nuove soluzioni open source con una maggiore interoperabilità multipiattaforma e portabilità dei dati tra i provider di cloud hosting. L’individuazione del servizio Kubernetes riguarda principalmente il monitoraggio e la regolazione del numero di nodi del server in un cluster elastico e l’utilizzo di etcd per la sincronizzazione tra le copie con gli aggiornamenti delle modifiche di stato. A differenza di Docker, che utilizza indirizzi IP condivisi per i contenitori, Kubernetes fornisce un indirizzo IP univoco a ciascun pod mantenendo la comunicazione tra tutti i nodi del server in una rete. Gli indirizzi IP univoci disaccoppiano il codice dell’applicazione web / mobile dal sistema operativo del contenitore sottostante, consentendo di eseguire qualsiasi estensione del linguaggio di programmazione, piattaforma del server Web o stack personalizzato in produzione integrata con strumenti di controllo continuo della versione o della versione in DevOps. Altre alternative a Docker & i contenitori rkt sono:

  • LXC
  • Cloud Foundry Garden
  • Mesos Containerizer
  • systemd-nspawn
  • Google lmctfy (defunto)

Pianificazione dei lavori, individuazione del servizio, & la gestione dei cluster sono gli aspetti principali dell’architettura del data center che i contenitori migliorano per le reti di server web. Prima di avanzare nelle soluzioni CoreOS, RancherOS e altre soluzioni Container Linux, i programmatori nella prima fase dell’hosting cloud utilizzavano gli script Chef / Puppet per condividere istantanee di build per installazioni automatizzate di container su larga scala. I container semplificano il supporto di app Python, Java, Nginx, MySQL, OpenSSL, ecc. Multi-tenant in fase di esecuzione. I contenitori aprono inoltre una maggiore flessibilità per gli sviluppatori nel mantenere il codice attivo tra gli aggiornamenti della piattaforma di estensione per mantenere i server Web patchati assicurando che gli aggiornamenti di sicurezza continui non rompano il codice di produzione. Poiché questo è proverbialmente difficile nella pratica, il principio di Container Linux è quello di mantenere semplice il sistema operativo. Mantenendo solo la sicurezza del kernel e non rompendo mai l’API del kernel in Linux, i contenitori possono essere eseguiti nello spazio utente con tutte le estensioni & strumenti isolati con una maggiore sicurezza complessiva nella gestione della rete multi-tenant.

Distro Linux leggero per cluster di server Web nativi Kubernetes e app SaaS

CoreOS Container Linux – "Kubernetes è un potente software di gestione dei container ispirato a Google’s esperienza operativa con i container. Sono integrate funzionalità essenziali come il rilevamento dei servizi, il bilanciamento automatico del carico, la replica dei container e altro ancora. Inoltre’tutti alimentati tramite un’API HTTP … I contenitori Linux offrono numerosi vantaggi sia per gli sviluppatori di applicazioni che per i team operativi. Container Linux consente solo l’installazione del software come container, che rappresenta un importante livello di astrazione tra il sistema operativo e le applicazioni (e le dipendenze) in esecuzione in cima." Ulteriori informazioni su Container Linux

Concept Video: etcd v 3 – Brandon Philips (CTO / Co-fondatore CoreOS)

Zattera: protocollo di consenso distribuito – "etcd è scritto in Go che ha un eccellente supporto multipiattaforma, piccoli binari e una grande comunità dietro di esso. La comunicazione tra macchine etcd viene gestita tramite l’algoritmo di consenso Raft." Ulteriori informazioni sul Raft DCP

Il sistema Kubernetes consente di utilizzare diversi componenti nel ridimensionamento automatico dei livelli di cluster di nodi del server Web, ad esempio utilizzando Terraform, Flotta (simile al Sistema D), Mesos, CoreOS Tectonic, Docker Swarm, ecc. Dove etcd è il componente vitale ( simile al fabbro) che coordina i cambiamenti di stato dai cambiamenti di input delle variabili utente attraverso i cluster elastici con molti processi di esecuzione simultanea in isolamento. Fantoccio & Lo scripting dello chef può anche essere implementato. In questo modo, gli amministratori di sistema possono stabilire parametri come l’esecuzione di 100 istanze di un’applicazione SaaS (sito Web o app mobile) con 1 GB di RAM e lo scheduler Kubernetes manterrà i livelli attraverso le risorse di sistema come un termometro che ridimensiona i server e chiude i nodi come richiesto dallo stato della rete. Per questo motivo non è consigliabile utilizzare build di grandi dimensioni con molti file statici archiviati nei server Web replicati basati su contenitore, portando a una maggiore funzionalità di archiviazione cloud basata su API su cui tutti i server Web a nodo elastico possono attingere come richiesto dalle richieste di traffico https . Ciò consente inoltre ai meccanismi di rilevamento dei servizi (SkyDNS, discoverd, Confd, proxy proxy, ecc.) Di mettere in relazione la geolocalizzazione degli utenti dalle richieste del browser su reti pubbliche per un migliore bilanciamento del carico, nonché la creazione di nuove soluzioni per la memorizzazione nella cache interna di file proxy inverso nei data center per migliori prestazioni di web hosting.

Distro Linux leggero per cluster di server Web nativi Kubernetes e app SaaS

Dockerfile Build in the Cloud – "Ti piace usare Dockerfiles per creare le tue immagini? Carica semplicemente il tuo Dockerfile (e tutti i file aggiuntivi necessari) e costruiremo il tuo Dockerfile in un’immagine e lo inseriremo nel tuo repository. Se memorizzi il tuo Dockerfile in GitHub, Bitbucket o Gitlab, aggiungi un trigger di build al tuo repository e avvieremo una build di Dockerfile per ogni modifica apportata … Condividi qualsiasi repository con tanti (o pochi) utenti quanti vuoi scegliere. Hai bisogno di un repository solo per la tua squadra? Condividi facilmente con i membri del tuo team … Vuoi condividere con il mondo? Rendi il tuo repository completamente pubblico." Ulteriori informazioni su Quay.io

Distro Linux leggero per cluster di server Web nativi Kubernetes e app SaaS

etcd & Stati del cluster di Kubernetes – "etcd è un archivio di valori chiave distribuito che fornisce un modo affidabile per archiviare i dati su un cluster di macchine. esso’s open-source e disponibile su GitHub. etcd gestisce con grazia le elezioni dei leader durante le partizioni di rete e tollera i guasti della macchina, incluso il leader." Ulteriori informazioni su CoreOS & Kubernetes (ecc.)

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me