Programavimas

„RancherOS“: paprastesnė „Linux“ programa „Docker“ mėgėjams

Kaip ir įvairūs „Linux“ serverio ir darbalaukio paskirstymai, taip ir į konteinerius orientuoti „Linux“ paskirstymai derina ir derina įvairius projektus ir komponentus, kad sukonstruotų pilną konteinerių infrastruktūrą. Šie rajonai paprastai sujungia minimalų OS branduolį, orkestro struktūrą ir konteinerių paslaugų ekosistemą. „RancherOS“ ne tik tinka pelėsiui, bet ir perkelia minimalų branduolį ir konteinerių paradigmą.

„RancherOS“ yra konteinerių infrastruktūros platforma, valdanti „Docker“ tiesiai ant sumažinto pėdsako (20 MB) „Linux“ branduolio. „Rancher“ imamasi minimalistinės OS yra unikali tuo, kad net „init“ procesas yra „Dockerized“ paslaugų konteineris. Taip pat tradicinės sistemos lygio paslaugos, tokios kaip NTP ir DNS, buvo pakeistos konteineriuose pateiktais atitikmenimis.

Minimalios operacinės sistemos turi keletą privalumų gamyboje. Pašalinus nereikalingus paketus ir bibliotekas, galima greičiau paleisti, lengviau valdyti versijas ir mažesnį atakos paviršių, o tai reiškia mažiau saugos pataisų. „RancherOS“ žengia „atnaujinimus“ dar labiau ir platina visas sistemos paslaugas kaip „Docker“ konteinerius. Saugos naujinimas reiškia tiesiog atsisiųsti naują vaizdą ir iš naujo paleisti sudėtinį rodinį - procesas trunka vos kelias sekundes, be paslaugos prastovos.

Kaip OS skirta konteineriams, „RancherOS“ vargu ar bus atpažįstama tiems, kurie ateina iš tradicinio „Unix“ fono. Išsaugotas tik nedidelis branduolio pogrupis - visa kita daroma konteineriuose. Bet jei esate susipažinęs su „Docker“, „RancherOS“ jausitės kaip namuose.

Skirtas „Docker“

Norėdami suprasti „RancherOS“ dizainą, turite prisiminti, kad tradicinės „Unix“ sistemos konfigūruojamos retai, o programos yra išdėstytos ant stabilaus pagrindinio vaizdo. Konteinerių infrastruktūroje OS tam tikra prasme yra vienkartinė ir greičiausiai bus dažnai keičiama. Nors galite sukonfigūruoti ir prižiūrėti konteinerių pagrindinius kompiuterius, pvz., „Ansible“, „SaltStack“, „Puppet“ ar „Chef“, paleisdami mastelį, operacinei sistemai lengviau naudoti tą pačią API, kaip ir konteineriams, ir paleisti naują „ OS.

Taigi „RancherOS“ pašalina viską, išskyrus pagrindinius dalykus, reikalingus „Docker“ paleidimui ir konteinerių valdymo platformų, tokių kaip „Rancher“ ar „Kubernetes“, talpinimo agentams. Iš tikrųjų „RancherOS“ yra toks minimalus, kad palaikomi tik du vartotojai: „root“ ir „rancher“. Norėdami suprasti šį dizainą, geriausia pradėti nuo sistemos architektūros iliustracijos:

Rancher

„RancherOS“ buvo supakuotas tiek, kad net „init“ procesas, PID 1, iš kurio gimsta visi kiti procesai, yra „Docker“ demonas. Nors atrodo, kad smulkmena, tradicinės iniciacijos sistemos, tokios kaip „Sysvinit“ ar „Systemd“, pakeitimas „Dockerized“ inicijavimo procesu yra vienas pagrindinių „RancherOS“ bruožų, nes jis švariu būdu įveikia kai kuriuos „Systemd“ ir „Docker“ architektūros nesuderinamumus. Nors pažangą sprendžiant šiuos nesuderinamumus daro „Systemd“ kūrėjai, „RancherOS“ dizainas čia ir ateityje užtikrina nulio problemų, nors ir šiek tiek kitaip tvarkant reikalus.

„RancherOS“ valdo du „Docker“ demonus: „System Docker“ ir „User Docker“. Visas sistemos lygio paslaugas, tokias kaip konsolę, įrenginių valdymą, NTP ir DHCP, valdo sistemos dokininkas komanda, o konteinerio darbo krūviai valdomi naudojant tradicinius dokininkas komandą. Šios komandos yra identiškos, išskyrus konteinerių tipus, kuriuose jie gali veikti. Taigi, jei norite sužinoti, kokios sistemos lygio paslaugos vykdomos, įveskite sistemos dokininkas ps.

Jei tai padarysite, pastebėsite, kad vardai dešinėje pusėje - „Syslog“, NTP, „Udev“ ir kt. - yra visos „Linux“ sistemos paslaugos. Sistemos paslaugos sustabdymas, paleidimas ir atnaujinimas atliekamas taip pat, kaip ir naudojant bet kurį kitą sudėtinį rodinį, naudojant „Docker“ API.

Taip pat atkreipkite dėmesį, kad sistemos paslaugų konteineris, vadinamas „Docker“, kurį paleido „System Docker“, yra atskiras „Docker“ demonas, skirtas valdyti vartotojo konteinerius. Tai yra svarbus privilegijų atskyrimas. Kadangi visi vartotojo konteineriai veikia „User Docker“ talpykloje, pavyzdžiui, ištrynus visus vartotojo konteinerius, sistemos konteineriai, kuriuose veikia „RancherOS“ paslaugos, nenukris.

Įvesdami galite pamatyti, kokie yra vartotojo talpyklų darbo krūviai, kaip paprastai darytumėte naudodami „Docker“ dokininkas ps. Net apvalkalas yra konteineris (pavadintas konsole), todėl galite pasirinkti, kurį norite paleisti. Šiuo metu galimi apvalkalai yra „BusyBox“ (numatytasis), „Alpine“, „CentOS“, „Debian“, „Fedora“ ir „Ubuntu“.

Kadangi sistemos paslaugos yra konteineriai, paketų tvarkymo nėra. Norėdami atnaujinti paslaugą, tiesiog sustabdykite seną sudėtinį rodinį, ištraukite naują versiją ir paleiskite paslaugą iš naujo, naudodami tą pačią „Docker“ API.

„RancherOS“ diegimas ir konfigūravimas

Pirmas dalykas, kurį turi padaryti tradicinis „Unix“ administratorius, yra nustoti galvoti apie „kelių vartotojų OS“ ir pradėti galvoti apie „infrastruktūros platformą“. „RancherOS“ sukurtas numatyti, automatizuotai, įvairiose aplinkose - įskaitant pliką metalą, virtualią mašiną ir daugybę debesų, įskaitant AWS ir „Google“.

Aš įdiegiau virtualią mašiną naudodamas ISO atvaizdą ir nesusidūriau su pagrindinio diegimo problemomis. Nėra jokių parinkčių ar konfigūracijos ekranų. Paleidžiate OS (kuri jus automatiškai užregistruoja), nustatote disko skaidinį RANCHER_STATE, tada perkraukite ir sukonfigūruokite.

Pažvelgę ​​į konfigūracijos katalogą / etc pamatysite, kad nėra / etc / rc failų ar dar daug ko, o tai, kas yra, nekeičiama naudojant teksto rengyklę. „RancherOS“ turi tris lygius tradicine prasme, kurie atitinka „System Docker“, „User Docker“ ir „Container“. Konfigūraciją atlieka bootcmd, kuris veikia prieš „System Docker“, ir runcmd, kuris veikia sistemoje „Docker“, vykdomas prieš pradedant „User Docker“.

„RancherOS“ konfigūruojamas dviem būdais: rankiniu būdu naudojant ros konfigūracija komandą ir paleidimo metu naudojant „cloud-config“ konfigūracijos failą. Iš pradžių man tai pasirodė šiek tiek nesudėtinga, ypač jei jūs niekada nenaudojote „cloud-config“ (užuomina: pradinei sąrankai naudokite YAML žinantį redaktorių, pvz., „Emacs“ ir „Tramp Mode“). Kai aš sugebėjau SSH į mašiną, tai buvo gana lengva naudoti ros konfigūracija norėdamas gauti norimą konfigūraciją ir išrašyti atitinkamą „cloud-config“ YAML failą, kuris įsigalios kitą kartą perkraunant. Kadangi paleidimas yra greitas, kūrimo ciklas čia taip pat greitas.

Viskas, ką norite sukonfigūruoti, gali būti padaryta naudojant YAML failą arba ros konfigūracija įskaitant branduolio modulių įkėlimą, TLS konfigūraciją ir branduolio derinimo parametrus. Būtų malonu bent iš dalies išsaugoti esamas investicijas į konfigūracijos valdymo įrankius, tokius kaip „SaltStack“ ir „Puppet“, kad būtų lengviau pereiti prie konteinerių platformų. Panašu, kad „SaltStack“ reaktorius būtų naudingas šiam naudojimo atvejui. Kaip ir dabar, dauguma žmonių mokysis visiškai naujo būdo konfigūracijų valdymo būdo. Dauguma konteinerių administratorių naudos „Rancher“ konteinerių valdymo žiniatinklio vartotojo sąsają, todėl greičiausiai ši užduotis tame lygmenyje yra lengvesnė.

„RancherOS“ saugojimas ir tinklų kūrimas

Anksčiau minėjau, kad diegiate „RancherOS“ nurodydami įrenginį, kuriame saugoma nuolatinė būsena. Daugeliu atvejų tai yra vienintelis diskas, kurį naudos „RancherOS“. Kadangi visos paslaugos vykdomos „Docker“ talpyklose, jos nuolatiniam saugojimui naudos „Docker“ tomus, apytiksliai atspindinčios sistemos architektūrą. Sistemos tomai suteikia nuolatinę sistemos talpyklų, vartotojų konsolių paslaugų apimčių ir sistemos tarnybų naudojamų dvejetainių komandų talpyklas. Didelis kiekių ir paslaugų skaičius reiškia, kad kalno komanda nebus labai naudinga: yra visas nesuprantamo išvesties puslapis. Linkiu, kad dokumentuose būtų paaiškinta šiek tiek geriau, nes atkaklumas yra labai svarbi tema, kurią reikia suprasti.

„Rancher“ palaiko tiesiogines „Docker“ tomų momentines nuotraukas ir atsargines kopijas, leidžiančias vartotojams kurti atsargines būsenų talpyklų ir būsenų paslaugų kopijas. Tai nėra įtraukta į „RancherOS“, tačiau yra „Rancher“ konteinerių valdymo sistemos „Convoy“ funkcijos dalis. Naudodami „Convoy“ galite fotografuoti tomus, palaipsniui kurti atsargines nuotraukų kopijas objektų parduotuvėse, tokiose kaip „Amazon S3“, ir atkurti tomus veikiančiuose pagrindiniuose kompiuteriuose.

Palaikoma ZFS failų sistema, tačiau neturėjau galimybės jos išbandyti. Atsižvelgiant į dokumentų būklę ir apribojimą, kad „zpool“ gali būti montuojamas tik ant / mnt, rekomenduočiau kruopščiai išbandyti prieš tai naudojant gamyboje.

„RancherOS“ galite atlikti visą įprastą tinklo konfigūraciją, bet naudodami „YAML“ konfigūracijos failus arba ros komandos. Tinklo parametrai veikia rancher.network.interfaces vardų srityje, kur galite konfigūruoti tokius kaip DHCP, šliuzai, MTU ir kt. Taip pat galima sukonfigūruoti kelis NIC, sujungimus, tiltus ir VLANS. DNS yra rancher.networks.dns raktų srityje. Kol nepriprasite vardų atvaizdavimo, tikėkitės šiek tiek pasinerti.

„RancherOS“ atnaujinimai ir žemesnės versijos

Vargu ar gali būti lengviau atnaujinti vietoje. Jums reikės atnaujinti (arba žemesnės versijos) dvi sistemas: OS ir „Docker“ variklį. Bet kurį iš jų valdyti yra lengva, o naudojant, reikia atspėti tik kelias sekundes ros komandą. Viskas, ką jums reikia padaryti, yra pasirinkti OS versiją, kurią norite paleisti ir paleisti iš naujo. Linkiu, kad visi „Unix“ atnaujinimai ir atnaujinimai vyktų taip sklandžiai. Pavyzdžiui, perkėlimas iš 1.0.1 į 1.0.0 užtruko mažiau nei minutę:

Rancher

Malonu. Jei norite perjungti „Docker“ variklius, tai galite padaryti taip pat lengvai:

„Ros“ variklio jungiklio jungiklis-1.11.2

„RancherOS“ yra maloni maža operacinė sistema. Jos požiūris į sistemos konfigūraciją ir paketų valdymą bus naujas ir kitoks nei tradicinių sistemos administratorių, ir dokumentai ne visada yra tokie, kokie galėtų būti. Bet jei žinote „Docker“, žinote daugumą to, ko reikia norint paleisti „RancherOS“.

Naujos rūšies konteineriai jau subręsta, o konteinerių gamyba yra reali galimybė ankstyviems vartotojams. „RancherOS“ leidžia lengvai sukurti konteinerių prieglobos infrastruktūrą, tačiau reikia naujų įgūdžių.

$config[zx-auto] not found$config[zx-overlay] not found