Container CoreOS Linux

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Container Linux de CoreOS
sistem de operare
Siglă
Familie Unix-like
Eliberarea inițială 3 octombrie 2013
Lansare curentă 1353.2.0 (28 martie 2017)
Tipul de nucleu Nucleul monolitic
Platforme acceptate x86-64
Etapă de dezvoltare în dezvoltare
Site-ul web www.coreos.com/

Container Linux by CoreOS (fost CoreOS Linux ) este un sistem de operare open source și auto-actualizat, bazat pe kernel-ul Linux . A fost conceput special pentru infrastructuri grupate și se concentrează pe automatizare, executarea aplicațiilor containerizate, securitate, fiabilitate și scalabilitate. Ca sistem de operare, Container Linux oferă doar funcționalitatea minimă necesară pentru implementarea aplicațiilor în containerele software, împreună cu mecanisme încorporate pentru descoperirea serviciilor și partajarea configurațiilor. [1] [2] [3] [4] [5]

Container Linux împarte sistemul de bază cu Gentoo Linux , Chrome OS și Chromium OS , printr-un kit de dezvoltare bazat pe Portage (SDK). Container Linux adaugă noi caracteristici acestui sistem pentru a susține hardware-ul serverului. Container Linux a fost dezvoltat din ianuarie 2015, în principal de Alex Polvi , Brandon Philips și Michael Marineau . Publicații noi ale sistemului de operare apar o dată la două săptămâni.

Container Linux nu oferă niciun manager de pachete pentru instalarea aplicațiilor, ci necesită toate serviciile pentru a rula în containere software. O instanță Linux Container valorifică capacitățile kernel-ului Linux pentru a crea și configura un număr mare de containere software, care pot fi considerate ca sisteme Linux izolate individuale. În acest fel, alocarea resurselor între containere se face prin instanțe multiple de spații de utilizator, mai degrabă decât prin utilizarea unui hipervizor și prin furnizarea de mașini virtuale complete. Această abordare se bazează pe capabilitățile kernel-ului Linux „cgroups” și „namespaces” care împreună oferă capabilități de limitare, gestionare și izolare a utilizării resurselor (CPU, memorie, I / O disc etc.) a proceselor.

Inițial, Container Linux a folosit exclusiv Docker pentru a rula software-ul container pentru a sprijini un format comun de construire și distribuție a aplicațiilor. În decembrie 2014, CoreOS a publicat și a început să dezvolte rkt (inițial publicat ca Rocket) ca alternativă la Docker, cu scopul de a oferi un format standard pentru imaginile containerelor, definiția aferentă a mediului de rulare a containerului și un protocol pentru descoperire și recuperare imagini. rkt implementează specificația AppC, care descrie proprietățile necesare pentru imaginile containerului aplicației (ACI); CoreOS a lansat appc și ACI ca un set independent de comenzi bazate pe specificații, menite să le facă parte din furnizor și sistemul de operare independent Open Container Initiative (OCI, denumit inițial Open Container Project sau OCP ), care a fost anunțat în iunie 2015 .

Container Linux folosește scripturi ebuild de la Gentoo Linux pentru compilarea automată a componentelor sistemului și folosește systemd ca sistem inițial primar cu integrare strânsă între funcționarea internă a systemd și diverse sisteme Container Linux.

Distribuirea actualizărilor

Container Linux realizează securitatea și fiabilitatea suplimentară a actualizărilor sistemului de operare prin utilizarea FastPatch ca schemă cu două partiții pentru partea numai în citire a instalării sale, ceea ce înseamnă că actualizările sunt efectuate ca întreg și instalate pe o partiție a secundarului pasiv boot care devine activ la o repornire sau kexec. Această abordare evită problemele potențiale ale actualizării doar a anumitor părți ale sistemului de operare, asigură o simplă revenire la o versiune stabilă cunoscută a sistemului de operare și permite semnarea fiecărei partiții de boot pentru securitate suplimentară. Partiția rădăcină și fișierul său rădăcină sunt redimensionate automat pentru a umple tot spațiul disponibil la reporniri; în timp ce partiția rădăcină oferă spațiu de stocare pentru citire și scriere, sistemul de operare este montat numai în citire sub / usr. Pentru a se asigura că doar o porțiune a clusterului repornește în același timp cu actualizarea sistemului de operare, păstrând astfel resursele necesare pentru a rula aplicații distribuite, CoreOS oferă lăcătuș ca manager de repornire pentru Container Linux. Folosind lăcătușul, puteți selecta dintre mai multe strategii de actualizare determinate de modul în care se efectuează repornirile ca ultim pas în aplicarea actualizărilor; de exemplu, se poate configura numărul de membri cluster care pot fi reporniți în același timp. Pe plan intern, lăcătușul acționează ca demonul lăcătuș care rulează pe membrii clusterului, în timp ce utilitarul de linie de comandă locksmithctl gestionează parametrii de configurare. Lăcătușul este scris în limba Go și distribuit în condițiile licenței Apache 2.0.

Sistemul de distribuție a actualizărilor utilizat de Container Linux se bazează pe proiectul Omaha open-source de la Google, care oferă un mecanism pentru dezvoltarea actualizărilor și protocolul de răspuns-cerere bazat pe XML . În plus, CoreOS oferă CoreUpdate ca tablou de bord web pentru gestionarea actualizărilor la nivel de cluster. Operațiunile disponibile prin CoreUpdate includ alocarea membrilor clusterului la diferite grupuri care partajează politici de actualizare personalizate, revizuirea configurațiilor Linux Container la nivel de cluster, oprirea și repornirea actualizărilor și revizuirea jurnalelor actualizate conectați-vă. CoreUpdate oferă, de asemenea, un API bazat pe HTTP care permite integrarea acestuia în utilități terțe sau sisteme de distribuție.

Infrastructuri de cluster

CoreOS dezvoltă, de asemenea, etcd, un daemon care rulează toate computerele dintr-un cluster și oferă un registru de configurare dinamic care vă permite să partajați cu ușurință și fiabilitate diferite date de configurare între membrii clusterului. Deoarece datele (perechi de chei și valori) stocate în etcd sunt distribuite și reproduse automat cu alegeri master și consimțământ automat folosind algoritmul Raft, toate modificările datelor stocate sunt reflectate pe întregul cluster, în timp ce redundanța obținută previne eșecul membrii clusterului individual pentru a provoca pierderea datelor. Pe lângă gestionarea configurațiilor, descoperirea serviciilor vă permite să vă anunțați și serviciile pe care le oferă. Comunicarea cu etcd se realizează printr-un API bazat pe REST, care utilizează intern JSON prin HTTP; API-ul poate fi utilizat direct (de exemplu prin curl sau wget) sau indirect prin etcdctl, un utilitar specializat în linia de comandă.

Container Linux oferă, de asemenea, managerul de cluster "flotă", care controlează instanțele de sistem separate ale Container Linux la nivel de cluster. Din 2017 „flota” nu mai este dezvoltată activ, fiind depreciată în favoarea Kubernetes. Folosind „fleetd”, Container Linux creează un sistem distribuit care combină instalații separate de noduri într-un singur cluster; intern, demonul „fleetd” comunică cu instanțele de sistem locale de pe D-Bus și cu implementarea etcd prin interfața HTTP. Folosirea flotei permite implementarea de software pentru containere unice sau multiple într-un mediu de cluster, cu opțiuni mai avansate, inclusiv redundanță, trecere la eșec, implementare către membri specifici ai clusterului, dependențe inter-containere și implementare de containere distribuite. Un utilitar de linie de comandă numit fleetctl este utilizat pentru a configura și monitoriza acest sistem distribuit inițial; intern, comunică cu daemon-ul fleetd utilizând un API bazat pe JSON prin HTTP, care poate fi utilizat și direct. Când este utilizat local într-un membru de cluster, fleetctl comunică cu instanța de flotă locală printr-un socket local Unix; atunci când este utilizat de o gazdă externă, tunelarea SSH este utilizată cu autentificare furnizată prin chei SSH publice.

Toate aceste programe (etcd, etcdctl, fleetd și fleetctl) sunt scrise în limba Go și distribuite în condițiile licenței Apache 2.0.

Distribuție

Când rulează pe hardware dedicat, Container Linux poate fi instalat permanent pentru stocare locală, cum ar fi un hard disk (HDD) sau SSD, sau poate fi pornit de la distanță printr-o rețea utilizând mediul de execuție preboot (PXE) în general sau iPXE ca unul dintre CoreOS implementările acceptă, de asemenea, platforme de virtualizare hardware, inclusiv Amazon EC2 , DigitalOcean , Google Compute Engine , Microsoft Azure , OpenStack , QEMU / KVM , Vagrant și VMware .

Containerul Linux poate fi distribuit și prin distribuția sa comercială numită Tectonic, care integrează, de asemenea , Kubernetes Google ca utilitar de gestionare a clusterelor. Începând cu aprilie 2015, Tectonic este programat să fie oferit ca software beta pentru clienți selectați. În plus, CoreOS oferă Flannel ca o componentă care implementează o rețea de acoperire necesară în primul rând pentru integrarea cu Kubernetes.

Începând cu februarie 2015, Container Linux acceptă doar arhitectura x86-64 .

Notă

  1. ^ CoreOS Linux este acum Container Linux , la coreos.com . Adus la 20 decembrie 2016 .
  2. ^ Libby Clark, Brandon Philips: How the CoreOS Linux Distro Uses Cgroups , at linux.com , Linux.com , 9 septembrie 2013. Accesat la 13 februarie 2014 (arhivat din original la 22 februarie 2014) .
  3. ^ Cade Metz, Linux Hackers Rebuild Internet From Silicon Valley Garage , wired.com , Wired , 21 august 2013. Adus 13 februarie 2014 .
  4. ^ CoreOS - o nouă abordare a sistemelor de server bazate pe Linux , pe itnews2day.com , 22 august 2013. Accesat pe 26 martie 2014 .
  5. ^ Documentație CoreOS : folosind CoreOS , la coreos.com . Adus la 13 februarie 2014 (arhivat din original la 23 februarie 2014) .

Alte proiecte

linkuri externe

( EN ) CoreOS Linux Container , pe DistroWatch . Editați pe Wikidata