Programování

Microsoft přidává nový Linux: CBL-Mariner

Přemýšlejte o Microsoftu a Linuxu a pravděpodobně budete přemýšlet o jeho práci při vytváření optimalizovaného linuxového jádra pro Windows Subsystém pro Linux (WSL). Společnost Microsoft, která je vyřazena prostřednictvím aktualizace systému Windows, podporuje všechny distribuce Linuxu WSL2, včetně Ubuntu a SUSE.

Jádro WSL2 však není pouze nabídkou Linuxu od Microsoftu. V minulosti jsme se podívali na některé další, včetně zabezpečeného systému Linux pro Azure Sphere. Mezi další patří síťová distribuce SONiC navržená pro použití s ​​hardwarem Open Compute Project a používaná mnoha veřejnými cloudy a hlavními online službami a hostitelé pro Azure ONE (Open Network Emulator) sloužící k ověření nových síťových implementací pro Azure.

Skupina Microsoft Systems Linux

Se stále rostoucím počtem jader a distribucí systému Microsoft Linux existuje nyní oficiální skupina Linux Systems Group, která zajišťuje většinu práce s Linuxem společnosti. To zahrnuje jádro vyladěné pro Azure, které je k dispozici jako opravy pro mnoho běžných distribucí Linuxu, jejich optimalizace pro použití s ​​hypervizorem Hyper-V od společnosti Microsoft a sadu nástrojů, které pomáhají zajišťovat vynucování integrity systému podle zásad, zvyšují bezpečnost distribucí a pomáhají spravovat aktualizace a opravy na velkých majetcích serverů Linux a virtuálních strojů.

Tým nedávno vydal novou distribuci Linuxu: CBL-Mariner. Ačkoli je vydání veřejné, většina jeho použití není, protože je součástí infrastruktury Azure, používá se pro jeho okrajové síťové služby a jako součást jeho cloudové infrastruktury. Výsledkem je úzce zaměřená distribuce s nízkou režií, která se netýká toho, co je v ní, a mnohem více toho, co na ní běží.

Představujeme CBL-Mariner: hostitele kontejnerů Linuxu společnosti Microsoft

Investice do odlehčeného systému Linux, jako je CBL-Mariner, má velký smysl vzhledem k investicím společnosti Microsoft do kontejnerových technologií. Ekonomika cloudu vyžaduje, aby hostitelé používali co nejméně prostředků, což umožňuje službám, jako je Azure, získat vysoké využití. Současně kontejnery Kubernetes potřebují co nejmenší režii, což umožňuje co nejvíce uzlů na pod a umožňuje spuštění nových uzlů co nejrychleji.

Totéž platí o hranovém hardwaru, zejména o příští generaci okrajových uzlů určených pro použití v sítích 5G. Zde, stejně jako ve veřejném cloudu, je nejdůležitější pracovní zátěž, která je posouvá a přenáší blíže k uživatelům. Společnost Microsoft využívá své rostoucí vlastnosti hraničního hardwaru jako součást sítě Azure Content Delivery Network mimo svá hlavní datová centra Azure, přičemž ukládá obsah do mezipaměti z webových aplikací Azure a hostovaných video a souborových serverů s cílem snížit latenci tam, kde je to možné. Azure CDN je klíčovou součástí jeho služby Static Websites založené na Jamstacku, hostující stránky a JavaScript po publikování na GitHubu.

V minulosti byl Red Hat CoreOS preferovaným hostitelem kontejnerů s Linuxem, ale jeho nedávná podpora znamená, že již není podporován. Každý, kdo ji používá, musel najít alternativu. Microsoft nabízí Flatcar Linux CoreOS-fork pro uživatele Azure jako součást partnerství s vývojáři Kinvolk, ale vlastní distribuce pro jeho vlastní služby zajišťuje, že může aktualizovat a spravovat instance hostitele a kontejneru podle vlastního plánu. Vývoj na veřejnosti je k dispozici každému, kdo chce vytvářet a používat vlastní sestavení nebo kdo chce přispět novými funkcemi a optimalizacemi, například přidat podporu pro nové síťové funkce.

Provozování CBL-Mariner a kontejnerů

Out of the box, CBL-Mariner has only the basic packages needed to support and run containers, taking a similar approach to CoreOS. V podstatě jsou kontejnery Linux izolovaným uživatelským prostorem. Omezení sdílených prostředků na minimum snižuje bezpečnostní riziko hostitelského operačního systému tím, že zajišťuje, že aplikační kontejnery na něm nebudou moci záviset. Pokud používáte CBL-Mariner ve svých vlastních kontejnerech, ujistěte se, že jste před nasazením otestovali všechny veřejné obrázky Dockeru, protože nemusí obsahovat příslušné balíčky. Možná budete muset mít na místě své vlastní základní obrázky jako součást dockerfiles aplikace.

CBL-Mariner používá známé linuxové nástroje k přidávání balíků a správě aktualizací zabezpečení a nabízí aktualizace buď jako balíčky RPM, nebo jako kompletní obrazy, které lze podle potřeby nasadit. Použití RPM vám umožňuje přidat své vlastní balíčky do základního obrazu CBL-Mariner a podle potřeby podporovat další funkce a služby.

Začínáme s CBL-Mariner může být stejně jednoduché jako spuštění služby Azure. Ale pokud chcete praktické zkušenosti nebo chcete do projektu přispět, veškerý zdrojový kód je aktuálně na GitHubu spolu s pokyny pro vytváření vlastních instalací. Předpoklady pro sestavení na Ubuntu 18.04 zahrnují jazyk Go, nástroje QEMU (Quick EMUlator) a rpm.

Vytvořte si vlastní instalaci pomocí úložiště GitHub

Máte několik různých možností stavby ze zdroje. Začněte tím, že rezervujete zdroj z GitHubu a vytvoříte místní klon úložiště projektu. K dispozici jsou různé větve, ale pro první sestavení byste měli zvolit aktuální stabilní větev. Odtud můžete vytvořit nástroje Go pro projekt před stažením zdrojů.

Pro rychlé sestavení máte dvě možnosti, obě používají předem připravené balíčky a sestavují z nich distribuci. První z nich pro holé instalace vytvoří soubor ISO připravený k instalaci. Druhý, pro použití CBL-Mariner jako hostitele kontejneru, vytváří soubor VHDX připravený k použití s ​​virtuálním strojem pro použití s ​​Hyper-V. Alternativní možnost vytvoří obrázek kontejneru, který lze použít jako zdroj pro vaše dockerfiles založené na Mariner, a poskytne vám vše, co potřebujete k vytvoření a spuštění kompatibilních kontejnerů s vašimi aplikacemi.

Pokud dáváte přednost sestavování ze zdroje, je tato možnost k dispozici, ačkoli sestavení budou podstatně pomalejší než použití předkompilovaných balíčků. To vám však umožní zacílit na alternativní CPU, například vytvořit verzi, která funguje s novou generací hranového hardwaru založeného na ARM, která se podobá tomu, který se používá pro instance AWS Graviton. Můžete zavést celý řetězec nástrojů pro sestavení, abyste měli jistotu, že máte kontrolu nad celým procesem sestavení. Celý proces sestavení lze dokonce použít k vytvoření podporovaných balíčků, přičemž základní soubory jsou uvedeny v konfiguračním souboru JSON.

Po sestavení můžete začít konfigurovat funkce CBL-Mariner. K dispozici jsou firewall založený na iptables, podpora podepsaných aktualizací a tvrzené jádro. Volitelné funkce lze nastavit současně, s nástroji pro zlepšení izolace procesu a šifrování místního úložiště, důležitými funkcemi pro hostitele kontejneru v prostředí multitenant, kde potřebujete chránit místní data.

Výsledkem je efektivní náhrada za CoreOS, kterou bych chtěl zpřístupnit uživatelům Azure i vlastním týmům Microsoftu. CBL-Mariner nemusí mít vyspělost jiných Linuxů zaměřených na kontejnery, ale určitě má za sebou dostatečnou podporu, aby se stal důvěryhodným nástrojem pro použití v hybridních cloudových a okrajových síťových architekturách, kde běžíte kód na svých vlastních okrajových serverech a v cloudu společnosti Microsoft. Pokud Microsoft tuto možnost nezvolí, můžete si ji alespoň sami postavit.

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