Programavimas

Apžvalga: geriausi „Docker“ ir konteinerių „Linux“ skirtukai

Per pastaruosius šešis mėnesius peržiūrėjau penkis minimalius „Linux“ paskirstymus, kurie yra optimizuoti konteinerių paleidimui: „Alpine Linux“, „CoreOS Container Linux“, „RancherOS“, „Red Hat Atomic Host“ ir „VMware Photon OS“. Paprastai žinomi kaip „konteinerių operacinės sistemos“, šie panaikinti, specialiai sukurti „Linux“ paskirstymai nėra vienintelis būdas naudoti konteinerius gamyboje, tačiau jie suteikia bazę, kuri nešvaisto išteklius niekam, išskyrus konteinerių palaikymą.

Pramonės būklė su konteinerių diegimo sistemomis labai panaši į ankstyvąsias „Linux“ platinimo dienas. Turite vieną pagrindinį elementą, šiuo atveju „Docker“ konteinerį, kurį supa daugybė konkuruojančių ekosistemos komponentų. Kaip ir tradiciniai „Linux“ distributoriai sujungė skirtingus paketų tvarkytuvus, darbalaukio aplinką, sistemos komunalines paslaugas, paslaugas ir programas, dauguma konteinerių paskirstymų sujungia ir suderina įvairius komponentus, kad sukurtų, jų nuomone, optimalų sprendimą. Paimkime, pavyzdžiui, paskirstytą konfigūraciją ir paslaugų atradimą. Tam yra keli sprendimai, pvz., Etcd, Consul ir ZooKeeper.

Kiekvienas paskirstymas skirtingai prižiūri, ką įtraukti į kaminą. Vienu kraštutiniu atveju yra paskirstymų, skirtų palaikyti tik aukštesnius kamino lygius, pavyzdžiui, „CoreOS Container Linux“ ir „Red Hat Project Atomic“. Tiek daug funkcionalumo įdėta į nuosavybės teise valdomą sluoksnį, kad yra mažai vilties naudoti OS bet kam kitam. Kiti distros, tokie kaip „RancherOS“ ir „VMware Photon OS“, suteikia didesnį lankstumą, palaiko kelis ekosistemos komponentus ir orkestravimo sistemas. Tai suteikia administratoriams gerą būdą eksperimentuoti ir galbūt išvengti tiekėjo užrakinimo.

„Alpine Linux“

„Alpine Linux“, pagrindinė daugelio oficialių „Docker“ vaizdų operacinė sistema, yra puikus pasirinkimas šiai užduočiai atlikti. Vos penkių megabaitų dydžio „Alpine Linux“ yra priešingame spektro gale nei prieš kelerius metus buvę riebūs „Linux“ paskirstymai, kurie konkuravo su „Solaris“ ir ketino veikti didžiulėse aparatinės įrangos sistemose. Ši nauja „Linux“ veislė skirta veikti su įterptąja aparatine įranga ir sunaudoja minimalius išteklius, todėl tai puikus pasirinkimas konteineriams.

„Alpine Linux“ kaip įterptųjų sistemų OS palikimas buvo akivaizdus mano apžvalgoje. Daugelis konfigūravimo parinkčių pagal numatytuosius nustatymus yra įterptosios sistemos, o daugelyje sričių dokumentacija buvo menka arba jos nebuvo. Akivaizdu, kad „Alpine Linux“ yra sukurta ir pirmiausia naudojama įsilaužėlių sistemai, todėl „Alpine Linux“ reikalaus, kad įmonės sukeltų keletą kliūčių kuriant savo programas.

„Alpine Linux“ produkcijos diegimas turės keletą pranašumų, įskaitant greitą paleidimą, minimalistinį pėdsaką ir saugumą pagal nutylėjimą, kurio nėra kitur. Viskas, pradedant sistemos dvejetainiais failais ir baigiant C bibliotekomis, yra skirta mažam, greitam ir saugiam diegimui. Čia nėra pūtimo.

„Alpine Linux“ administravimas skiriasi nuo tradicinių „Linux“ sistemų, ir mokytis reikės šiek tiek laiko. Diegimas ir paketų valdymas yra unikalūs net tarp konteinerių operacinių sistemų, nors ir gerai apgalvoti. Jei jūsų kūrinių parduotuvėje yra didesnių nei vidutinių kūrėjų, norinčių investuoti, „Alpine Linux“ ilgą laiką suteiks tvirtą, stabilią ir saugią programų bazę.

„CoreOS Container Linux“

„CoreOS“ konteinerių kaminas remiasi „Etcd“ paskirstytam saugojimui ir paslaugų paieškai, „Flannel“ tinklui ir „Kubernetes“ konteinerių orkestravimui, be „Docker“ palaiko savo konteinerio formato skonį „rkt“ („Rocket“). „Rocket“ buvo bandymas konkuruojančio konteinerio formatu pašalinti trūkumus, susijusius su „Docker“ formatu maždaug 2015 m., Tačiau, pašalinus tuos trūkumus, „Rocket“ nematė didelio įsisavinimo.

Susijęs vaizdo įrašas: kas yra „Kubernetes“?

Šiame 90 sekundžių trukmės vaizdo įraše sužinokite apie „Kubernetes“ - atvirojo kodo sistemą, skirtą automatizuoti konteinerių programas, iš vieno išradėjų - Joe Beda, „Heptio“ įkūrėjo ir CTO.

„CoreOS“, kaip ir „Project Atomic“, nebijo radikaliai skirtis nuo tradicinio „Linux“. Kaip ir „Red Hat“ konteinerių OS, „CoreOS Container Linux“ sukuria dažniausiai nekintamą failų sistemą, tačiau tai daro naudodama disko skaidymo sistemą, įkvėptą „Google“ „Chromium“ OS. Tai yra išsaugoti seną failų sistemą skaidinyje, o tai reiškia, kad grąžinimas visada yra saugus ir greitas.

Nors dokumentacija yra gana gera ir išsami, man pasirodė, kad diegimas yra šiek tiek sudėtingas, o konfigūracijos failui gauti reikia dviejų žingsnių proceso. Įdiegus, „CoreOS“ siūlo nuolatinius „be prastovų“ atnaujinimus - tai galimybė, kurią suteikia unikalus disko skaidinio išdėstymas. „CoreOS“ čia atliko daug darbo, ir bendrovė siūlo įvairias priežiūros galimybes, kurios tiks daugumai bet kokių organizacijų, įskaitant galimybę atsisakyti.

„CoreOS“, panašiai kaip „Project Atomic“, yra sprendimas „viskas arba nieko“. Išskirti gabalus ir naudoti pagrindinę OS, kad sukurtumėte savo konteinerių infrastruktūrą, iš tikrųjų nėra galimybės, nes visi architektūros projektavimo sprendimai buvo įtraukti į platformą. Jei esate pasirengęs priimti tuos sprendimus ir sumokėti už „CoreOS“ komercinį „Kubernetes“ platinimą „Tectonic“, be abejo, galite atlikti rimtą sunkų kėlimą.

„Rancher Labs“

„Rancher Labs“ „RancherOS“ yra „Linux“ operacinė sistema, kurią sudaro tik konteineriai. Net pradinis procesas (PID 1) yra „Docker“ talpykla. Tai reiškia, kad nereikia paketų valdymo sistemos. OS naujinimai (ir ankstesni) yra valdomi naudojant „Docker“, kaip ir bet kurį kitą sudėtinį rodinį.

Nors šis požiūris yra toks pat radikalus, kaip ir architektūriniai sprendimai, priimti kai kuriuose kituose platinimuose, tokiuose kaip „Project Atomic“ ir „CoreOS“, rezultatas yra stebinantis paprastumas. Nors iš pradžių mokytis visiškai naujo sistemos administravimo atrodo bauginanti, bet kokiu atveju turite valdyti konteinerius, kad žinotumėte „Docker“, kodėl gi nenaudojant tos pačios sistemos abiem?

Panašu, kad „RancherOS“ greitai bręsta. Peržiūrėdamas radau, kad šiek tiek trūksta dokumentų, tačiau bet kuris kūrėjas ar administratorius, susipažinęs su „Docker“ konteineriais, jau žinos didžiąją sistemos dalį. „RancherOS“ turi nedidelį pėdsaką (20 MB) ir efektyviai naudoja išteklius. Nors linijos tarp „Rancher“ konteinerių valdymo sistemos ir „Rancher“ OS yra šiek tiek neryškios, konteinerių valdymo sistema yra nemokama ir atviro kodo, todėl nėra jokios priežasties bandyti kurti savo. Organizacijos, kurioms reikalinga prieiga prie šaltinio kodo, neturėtų ieškoti daugiau.

„Rancher“ platforma palaiko beveik visą konteinerių valdymo įrankių ekosistemą, įskaitant „Docker Swarm“, „Kubernetes“ ir „Mesos“, ir ji sparčiai tobulėja. Nors radikaliai skiriasi nuo tradicinio UNIX, panašu, kad „RancherOS“ laikėsi pagrindinės UNIX filosofijos nei kiti konteinerių OS paskirstymai: paprasti įrankiai veikia elegantiškai.

„Red Hat“ projektas „Atomic“

„Red Hat“ projektas „Atomic“ yra tvirtai Kubernetes tarnybinio orkestro stovykloje. Paprastai tokio tipo diegimas yra orientuotas į didelio masto, labai prieinamus scenarijus. Neigiama yra tai, kad iš esmės turite „daryti taip, kaip jums liepta“ ir pagal susitarimą sukurti programą.

Dėžutėje rasite „Flannel“ tinklui, „Etcd“ paskirstytam raktų vertės saugojimui ir „OSTree“ pagrindinio kompiuterio valdymui. „OSTree“ yra palyginti naujas būdas masiškai įdiegti OS patikimai ir paskirstytai. „Atomic“ sujungia „OSTree“ su nauju RPM paketų tvarkytuvu, kad sukurtų „RPM-OSTree“, kuris pateikia daugiausia nekintamą failų sistemą.

Manau, kad „Project Atomic“ yra iššūkis. Tai labai ambicinga ir greitai judanti, turinti daug judančių dalių. „RHEL“, „CentOS“, „Fedora“, „SELinux“, „Systemd“, pasirinktinis „Docker“ komandų rinkinys, skirtas valdyti pagrindinį pagrindinį kompiuterį ... jie visi yra mišinyje, o dokumentacija yra nesutvarkyta ir paini. Be to, savo mažame klasteryje, kuriame nebuvo virėjo, druskos ar lėlės, turėjau rankiniu būdu sukonfigūruoti kiekvieną mazgą.

Esmė ta, kad „Project Atomic“ dar reikia šiek tiek laiko kepti. Jei vizija bus įgyvendinta, tai gali tapti ateities standartu - nors ne duomenų centrams, turintiems šimtus mazgų, o tūkstančiams ar dešimtims tūkstančių. Šiuo požiūriu vizija atrodo artimesnė Mesos vizijai nei tipinė konteinerių išdėstymo sistema. Jei jūsų įmonė gyvena ir kvėpuoja „Red Hat“ ekosistema ir planuoja joje likti, tada „Project Atomic“ tikriausiai verta pradėti.

„VMware Photon OS“

„VMware“ „Photon OS“ yra minimalus „Linux“ talpyklų kompiuteris, sukurtas tam, kad būtų mažas pėdsakas, ir pritaikytas „VMware“ hipervizoriams. „Photon OS“ veikia tik virtualioje aplinkoje; neįmanoma įdiegti fizinėje aparatinėje įrangoje. „Photon OS“ pritaikyta palengvinti konteinerių valdymą, bet ne taip radikaliai kaip „Atomic“ ar „CoreOS“. „Photon OS“ yra labiau evoliucinis žingsnis.

Remiantis mano bandymais, „Photo OS“ išpildo savo pažadus virtualioje „VMware“ aplinkoje. („Photon OS“ taip pat gali veikti su kitais hipervizoriais, taip pat su „Google“ ir „Amazon“ debesimis.) Kadangi „Photon OS“ gali daryti prielaidas apie aparatinę įrangą (virtualią), ekosistema labai panaši į standartinę „Linux“, todėl mokymosi kreivė tampa ne tokia kieta. Tinklas ir saugojimas yra suderinami su „Systemd“, ir yra daugybė dokumentų, aprašytų konteinerių tinklui. „Photon OS“ dokumentacija gali būti geriausia iš peržiūrėtų produktų.

„VMware“ pirmauja gamindama konteinerius tradicinėms aplinkoms, ir tai yra prasminga, kai pagalvojate. Kaip dažnai jūsų buvo paprašyta apibūdinti skirtumą tarp sudėtinio rodinio ir VM? Su „Photon OS“ greitai nebus jokio skirtumo: konteineriai bus tik lengvas VM, dislokuotas ir valdomas tomis pačiomis priemonėmis. „Photon OS“ palaiko praktiškai kiekvieną svarbiausią konteinerių ekosistemos dalį: „Docker“ ir „Rocket“ konteinerius, „Docker Swarm“, „Kubernetes“, „Mesos“, „Google Cloud Engine“, „Amazon EC2“ ir kt.

Iš visų mano peržiūrėtų platinimų „VMware Photon OS“ atrodo ir pats regimiausias, ir šiuo metu pats išsamiausias bei tinkamiausias naudoti. Jei esate „VMware“ parduotuvė, tyrinėjanti konteinerius, negalvočiau apie ką nors kita apsvarstyti. Jei nesate „VMware“ parduotuvė, „Photon OS“ vis tiek verta gerai pasidomėti.

Konteinerių operacinių sistemų palyginimas

„Alpine Linux“ yra visų „Docker“ vaizdų pagrindas. Puikiai tinka įterptoms programoms, „Alpine Linux“ neturėtų būti laikoma konteinerių paleidimo būdu. Tam tikra prasme „Alpine Linux“ yra konteinerį. Kūrėjai, susipažinę su „Alpine Linux“ programų kūrimu, parašys geresnes konteinerių programas.

„CoreOS“, viena iš ankstyvųjų talpyklų operacinių sistemų, priima „Google“ technologijas. Tai siūlo patikimą, nors ir apgalvotą, konteinerių infrastruktūros valdymo būdą. Nors „CoreOS“ suteikia daugeliui komponentų prieinamus kaip atvirojo kodo, sudėtingumas mokantis tokios didelės rietuvės reiškia, kad vartotojai turės įsigyti nuosavybės teise priklausančią „Techtonic“ orkestravimo sistemą gamybos diegimui. Jei pinigai nėra objektas ir jums reikia įdiegti „Google“ dydžio programas, „CoreOS“ yra logiškas pasirinkimas.

„RancherOS“ yra gryni konteineriai. Jei ketinate kurti savo konteinerių infrastruktūrą arba norite minimalaus konteinerių tvarkymo kamino, „RancherOS“ yra vieta, kur pradėti. Turėdami atvirojo kodo orkestravimo ir planavimo įrankius, tokius kaip „Docker Swarm“, „Kubernetes“ ir „Mesos“, galite laisvai naudotis, „Rancher“ kaminas patiks į atvirojo kodo įmones, kurios yra „pasidaryk pats“.

„Red Hat“ projektas „Atomic“ yra skėtinis projektas, kuris perkuria tai, kaip įmonės diegia infrastruktūrą. Šis ambicingas projektas gali pakeisti bendrovių požiūrį į programų diegimą, tačiau kelias yra ilgas. Projektas „Atomic“ geriausiai tinka ankstyviems vartotojams, turintiems didelių investicijų į „Red Hat“ technologijas.

„VMware“ „Photon OS“ į konteinerius atneša to pardavėjo virtualių mašinų valdymo technologijas ir patirtį. „Photon OS“ yra įdiegta kaip virtuali mašina ir valdoma naudojant tradicinius VM įrankius. „VMware“, matydama tradicinių VM užrašą ant sienos, nuoširdžiai perėmė konteinerių technologiją ir sparčiai žengia į priekį. Jei dabar esate „VMware“ parduotuvė, jums bus sunku rasti geresnę konteinerių platformą nei „Photon OS“.

Perskaitykite „Linux“ konteinerio apžvalgas:

  • Apžvalga: „Alpine Linux“ sukurta „Docker“
  • „CoreOS“ apžvalga: „Linux“ konteineriams ir „Kubernetes“
  • „RancherOS“: paprastesnė „Linux“ programa „Docker“ mėgėjams
  • Apžvalga: „Red Hat“ daro „Docker“ sunkų kelią
  • Apžvalga: „VMware“ „Photon OS“ šviečia „Docker“ talpykloms