Programiranje

Pregled: Najboljše distribucije Linuxa za Docker in vsebnike

V zadnjih šestih mesecih sem pregledal pet minimalnih distribucij Linuxa, ki so optimizirane za izvajanje zabojnikov: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host in VMware Photon OS. Splošno znani kot "operacijski sistemi za zabojnike", te odstranjene namenske distribucije Linuxa niso edini način za zagon zabojnikov v proizvodnji, vendar zagotavljajo osnovo, ki ne zapravlja virov za nič drugega kot za podporo zabojnikom.

Stanje industrije s sistemi za uvajanje zabojnikov je zelo podobno zgodnjim časom distribucij Linuxa. Imate en ključni element, v tem primeru Dockerjev vsebnik, ki je obdan s številnimi konkurenčnimi komponentami ekosistema. Tako kot tradicionalni distribucijski sistemi Linux vključujejo različne upravitelje paketov, namizna okolja, sistemske pripomočke, storitve in aplikacije, se tudi večina distribucij vsebnikov med seboj kombinira in ujema z različnimi komponentami, da ustvari tisto, kar se jim zdi optimalna rešitev. Vzemimo za primer porazdeljeno konfiguracijo in odkrivanje storitev. Za to obstaja več rešitev, kot so Etcd, Consul in ZooKeeper.

Vsaka distribucija ima drugačen pristop k temu, kaj vključiti v sklad. V enem skrajnem primeru obstajajo distribucije, namenjene podpiranju samo višjih ravni sklada, kot sta CoreOS Container Linux in Red Hat Project Atomic. Toliko funkcionalnosti je bilo vloženih v lastniško plast upravljanja, da je malo upanja, da bi OS uporabili za kaj drugega. Drugi distroji, kot sta RancherOS in VMware Photon OS, zagotavljajo večjo prilagodljivost in podpirajo več komponent ekosistema in sisteme za orkestracijo. To skrbnikom omogoča dober način za eksperimentiranje in potencialno izogibanje zaklepanju prodajalcev.

Alpine Linux

Alpine Linux, osnovni operacijski sistem za številne uradne slike Dockerja, je odlična izbira za to nalogo. Velikost zgolj pet megabajtov je Alpine Linux na nasprotnem koncu spektra od polnomastnih distribucij Linuxa izpred nekaj let, ki so konkurirale Solarisu in so bile namenjene za delovanje na velikih sistemskih strojnih sistemih. Ta nova vrsta Linuxa je zasnovana tako, da deluje na vgrajeni strojni opremi in porabi minimalna sredstva, zato je odlična izbira za zabojnike.

Zapuščina Alpine Linuxa kot vdelanega OS je bila očitna med mojim pregledom. Številne možnosti konfiguracije so privzete za vdelane sisteme, dokumentacija na mnogih področjih pa je bila redka ali pa je sploh ni bilo. Jasno je, da je sistem, zasnovan za hekerje in ga v glavnem uporabljajo, Alpine Linux od podjetij zahteval, da odpravijo nekaj ovir za izdelavo svojih aplikacij.

Proizvodne postavitve Alpine Linuxa bodo imele številne prednosti, vključno s hitrim zagonom, minimalističnim odtisom in varno privzeto držo, ki je ni mogoče najti nikjer drugje. Vse od sistemskih binarnih datotek do knjižnic C je zasnovano za majhne, ​​hitre in varne razmestitve. Tu ni napihnjenosti.

Administracija Alpine Linuxa se razlikuje od običajnih sistemov Linux in se bo nekaj časa učila. Namestitev in upravljanje paketov je edinstveno tudi med operacijskimi sistemi zabojnikov, čeprav dobro premišljeno. Če imate v svoji razvojni trgovini nadpovprečne razvijalce, ki so pripravljeni investirati, bo Alpine Linux še dolgo zagotovil trdno, stabilno in varno podlago za aplikacije.

CoreOS Container Linux

Sklop vsebnikov CoreOS črpa Etcd za porazdeljeno shranjevanje in odkrivanje storitev, Flannel za mreženje in Kubernetes za orkestracijo vsebnikov, poleg Dockerja pa podpira tudi svoj okus oblike vsebnika, rkt (Rocket). Rocket je bil poskus konkurenčnega formata kontejnerja za odpravo pomanjkljivosti v Dockerjevem formatu približno leta 2015, toda ob odpravljanju teh pomanjkljivosti Rocket ni videl večjega prevzema.

Povezani video: Kaj je Kubernetes?

V tem 90-sekundnem videoposnetku se o Kubernetesu, odprtokodnem sistemu za avtomatizacijo kontejnerskih aplikacij, seznanite od enega od izumiteljev tehnologije Joeja Bede, ustanovitelja in tehničnega direktorja podjetja Heptio.

CoreOS, tako kot Project Atomic, se ne boji radikalnega odstopanja od tradicionalnega Linuxa. Tako kot kontejnerski OS Red Hat, CoreOS Container Linux ustvarja večinoma nespremenljiv datotečni sistem, vendar to počne s sistemom za particioniranje diska, ki ga je navdihnil Googlov OS Chromium. To naredi, da ohrani stari datotečni sistem na particiji, kar pomeni, da so obnovitve vedno varne in hitre.

Čeprav je dokumentacija dokaj dobra in izčrpna, se mi je zdela namestitev nekoliko okorna in vključuje dvostopenjski postopek za izpeljavo konfiguracijske datoteke. Po namestitvi pa CoreOS ponuja neprekinjene nadgradnje "brez izpadov", funkcijo, ki jo omogoča edinstvena postavitev particije diska. CoreOS je tu opravil veliko dela in podjetje ponuja različne možnosti vzdrževanja, ki bodo ustrezale večini katere koli organizacije, vključno z možnostjo odpovedi.

CoreOS, podobno kot Project Atomic, je odločitev "vse ali nič". Ločevanje kosov in uporaba osnovnega OS za izgradnjo lastne infrastrukture zabojnikov v resnici ni mogoča zaradi vseh odločitev o arhitekturnem oblikovanju, vpetih v platformo. Če ste pripravljeni sprejeti te odločitve in plačati komercialno distribucijo podjetja Kubernetes, Tectonic CoreOS-a, boste nedvomno lahko izvedli resno težko dvigovanje.

Rancher Labs RancherOS

RancherOS podjetja Rancher Labs je operacijski sistem Linux, ki je v celoti sestavljen iz vsebnikov. Tudi postopek init (PID 1) je Dockerjev vsebnik. To pomeni, da sistem upravljanja paketov ni potreben. Nadgradnje OS (in nadgradnje) upravlja Docker, tako kot kateri koli drug vsebnik.

Čeprav je ta pristop enako radikalen kot arhitekturne odločitve, sprejete v nekaterih drugih distribucijah, kot sta Project Atomic in CoreOS, je rezultat presenetljiva preprostost. Čeprav se zdi učenje katere koli povsem nove sistemske administracije sprva zastrašujoče, morate vseeno poznati Docker za upravljanje vsebnikov, zakaj pa ne bi uporabljali istega sistema za oba?

Zdi se, da RancherOS hitro dozori. V svojem pregledu sem ugotovil, da dokumentacije nekoliko primanjkuje, toda vsak razvijalec ali skrbnik, ki pozna Dockerjeve vsebnike, bo večino sistema že poznal. RancherOS ima majhen odtis (20 MB) in učinkovito uporablja vire. Čeprav so meje med sistemom za upravljanje vsebnikov Rancher in OS Rancher nekoliko zamegljene, je sistem za upravljanje vsebnikov brezplačen in odprtokoden, zato ni razloga, da bi poskušali zviti svoje. Organizacije, ki potrebujejo dostop do izvorne kode, ne bi smele več iskati.

Platforma Rancher podpira skoraj celoten ekosistem orodij za upravljanje zabojnikov, vključno z Docker Swarm, Kubernetes in Mesos, in hitro napreduje. Čeprav se RancherOS radikalno razlikuje od tradicionalnega UNIX-a, se je bolj držal osnovne filozofije UNIX kot druge distribucije OS-jev kontejnerjev: preprosta orodja, ki delujejo na eleganten način.

Projekt Red Hat Atomic

Projekt Atomic Red Hat je trdno v taborišču orkestracije Kubernetes. Običajno je ta vrsta uvajanja usmerjena v obsežne, zelo razpoložljive scenarije. Slaba stran je, da morate v bistvu "narediti, kot vam naročijo" in aplikacijo oblikovati po dogovoru.

V polju boste našli Flannel za mreženje, Etcd za porazdeljeno shranjevanje ključ-vrednost in OSTree za upravljanje gostitelja. OSTree je razmeroma nov način za zanesljivo in porazdeljeno uvajanje OS v obsegu. Atomic združuje OSTree z novim upraviteljem paketov RPM, da ustvari RPM-OSTree, ki zagotavlja večinoma nespremenljiv datotečni sistem.

Projekt Atomic se mi je zdel izziv. Je zelo ambiciozen in se hitro premika, z veliko gibljivimi deli. RHEL, CentOS, Fedora, SELinux, Systemd, nabor ukazov po meri »Docker« za nadzor osnovnega gostitelja… vsi so v mešanici, dokumentacija pa neurejena in zmedena. Poleg tega sem moral v svoji majhni gruči, v kateri ni bilo kuharskega, solnega ali lutkovnega, vsako vozlišče ročno konfigurirati.

Bistvo je, da Project Atomic še vedno potrebuje nekaj časa za peko. Če se vizija uresniči, bo morda postala standard prihodnosti - čeprav ne za podatkovne centre s stotinami vozlišč, temveč s tisoči ali desetimi tisoči. V tem pogledu se zdi vizija bližja Mesosovi kot tipični sistem za uvajanje kontejnerjev. Če vaše podjetje živi in ​​diha ekosistem Red Hat in namerava tam ostati, potem je projekt Atomic verjetno vredno začeti.

VMware Photon OS

Photon OS VMware je minimalni gostiteljski vsebnik za Linux, zasnovan tako, da ima majhen odtis in prilagojen hipervizorjem VMware. Kot tak Photon OS deluje samo v navideznih okoljih; razmestitev na fizični strojni opremi ni mogoča. Photon OS je prilagojen za lažje upravljanje vsebnikov, vendar ne tako radikalno kot Atomic ali CoreOS. Photon OS je bolj evolucijski korak.

Na podlagi mojega testiranja je Photo OS izpolnil svoje obljube v virtualnem okolju VMware. (Photon OS lahko deluje tudi na drugih hipervizorjih, pa tudi na oblakih Google in Amazon.) Ker lahko Photon OS daje predpostavke o strojni opremi (virtualni), je ekosistem zelo podoben običajnemu Linuxu, zaradi česar je krivulja učenja manj strma. Omrežje in shranjevanje sta združljiva s sistemom Systemd, za mreženje vsebnikov pa je dokumentirana vrsta možnosti. Dokumentacija za Photon OS je morda najboljša med pregledanimi izdelki.

VMware prevzema vodilno vlogo pri izdelavi zabojnikov za tradicionalna okolja, kar je smiselno, če pomislite. Kako pogosto so vas prosili, da opišete razliko med vsebnikom in VM? Z operacijskim sistemom Photon OS kmalu ne bo nobene razlike: zabojniki bodo le lahka VM, nameščena in upravljana z istimi orodji. Photon OS podpira tako rekoč vsak večji del ekosistema zabojnikov: Docker in Rocket kontejnerji, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 in še več.

Med vsemi distribucijami, ki sem jih pregledal, se zdi VMware Photon OS tako najbolj vizionarski kot trenutno najbolj popoln in uporaben. Če ste v trgovini VMware, ki raziskuje kontejnerizacijo, ne bi razmišljal o čem drugem. Če niste trgovina z VMware, je Photon OS še vedno vreden dobrega pogleda.

Primerjava operacijskih sistemov zabojnikov

Alpine Linux podpira večino vseh Dockerjevih slik. Kot nalašč za vdelane aplikacije, na Alpine Linux ne smemo gledati kot na način za zagon vsebnikov. Namesto tega na nek način Alpine Linux je posodo. Razvijalci, ki poznajo gradnjo aplikacij na Alpine Linux, bodo pisali boljše aplikacije za vsebnike.

CoreOS, eden od zgodnjih operacijskih sistemov za kontejnerje, sprejema Googlov sveženj tehnologij. Ponuja zanesljiv, čeprav samozavesten način upravljanja zabojniške infrastrukture. Medtem ko CoreOS omogoča, da so številne komponente na voljo kot odprtokodne, pa zapletenost učenja tako velikega sklada učinkovito pomeni, da bodo uporabniki morali kupiti lastni sistem Techtonic orkestracije za proizvodne razmestitve. Če denar ni predmet in morate uvesti Googlove aplikacije, je CoreOS logična izbira.

RancherOS je čista posoda. Če nameravate razviti lastno infrastrukturo zabojnikov ali če želite minimalni sklad za upravljanje zabojnikov, je mesto za začetek RancherOS. Z odprtokodnimi orodji za orkestracijo in razporejanje, kot so Docker Swarm, Kubernetes in Mesos, ki so brezplačno na voljo, bo paket Rancher naklonjen odprtokodnim podjetjem, ki delajo sama.

Red Hat's Project Atomic je krovni projekt, ki preoblikuje način, kako podjetja uvajajo infrastrukturo. Ta ambiciozen projekt bi lahko spremenil način razmišljanja podjetij o uvajanju aplikacij, vendar je pot dolga. Project Atomic je najprimernejši za začetnike, ki že veliko vlagajo v tehnologije Red Hat.

VMwareov Photon OS v vsebnike prinaša tehnologijo in izkušnje upravljanja navideznih strojev tega ponudnika. Photon OS je postavljen kot navidezni stroj in se upravlja s tradicionalnimi orodji VM. VMware, ki je morda videl napis na steni za tradicionalne VM-je, je z vsem srcem sprejel tehnologijo zabojnikov in hitro napreduje na področju tehnike. Če ste zdaj trgovina VMware, boste težko našli boljšo platformo zabojnikov kot Photon OS.

Preberite pregled vsebnika Linux:

  • Pregled: Alpine Linux je narejen za Docker
  • Pregled CoreOS: Linux za vsebnike in Kubernetes
  • RancherOS: preprostejši Linux za ljubitelje Dockerja
  • Pregled: Red Hat naredi Docker na težji način
  • Pregled: Vonware Photon OS zasveti za vsebnike Docker
$config[zx-auto] not found$config[zx-overlay] not found