Programmering

Microsoft legger til en ny Linux: CBL-Mariner

Tenk på Microsoft og Linux, og du vil sannsynligvis tenke på arbeidet med å bygge en optimalisert Linux-kjerne for Windows Subsystem for Linux (WSL). Presset ut gjennom Windows-oppdatering, støtter Microsoft alle WSL2 Linux-distribusjoner, inkludert Ubuntu og SUSE.

Men WSL2s kjerne er ikke Microsofts eneste Linux-tilbud. Vi har sett på noen av de andre her tidligere, inkludert den sikre Linux for Azure Sphere. Andre inkluderer SONiC-nettverksdistribusjon designet for bruk med Open Compute Project-maskinvare og brukt av mange offentlige skyer og store online-tjenester, og vertene for Azure ONE (Open Network Emulator) som brukes til å validere nye nettverksimplementeringer for Azure.

Microsofts Linux Systems Group

Med et stadig voksende antall Microsoft Linux-kjerner og distribusjoner, er det nå en offisiell Linux Systems Group som håndterer mye av selskapets Linux-arbeid. Dette inkluderer en Azure-tunet kjerne som er tilgjengelig som oppdateringer for mange vanlige Linux-distribusjoner, optimaliserer dem for bruk med Microsofts Hyper-V hypervisor, og et sett med verktøy som hjelper til med å levere policybasert håndheving av systemintegritet, gjør distribusjoner sikrere og hjelper med å administrere oppdateringer og oppdateringer på tvers av store eiendommer av Linux-servere og virtuelle maskiner.

Teamet ga nylig ut en ny Linux-distribusjon: CBL-Mariner. Selv om utgivelsen er offentlig, er mye av bruken ikke, siden den er en del av Azure-infrastrukturen, brukt til kantnettjenester og som en del av skyinfrastrukturen. Resultatet er en lavt overhead, tett fokusert distribusjon som handler mindre om hva som er i den, og mye mer om hva som kjører på den.

Vi introduserer CBL-Mariner: Microsofts Linux container vert

Å investere i en lett Linux som CBL-Mariner gir mye mening, med tanke på Microsofts investeringer i containerbaserte teknologier. Skyøkonomi krever at verter bruker så få ressurser som mulig, slik at tjenester som Azure får høy utnyttelse. Samtidig trenger Kubernetes-containere så lite overhead som mulig, slik at så mange noder per pod som mulig, og slik at nye noder kan lanseres så raskt som mulig.

Det samme gjelder kantmaskinvare, spesielt neste generasjon kantnoder beregnet på bruk med 5G-nettverk. Her, som den offentlige skyen, er arbeidsmengder det viktigste, og flytter dem og data nærmere brukerne. Microsoft bruker sin voksende eiendom med edge-maskinvare som en del av Azure Content Delivery Network utenfor de viktigste Azure-datasentrene, og cacher innhold fra Azure Web-apper og fra hostede video- og filservere, med sikte på å redusere ventetiden der det er mulig. Azure CDN er en nøkkelkomponent i sin Jamstack-baserte Azure Static Websites-tjeneste, hosting sider og JavaScript en gang publisert fra GitHub.

Tidligere var Red Hats CoreOS den foretrukne vert for Linux-containere, men den siste avviklingen betyr at den ikke lenger støttes. Alle som bruker det, har måttet finne et alternativ. Microsoft tilbyr Flatcar Linux CoreOS-gaffel for Azure-brukere som en del av et partnerskap med utviklerne Kinvolk, men å ha sin egen distribusjon for sine egne tjenester sikrer at den kan oppdatere og administrere sine verts- og containerforekomster etter sin egen tidsplan. Utvikling offentlig er tilgjengelig for alle som ønsker å lage og bruke sine egne builds eller som ønsker å bidra med nye funksjoner og optimaliseringer, for eksempel å legge til støtte for nye nettverksfunksjoner.

Kjører CBL-Mariner og containere

Utenfor boksen har CBL-Mariner bare de grunnleggende pakkene som trengs for å støtte og kjøre containere, og tar en lignende tilnærming til CoreOS. I hjertet er Linux-containere isolert brukerplass. Å holde delte ressurser på et minimum reduserer sikkerhetseksponeringen til verts-operativsystemet ved å sørge for at applikasjonsbeholdere ikke kan ta avhengighet av det. Hvis du bruker CBL-Mariner i dine egne containere, må du forsikre deg om at du har testet offentlige Docker-bilder før du distribuerer, da de kanskje ikke inneholder de riktige pakkene. Det kan hende du må ha dine egne basisbilder på plass som en del av applikasjons-dockerfilene.

CBL-Mariner bruker kjente Linux-verktøy for å legge til pakker og administrere sikkerhetsoppdateringer, og tilbyr oppdateringer enten som RPM-pakker eller som komplette bilder som kan distribueres etter behov. Ved å bruke RPM kan du legge til dine egne pakker til et base CBL-Mariner-bilde for å støtte tilleggsfunksjoner og tjenester etter behov.

Å komme i gang med CBL-Mariner kan være så enkelt som å skyte opp en Azure-tjeneste. Men hvis du vil ha praktisk erfaring eller ønsker å bidra til prosjektet, er all kildekoden for tiden på GitHub, sammen med instruksjoner for hvordan du bygger dine egne installasjoner. Forutsetninger for å bygge videre på Ubuntu 18.04 inkluderer Go-språket, QEMU (Quick EMUlator) -verktøyene, samt rpm.

Bygg din egen installasjon ved hjelp av GitHub-depotet

Du har flere forskjellige alternativer for å bygge fra kilden. Start med å sjekke kilden fra GitHub, lage en lokal klon av prosjektdatabasen. Ulike grener er tilgjengelige, men for en første versjon bør du velge den nåværende stabile grenen. Herfra kan du bygge Go-verktøyene for prosjektet før du laster ned kildene.

For raske bygg har du to alternativer, som begge bruker ferdigbygde pakker og samler en distribusjon fra dem. Den første, for installasjoner av bare metall, oppretter en ISO-fil klar for installasjon. Den andre, for å bruke CBL-Mariner som containervert, bygger en klar til bruk VHDX-fil med en virtuell maskin for bruk med Hyper-V. Et alternativt alternativ bygger et containerbilde som kan brukes som kilde for Mariner-baserte dockerfiler, og gir deg alt du trenger for å bygge og kjøre kompatible containere med applikasjonene dine.

Hvis du foretrekker å bygge fra kilde, er alternativet tilgjengelig, selv om builds vil være betydelig tregere enn å bruke forhåndskompilerte pakker. Dette vil imidlertid tillate deg å målrette mot alternative CPUer, for eksempel å bygge en versjon som fungerer med den nye generasjonen av ARM-basert kantmaskinvare som ligner på den som brukes for AWSs Graviton-forekomster. Du kan starte hele verktøykjeden for å sikre at du har kontroll over hele byggeprosessen. Hele byggeprosessen kan til og med brukes til å bygge støttede pakker, med kjernefilene oppført i en JSON-konfigurasjonsfil.

Når du er bygget, kan du begynne å konfigurere funksjonene til CBL-Mariner. Ut av boksen inkluderer disse en iptables-basert brannmur, støtte for signerte oppdateringer og en herdet kjerne. Valgfrie funksjoner kan settes opp samtidig, med verktøy for å forbedre prosessisolering og kryptere lokal lagring, viktige funksjoner for en containervert i et miljø med flere bygninger der du trenger å beskytte lokale data.

Resultatet er en effektiv erstatning for CoreOS, og jeg vil gjerne se tilgjengelig for Azure-brukere så vel som for Microsofts egne team. CBL-Mariner har kanskje ikke modenheten til andre containerfokuserte Linuxer, men det har absolutt nok støtte bak seg til å gjøre det til et troverdig verktøy for bruk i hybrid sky- og kantnettverksarkitekturer, der du kjører kode på dine egne kantservere og i Microsofts sky. Hvis Microsoft ikke gjør det til et alternativ, kan du i det minste bygge det selv.

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