Container Linux - Container Linux
| Dezvoltator | Echipa CoreOS, Red Hat |
|---|---|
| Familia OS | Linux (bazat pe Gentoo Linux ) |
| Starea de lucru | Întrerupt |
| Modelul sursă | Sursa deschisa |
| Eliberarea inițială | 3 octombrie 2013 |
| Ultima lansare | 2512.3.0 / 22 mai 2020 |
| Ultima previzualizare | 2513.2.0 (Beta) / 22 mai 2020 2514.1.0 (Alpha) / 22 mai 2020 |
| Obiectiv de marketing | Servere și clustere |
| Platforme | x86-64 |
| Tipul de nucleu | Monolit ( kernel Linux ) |
| Licență | Licență Apache 2.0 |
| urmat de | Fedora CoreOS RHEL CoreOS |
| Site oficial | coreos |
Container Linux (anterior CoreOS Linux ) este un sistem de operare open-source ușor întrerupt bazat pe kernel-ul Linux și conceput pentru a furniza infrastructură implementărilor clusterizate , concentrându-se în același timp pe automatizare, ușurința implementării aplicației, securitate, fiabilitate și scalabilitate . Ca sistem de operare, Container Linux a furnizat doar funcționalitatea minimă necesară pentru implementarea aplicațiilor în containerele software , împreună cu mecanisme încorporate pentru descoperirea serviciilor și partajarea configurației.
Container Linux partajează fundații cu Gentoo Linux , Chrome OS și Chromium OS printr-un kit de dezvoltare software comun (SDK). Container Linux adaugă noi funcționalități și personalizare acestei fundații partajate pentru a sprijini hardware-ul serverului și a cazurilor de utilizare. CoreOS a fost dezvoltat în principal de Alex Polvi, Brandon Philips și Michael Marineau, cu caracteristicile sale majore disponibile ca versiune stabilă .
Echipa CoreOS a anunțat sfârșitul vieții pentru Container Linux pe 26 mai 2020, oferind Fedora CoreOS și RHEL CoreOS ca înlocuitor, ambele bazate pe Red Hat .
Prezentare generală
Container Linux nu oferă niciun manager de pachete ca modalitate de distribuire a aplicațiilor de sarcină utilă, necesitând în schimb toate aplicațiile să ruleze în containerele lor. Servind ca o singură gazdă de control, o instanță Container Linux folosește caracteristicile de virtualizare de bază ale sistemului de operare ale kernel-ului Linux pentru a crea și configura mai multe containere care funcționează ca sisteme Linux izolate . În acest fel, partiționarea resurselor între containere se realizează prin mai multe instanțe de spațiu utilizator izolate , în loc să utilizeze un hipervizor și să furnizeze mașini virtuale complete . Această abordare se bazează pe funcționalitățile cgroup - urilor și spațiului de nume ale nucleului Linux , care împreună oferă abilități de a limita, contabiliza și izola utilizarea resurselor ( CPU , memorie, I / O de disc etc.) pentru colecțiile de procese de spațiu utilizator .
Inițial, Container Linux a folosit exclusiv Docker ca o componentă care oferă un strat suplimentar de abstracție și interfață pentru caracteristicile de virtualizare la nivel de sistem de operare ale kernel-ului Linux, precum și furnizarea unui format standardizat pentru containere care permite aplicațiilor să ruleze în diferite medii. În decembrie 2014, CoreOS a lansat și a început să sprijine rkt (lansat inițial ca Rocket ) ca alternativă la Docker, oferind prin intermediul acestuia un alt format standardizat al imaginilor container-aplicație, definiția aferentă a mediului de rulare a containerului și un protocol pentru descoperirea și recuperarea imaginilor containerului. CoreOS oferă rkt ca o implementare a așa-numitei specificații pentru containerul de aplicații (appc) care descrie proprietățile necesare ale imaginii containerului de aplicații (ACI); CoreOS a inițiat appc și ACI ca un set de specificații independente conduse de comitet, cu scopul de a le face parte din Open Container Initiative (OCI; Open Container Project sau OCP), standard de containerizare independent de sistem de operare și furnizor. a fost anunțat în iunie 2015.
Container Linux utilizează ebuild script - urile din Gentoo Linux pentru sistemele automate de compilare a componentelor sale de sistem, și utilizările systemd ca principal de inițializare sistem cu integrare strânsă între systemd și mecanisme interne diferite de containere Linux.
Distribuția actualizărilor
Container Linux realizează securitate și fiabilitate suplimentară a actualizărilor sistemului de operare prin utilizarea FastPatch ca schemă de partiție dublă 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 de boot secundară pasivă care devine activ la repornire sau kexec . Această abordare evită posibilele probleme care decurg din actualizarea numai a anumitor părți ale sistemului de operare, asigură reveniri ușoare la o versiune cunoscută a fi stabilă a sistemului de operare și permite semnarea fiecărei partiții de boot pentru securitate suplimentară. Partiția rădăcină și sistemul său de fișiere rădăcină sunt redimensionate automat pentru a umple tot spațiul pe disc disponibil la repornire; în timp ce partiția rădăcină oferă spațiu de stocare în citire-scriere, sistemul de operare în sine este montat numai în citire sub / usr .
Pentru a se asigura că doar o anumită parte a clusterului repornește simultan când sunt aplicate actualizările sistemului de operare, păstrând astfel resursele necesare pentru rularea aplicațiilor implementate, CoreOS oferă lăcătuș ca manager de repornire pentru Container Linux. Folosind lăcătușul, se poate selecta între diferite strategii de actualizare care sunt determinate de modul în care se efectuează repornirile ca ultim pas în aplicarea actualizărilor; de exemplu, se poate configura câți membri ai clusterului li se permite repornirea simultană. Pe plan intern, locksmith funcționează ca demonul locksmithd care rulează pe membrii clusterului, în timp ce utilitarul de linie de comandă locksmithctl gestionează parametrii de configurare. Lăcătuș 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 lansarea actualizărilor și protocolul de bază cerere-răspuns 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 diferitelor grupuri care partajează politici de actualizare personalizate, revizuirea defalcărilor la nivel de cluster a versiunilor Container Linux, oprirea și repornirea actualizărilor și revizuirea jurnalelor de actualizare înregistrate. CoreUpdate oferă, de asemenea, un API bazat pe HTTP care permite integrarea acestuia în utilități terțe sau sisteme de implementare .
Infrastructura clusterului
Container Linux oferă etcd, un daemon care rulează pe toate computerele dintr-un cluster și oferă un registru de configurare dinamică, permițând partajarea cu ușurință și fiabilitate a diferitelor date de configurare între membrii clusterului. Deoarece datele cheie-valoare stocate în etcd sunt distribuite și reproduse automat cu alegerea master automată și stabilirea consensului utilizând algoritmul Raft , toate modificările din datele stocate sunt reflectate pe întregul cluster, în timp ce redundanța obținută împiedică eșecurile membrilor unici ai clusterului să provoace pierdere de date. Pe lângă gestionarea configurației, etcd oferă, de asemenea, descoperirea serviciilor, permițând aplicațiilor implementate să se anunțe pe ei înșiși și serviciile pe care le oferă. Comunicarea cu etcd se realizează printr-un API bazat pe REST expus , care utilizează intern JSON pe partea de sus a HTTP; API-ul poate fi utilizat direct (prin curl sau wget , de exemplu), sau indirect prin etcdctl , care este un utilitar specializat în linia de comandă furnizat și de CoreOS. Etcd este, de asemenea, utilizat în software-ul Kubernetes .
Container Linux oferă, de asemenea, managerul de cluster al flotei care controlează instanțele de sistem separate ale Container Linux la nivel de cluster. Începând din 2017 „flota” nu mai este dezvoltată activ și este depreciată în favoarea Kubernetes . Prin utilizarea flotei , Container Linux creează un sistem inițial distribuit care leagă instanțe de sistem separate și o implementare la nivel de cluster etc. intern, demonul fleetd comunică cu instanțele systemd locale prin D-Bus și cu implementarea etcd prin API-ul său expus. Folosirea flotei permite implementarea de containere simple sau multiple la nivel de cluster, cu opțiuni mai avansate, inclusiv redundanță , trecere la eroare , implementare către membrii clusterului specific, dependențe între containere și implementarea grupată a containerelor. Un utilitar de linie de comandă numit fleetctl este utilizat pentru a configura și monitoriza acest sistem de inițiere distribuit; intern, comunică cu daemon-ul fleetd utilizând un API bazat pe JSON pe partea de sus a HTTP, care poate fi utilizat și direct. Când este utilizat local pe un membru de cluster, fleetctl comunică cu instanța de flotă locală printr-un socket de domeniu Unix ; atunci când este utilizat de la o gazdă externă, tunelarea SSH este utilizată cu autentificare furnizată prin chei SSH publice .
Toți demonii și utilitarele de linie de comandă menționate mai sus ( etcd , etcdctl , fleetd și fleetctl ) sunt scrise în limba Go și distribuite în condițiile licenței Apache 2.0.
Implementare
Atunci când rulează pe hardware dedicat, Container Linux poate fi instalat permanent pe stocarea locală, cum ar fi o unitate de hard disk (HDD) sau o unitate SSD (SSD), sau poate fi pornit de la distanță printr-o rețea utilizând Preboot Execution Environment (PXE) în general , sau iPXE ca una dintre implementările sale. CoreOS acceptă, de asemenea, implementări pe diverse platforme de virtualizare hardware , inclusiv Amazon EC2 , DigitalOcean , Google Compute Engine , Microsoft Azure , OpenStack , QEMU / KVM , Vagrant și VMware . Container Linux poate fi instalat și pe Citrix XenServer, menționând că există un „șablon” pentru CoreOS.
Container Linux poate fi, de asemenea, implementat prin distribuția sa comercială numită Tectonic , care integrează în plus Kubernetes Google ca utilitar de gestionare a clusterelor. Din aprilie 2015, Tectonic este planificat să fie oferit ca software beta pentru selectarea clienților. Mai mult, CoreOS oferă Flannel ca o componentă care implementează o rețea de acoperire necesară în primul rând pentru integrarea cu Kubernetes.
Începând din februarie 2015, Container Linux acceptă doar arhitectura x86-64 .
Derivate
După achiziționarea CoreOS, Inc. în ianuarie 2018, Red Hat a anunțat că va fuziona CoreOS Container Linux cu Red Hat’s Project Atomic, pentru a crea un nou sistem de operare, Red Hat CoreOS, în timp ce va alinia comunitatea open source Fedora Project Fedora CoreOS, combinând tehnologii de la ambii predecesori.
Pe 6 martie 2018, Kinvolk GmbH a anunțat Flatcar Container Linux , un derivat al CoreOS Container Linux. Aceasta urmărește lansările CoreOS alpha / beta / stabile în amonte, cu un canal experimental de lansare Edge adăugat în mai 2019.
Recepţie
LWN.net a analizat CoreOS în 2014:
Pentru cei care realizează sisteme mari, distribuite - aplicațiile web fiind un prim exemplu - CoreOS pare să aibă o mulțime de funcționalități interesante. Ar trebui să permită aplicațiilor de acest tip să crească și să se micșoreze în funcție de necesități în funcție de cerere, precum și să ofere o platformă stabilă în care upgrade-urile nu sunt o durere de cap constantă. Pentru „implementări masive de servere”, CoreOS, sau ceva cu multe dintre aceleași caracteristici, arată ca viitorul.
Vezi si
- Virtualizarea aplicației - tehnologie software care încapsulează aplicația software din sistemul de operare pe care este executat
- Compararea software - ului de virtualizare a aplicațiilor - diverse mașini virtuale portabile și cu limbaj de scriptare
- Compararea software - ului de virtualizare a platformei - diverși emulatori și hipervizori, care emulează întregul computer fizic
- LXC (Linux Containers) - un mediu pentru rularea mai multor sisteme Linux izolate (containere) pe o singură gazdă de control Linux
- Implementări de virtualizare la nivel de sistem de operare - bazate pe suportul kernel-ului sistemului de operare pentru mai multe instanțe izolate de spațiu utilizator
- Software ca serviciu (SaaS) - un model de licențiere și livrare a software-ului care găzduiește software-ul la nivel central și îl licențiază pe bază de abonament
- Virtualizare - un concept general de furnizare a versiunilor virtuale ale platformelor hardware, sistemelor de operare, dispozitivelor de stocare etc.
Referințe
linkuri externe
- Oficiale CoreOS și github de coduri sursă: CoreOS , etcd , flota , RKT și CoreOS Suprapunere-
- CoreOS la DistroWatch
- Prima privire la CoreOS , 3 septembrie 2013, de Sébastien Han
- CoreOS: Linux pentru cloud și centru de date , ZDNet , 2 iulie 2014, de Steven J. Vaughan-Nichols
- Ce este CoreOS? O amenințare existențială pentru furnizorii de Linux , InfoWorld , 9 octombrie 2014, de Matt Asay
- Înțelegerea arhitecturii distribuite CoreOS , 4 martie 2015, o discuție cu Alex Polvi de Aaron Delp și Brian Gracely
- Arhitectura flotei CoreOS , 26 august 2014, de Brian Waldon și colab.
- Rularea CoreOS pe Google Compute Engine , 23 mai 2014
- CoreOS trece de la Btrfs la Ext4 + OverlayFS , Phoronix , 18 ianuarie 2015, de Michael Larabel
- Containere și date persistente , LWN.net , 28 mai 2015, de Josh Berkus