Programovanie

Microsoft pridáva nový Linux: CBL-Mariner

Myslite na Microsoft a Linux a pravdepodobne budete myslieť na jeho prácu pri vytváraní optimalizovaného linuxového jadra pre Windows Subsystem for Linux (WSL). Spoločnosť Microsoft, ktorá je vytlačená cez aktualizáciu Windows, podporuje všetky distribúcie Linuxu WSL2, vrátane Ubuntu a SUSE.

Jadro WSL2 však nie je iba linuxovou ponukou spoločnosti Microsoft. V minulosti sme sa tu pozreli na niektoré ďalšie, vrátane zabezpečeného systému Linux pre Azure Sphere. Medzi ďalšie patrí sieťová distribúcia SONiC navrhnutá na použitie s hardvérom Open Compute Project a používaná mnohými verejnými cloudmi a hlavnými online službami a hostitelia pre Azure ONE (Open Network Emulator), ktorí sa používajú na overenie nových sieťových implementácií pre Azure.

Microsoft’s Linux Systems Group

S neustále rastúcim počtom jadier a distribúcií systému Microsoft Linux existuje teraz oficiálna skupina systémov Linux, ktorá sa zaoberá väčšinou práce spoločnosti Linux na systéme Linux. Patrí sem jadro vyladené v Azure, ktoré je dostupné ako opravy mnohých bežných distribúcií systému Linux, ich optimalizácia na použitie s hypervízorom Hyper-V od spoločnosti Microsoft a sada nástrojov, ktoré pomáhajú pri presadzovaní integrity systému založenom na zásadách, zvyšujú bezpečnosť distribúcií a pomáhajú pri správe aktualizácie a opravy na rozsiahlych serveroch Linux a virtuálnych strojoch.

Tím nedávno vydal novú distribúciu Linuxu: CBL-Mariner. Aj keď je vydanie verejné, väčšina jeho použitia nie je, pretože je súčasťou infraštruktúry Azure, ktorá sa používa na okrajové sieťové služby a ako súčasť jeho cloudovej infraštruktúry. Výsledkom je úzko zameraná distribúcia s nízkymi režijnými nákladmi, ktorá sa netýka toho, čo je v nej, a oveľa viac toho, čo na nej beží.

Predstavujeme CBL-Mariner: hostiteľ kontajnerov so systémom Linux od spoločnosti Microsoft

Investícia do ľahkého systému Linux, akým je napríklad CBL-Mariner, má veľký zmysel vzhľadom na investície spoločnosti Microsoft do kontajnerových technológií. Ekonomika cloudu vyžaduje, aby hostitelia využívali čo najmenej zdrojov, čo umožňuje vysokému využitiu služieb, ako je napríklad Azure. Súčasne kontajnery Kubernetes potrebujú čo najmenšiu réžiu, ktorá umožňuje čo najviac uzlov na pod a umožňuje spustenie nových uzlov čo najrýchlejšie.

To isté platí pre okrajový hardvér, najmä pre budúcu generáciu okrajových uzlov určených na použitie v sieťach 5G. Tu, podobne ako verejný cloud, je najdôležitejšie pracovné zaťaženie, ktoré ich posúva a dáta posúvajú bližšie k používateľom. Spoločnosť Microsoft využíva svoju rastúcu ponuku špičkového hardvéru ako súčasť siete Azure Content Delivery Network mimo svojich hlavných dátových centier Azure na ukladanie obsahu z webových aplikácií Azure a hostovaných video a súborových serverov do medzipamäte, aby tam, kde je to možné, znížila latenciu. Azure CDN je kľúčovým komponentom jeho služby Azure Static Websites založenej na Jamstack, ktorá po zverejnení na GitHub hosťuje stránky a JavaScript.

V minulosti bol Red Hat CoreOS preferovaným hostiteľom kontajnerov s Linuxom, ale jeho nedávne ukončenie podpory znamená, že už nie je podporovaný. Každý, kto ju používa, musel nájsť alternatívu. Spoločnosť Microsoft ponúka vidličku Flatcar Linux CoreOS pre používateľov Azure v rámci partnerstva s vývojármi Kinvolkom, ale vlastná distribúcia vlastných služieb zaisťuje, že môže aktualizovať a spravovať inštancie hostiteľa a kontajnera podľa vlastného plánu. Verejný vývoj je k dispozícii všetkým, ktorí chcú vytvárať a používať svoje vlastné zostavy alebo chcú prispieť novými funkciami a optimalizáciami, napríklad pridať podporu pre nové sieťové funkcie.

Prevádzka CBL-Mariner a kontajnerov

Po vybalení má CBL-Mariner iba základné balíčky potrebné na podporu a spustenie kontajnerov, pričom využíva podobný prístup ako CoreOS. V jadre sú kontajnery Linux izolovaným užívateľským priestorom. Udržiavanie zdieľaných zdrojov na minimálnej hodnote znižuje vystavenie bezpečnosti hostiteľského OS zabezpečením, že aplikačné kontajnery na ňom nemôžu závisieť. Ak používate CBL-Mariner vo svojich vlastných kontajneroch, uistite sa, že ste pred nasadením otestovali všetky verejné obrázky Dockeru, pretože nemusia obsahovať príslušné balíčky. Možno budete musieť mať pripravené vlastné základné obrázky ako súčasť súborov ukotvenia aplikácie.

Spoločnosť CBL-Mariner používa na pridávanie balíkov a správu bezpečnostných aktualizácií známe nástroje systému Linux. Aktualizácie ponúka buď ako balíčky RPM, alebo ako úplné obrázky, ktoré je možné podľa potreby nasadiť. Používanie RPM vám umožňuje pridať svoje vlastné balíčky k základnému obrázku CBL-Mariner, aby ste podľa potreby podporili ďalšie funkcie a služby.

Začíname s CBL-Mariner môže byť také jednoduché ako spustenie služby Azure. Ak však chcete získať praktické skúsenosti alebo chcete prispieť do projektu, všetok zdrojový kód je momentálne na GitHub spolu s pokynmi na vytvorenie vlastných inštalácií. Medzi predpoklady pre zostavenie systému Ubuntu 18.04 patria jazyk Go, obslužné programy QEMU (Quick EMUlator) a rpm.

Vytvorte si vlastnú inštaláciu pomocou úložiska GitHub

Máte niekoľko rôznych možností budovania zo zdroja. Začnite tým, že skontrolujete zdroj z GitHubu a vytvoríte lokálny klon úložiska projektu. K dispozícii sú rôzne pobočky, ale pri prvom zostavení by ste si mali zvoliť súčasnú stabilnú pobočku. Odtiaľ môžete vytvoriť nástroje Go pre projekt pred stiahnutím zdrojov.

Pre rýchle zostavenie máte dve možnosti, pričom obe používajú vopred pripravené balíčky a zostavujú z nich distribúciu. Prvý z nich, pre inštalácie bez použitia kovu, vytvorí súbor ISO pripravený na inštaláciu. Druhá, na použitie CBL-Mariner ako hostiteľa kontajnera, vytvára súbor VHDX pripravený na použitie s virtuálnym strojom na použitie s Hyper-V. Alternatívna možnosť vytvorí obraz kontajnera, ktorý sa dá použiť ako zdroj pre vaše dockerfiles založené na Marinere, a poskytne vám všetko, čo potrebujete na zostavenie a spustenie kompatibilných kontajnerov s vašimi aplikáciami.

Ak dávate prednosť zostaveniu zo zdroja, táto možnosť je k dispozícii, hoci zostavenia budú podstatne pomalšie ako pri použití predkompilovaných balíkov. To vám však umožní zacieliť na alternatívne CPU, napríklad vytvoriť verziu, ktorá pracuje s novou generáciou okrajového hardvéru založeného na ARM, ktorá sa podobá tomu, ktorý sa používa pre inštancie AWS Graviton. Môžete bootstrapovať celý reťazec nástrojov na zostavenie, aby ste mali kontrolu nad celým procesom zostavovania. Celý proces zostavenia je možné dokonca použiť na vytvorenie podporovaných balíkov, pričom základné súbory sú uvedené v konfiguračnom súbore JSON.

Po zostavení môžete začať konfigurovať funkcie CBL-Mariner. K dispozícii sú napríklad firewall založený na iptables, podpora podpísaných aktualizácií a tvrdé jadro. Voliteľné funkcie je možné nastaviť súčasne s nástrojmi na zlepšenie izolácie procesov a šifrovaním miestneho úložiska, čo sú dôležité funkcie pre hostiteľa kontajnera v prostredí viacerých klientov, kde potrebujete chrániť miestne údaje.

Výsledkom je účinná náhrada za CoreOS a bol by som rád, keby boli sprístupnené používateľom Azure aj vlastným tímom spoločnosti Microsoft. CBL-Mariner nemusí mať zrelosť iných Linuxov zameraných na kontajnery, ale určite má za sebou dostatočnú podporu, aby sa stal dôveryhodným nástrojom pre použitie v hybridných cloudových a okrajových sieťových architektúrach, kde bežíte kód na svojich vlastných okrajových serveroch a v cloude spoločnosti Microsoft. Ak spoločnosť Microsoft neurčí túto možnosť, môžete si ju vytvoriť sami.

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