Programmering

Microsoft tilføjer en ny Linux: CBL-Mariner

Tænk på Microsoft og Linux, og du tænker sandsynligvis på dets arbejde med at opbygge en optimeret Linux-kerne til Windows Subsystem til Linux (WSL). Skubbet ud gennem Windows-opdatering understøtter Microsoft alle WSL2 Linux-distributioner, inklusive Ubuntu og SUSE.

Men WSL2's kerne er ikke Microsofts eneste Linux-tilbud. Vi har set på nogle af de andre her tidligere, herunder den sikre Linux til Azure Sphere. Andre inkluderer SONiC-netværksdistribution designet til brug med Open Compute Project-hardware og bruges af mange offentlige skyer og større onlinetjenester, og værterne for Azure ONE (Open Network Emulator) bruges til at validere nye netværksimplementeringer til Azure.

Microsofts Linux Systems Group

Med et stadigt voksende antal Microsoft Linux-kerner og distributioner er der nu en officiel Linux Systems Group, der håndterer meget af virksomhedens Linux-arbejde. Dette inkluderer en Azure-tunet kerne tilgængelig som programrettelser til mange almindelige Linux-distributioner, optimering af dem til brug sammen med Microsofts Hyper-V hypervisor og et sæt værktøjer til at hjælpe med at levere politikbaseret håndhævelse af systemintegritet, hvilket gør distributioner mere sikre og hjælper med at administrere opdateringer og rettelser på tværs af store ejendomme med Linux-servere og virtuelle maskiner.

Holdet udgav for nylig en ny Linux-distribution: CBL-Mariner. Selvom udgivelsen er offentlig, er meget af dens anvendelse ikke, da den er en del af Azure-infrastrukturen, der bruges til dens kantnetværkstjenester og som en del af dens cloudinfrastruktur. Resultatet er en lavt overhead, tæt fokuseret distribution, der handler mindre om, hvad der er i det, og meget mere om, hvad der kører på det.

Introduktion til CBL-Mariner: Microsofts Linux container vært

Investering i en let Linux som CBL-Mariner giver meget mening, i betragtning af Microsofts investeringer i containerbaserede teknologier. Cloudøkonomi kræver, at værter bruger så få ressourcer som muligt, hvilket giver tjenester som Azure mulighed for at få en høj udnyttelse. Samtidig har Kubernetes-containere brug for så lidt overhead som muligt, hvilket giver så mange noder pr. Pod som muligt og tillader nye noder at blive lanceret så hurtigt som muligt.

Det samme gælder kanthardware, især den næste generation af kantknudepunkter beregnet til brug med 5G-netværk. Her er, ligesom den offentlige sky, arbejdsbelastninger det vigtigste, der flytter dem og data tættere på brugerne. Microsoft bruger sin voksende ejendom af kanthardware som en del af Azure Content Delivery Network uden for sine vigtigste Azure-datacentre og cachelager indhold fra Azure Web-apps og fra hostede video- og filservere med det formål at reducere latenstiden, hvor det er muligt. Azure CDN er en nøglekomponent i sin Jamstack-baserede Azure Static Websites-tjeneste, hosting af sider og JavaScript, når de først er offentliggjort fra GitHub.

Tidligere var Red Hats CoreOS den foretrukne vært for Linux-containere, men dens nylige afskrivning betyder, at den ikke længere understøttes. Enhver, der bruger det, har været nødt til at finde et alternativ. Microsoft tilbyder Flatcar Linux CoreOS-fork til Azure-brugere som en del af et partnerskab med udviklerne Kinvolk, men at have sin egen distribution til sine egne tjenester sikrer, at den kan opdatere og administrere sine værts- og containerforekomster efter sin egen tidsplan. Udvikling offentligt er tilgængelig for alle, der ønsker at lave og bruge deres egne builds, eller som ønsker at bidrage med nye funktioner og optimeringer, for eksempel at tilføje support til nye netværksfunktioner.

Kører CBL-Mariner og containere

Uden for boksen har CBL-Mariner kun de grundlæggende pakker, der er nødvendige for at understøtte og køre containere, idet de tager en lignende tilgang til CoreOS. I bund og grund er Linux-containere isoleret brugerplads. Ved at holde delte ressourcer på et minimum reduceres sikkerhedseksponeringen for værts-OS ved at sikre, at applikationscontainere ikke kan tage afhængigheder af det. Hvis du bruger CBL-Mariner i dine egne containere, skal du sikre dig, at du har testet eventuelle offentlige Docker-billeder, inden du implementerer dem, da de muligvis ikke indeholder de relevante pakker. Det kan være nødvendigt at du har dine egne basisbilleder på plads som en del af dine applikationsdockerfiler.

CBL-Mariner bruger velkendte Linux-værktøjer til at tilføje pakker og administrere sikkerhedsopdateringer og tilbyder opdateringer enten som RPM-pakker eller som komplette billeder, der kan implementeres efter behov. Brug af RPM giver dig mulighed for at tilføje dine egne pakker til et basis CBL-Mariner-billede for at understøtte yderligere funktioner og tjenester efter behov.

Kom godt i gang med CBL-Mariner kan være så simpelt som at starte en Azure-tjeneste. Men hvis du vil have praktisk erfaring eller ønsker at bidrage til projektet, er hele kildekoden i øjeblikket på GitHub sammen med instruktioner til opbygning af dine egne installationer. Forudsætninger for at bygge på Ubuntu 18.04 inkluderer Go-sproget, QEMU (Quick EMUlator) -værktøjerne samt omdrejningstal.

Byg din egen installation ved hjælp af GitHub-arkivet

Du har flere forskellige muligheder for at bygge fra kilden. Start med at tjekke kilden fra GitHub og oprette en lokal klon af projektlageret. Forskellige filialer er tilgængelige, men for en første build skal du vælge den aktuelle stabile filial. Herfra kan du oprette Go-værktøjerne til projektet, før du downloader kilderne.

For hurtige builds har du to muligheder, som begge bruger forudbyggede pakker og samler en distribution fra dem. Den første, til installation af bare metal, opretter en ISO-fil klar til installation. Den anden, til brug af CBL-Mariner som containerhost, bygger en klar til brug VHDX-fil med en virtuel maskine til brug med Hyper-V. En alternativ mulighed bygger et containerbillede, der kan bruges som kilde til dine Mariner-baserede dockerfiler, hvilket giver dig alt hvad du behøver for at opbygge og køre kompatible containere med dine applikationer.

Hvis du foretrækker at bygge fra kilde, er indstillingen tilgængelig, selvom builds vil være betydeligt langsommere end at bruge prækompilerede pakker. Dette giver dig dog mulighed for at målrette mod alternative CPU'er, for eksempel at opbygge en version, der fungerer med den nye generation af ARM-baseret kanthardware svarende til den, der bruges til AWS's Graviton-forekomster. Du kan bootstrap hele buildværktøjskæden for at sikre, at du har kontrol over hele byggeprocessen. Den fulde byggeproces kan endda bruges til at opbygge understøttede pakker med kernefilerne anført i en JSON-konfigurationsfil.

Når du er bygget, kan du begynde at konfigurere CBL-Mariner's funktioner. Uden for boksen inkluderer disse en iptables-baseret firewall, understøttelse af underskrevne opdateringer og en hærdet kerne. Valgfrie funktioner kan oprettes på samme tid med værktøjer til forbedring af procesisolering og kryptering af lokal lagring, vigtige funktioner for en containerhost i et multitenant-miljø, hvor du skal beskytte lokale data.

Resultatet er en effektiv erstatning for CoreOS, og en som jeg gerne vil have gjort tilgængelig for Azure-brugere såvel som Microsofts egne teams. CBL-Mariner har muligvis ikke modenheden i andre containerfokuserede Linux-enheder, men den har helt sikkert nok støtte bag sig til at gøre det til et troværdigt værktøj til brug i hybrid cloud- og edge-netværksarkitekturer, hvor du kører kode på dine egne kantservere og i Microsofts sky. Hvis Microsoft ikke gør det til en mulighed, kan du i det mindste selv bygge det.

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