Programiranje

Microsoft je dodal nov Linux: CBL-Mariner

Pomislite na Microsoft in Linux in verjetno boste razmišljali o njegovem delu pri izdelavi optimiziranega jedra Linuxa za podsistem Windows za Linux (WSL). Iztisnjen s posodobitvijo sistema Windows, Microsoft podpira vse distribucije WSL2 Linux, vključno z Ubuntu in SUSE.

Toda jedro WSL2 ni edina Microsoftova ponudba Linuxa. V preteklosti smo si ogledali nekatere druge, vključno z varnim Linuxom za Azure Sphere. Drugi vključujejo mrežno distribucijo SONiC, zasnovano za uporabo s strojno opremo Open Compute Project, ki jo uporabljajo številni javni oblaki in večje spletne storitve, ter gostitelji za Azure ONE (Open Network Emulator), ki se uporabljajo za preverjanje novih mrežnih izvedb za Azure.

Microsoftova skupina Linux Systems

Z vedno večjim številom jeder in distribucij Microsoftovega Linuxa je zdaj uradna Linux Systems Group, ki skrbi za večino dela podjetja Linux. Sem spada jedro, nastavljeno na Azure, ki je na voljo kot popravek za številne običajne distribucije Linuxa, ki ga optimizira za uporabo z Microsoftovim hipervizorjem Hyper-V in nabor orodij za zagotavljanje uveljavljanja celovitosti sistema na podlagi politik, s čimer je distribucija varnejša in pomaga pri upravljanju posodobitve in popravke v velikih prostorih Linux strežnikov in navideznih strojev.

Ekipa je pred kratkim izdala novo distribucijo Linuxa: CBL-Mariner. Čeprav je izdaja javna, večina njene uporabe ni, saj je del infrastrukture Azure, ki se uporablja za njene robne omrežne storitve in kot del infrastrukture v oblaku. Rezultat je malo usmerjena, tesno usmerjena distribucija, ki manj o tem, kaj je v njej, in veliko več o tem, kaj teče na njej.

Predstavljamo CBL-Mariner: Microsoftov gostitelj vsebnikov Linux

Naložba v lahek Linux, kot je CBL-Mariner, je ob upoštevanju naložb Microsofta v tehnologije, ki temeljijo na zabojnikih, zelo smiselna. Ekonomika v oblaku od gostiteljev zahteva, da uporabljajo čim manj virov, kar omogoča storitve, kot je Azure, visoko izkoriščeno. Hkrati zabojniki Kubernetes potrebujejo čim manj režijskih stroškov, ki omogočajo čim več vozlišč na strok in omogočajo čim hitrejši zagon novih vozlišč.

Enako velja za robno strojno opremo, zlasti za naslednjo generacijo robnih vozlišč, namenjenih za uporabo v omrežjih 5G. Tako kot javni oblak so tudi najpomembnejše delovne obremenitve, ki jih prenašajo in podatke približujejo uporabnikom. Microsoft svojo naraščajočo zasedenost strojne opreme uporablja kot del omrežja za dostavo vsebine Azure zunaj svojih glavnih podatkovnih centrov Azure, predpomni vsebino iz spletnih aplikacij Azure ter gostujočih video in datotečnih strežnikov, da bi po možnosti zmanjšal zakasnitve. Azure CDN je ključni sestavni del storitve statičnih spletnih mest Azure Static, ki gosti Jamstack, gosti strani in JavaScript, ko je bil objavljen iz GitHub.

V preteklosti je bil CoreOS RedOS Hat najprimernejši gostitelj zabojnikov Linuxa, vendar je zaradi njegove nedavne ukinitve več nepodprt. Kdor ga uporablja, je moral najti drugo možnost. Microsoft ponuja Flatcar Linux CoreOS-fork za uporabnike Azure kot del partnerstva z razvijalci Kinvolk, vendar lastna distribucija za lastne storitve zagotavlja, da lahko posodablja in upravlja primerke gostitelja in vsebnika po svojem urniku. Javni razvoj je na voljo vsem, ki želijo izdelati in uporabiti lastne gradnje ali želijo prispevati nove funkcije in optimizacije, na primer dodati podporo za nove mrežne funkcije.

Zagon CBL-Marinerja in kontejnerjev

Na splošno ima CBL-Mariner samo osnovne pakete, potrebne za podporo in zagon kontejnerjev, podobno kot CoreOS. V osnovi so vsebniki Linuxa izoliran uporabniški prostor. Zmanjšanje skupnih virov na minimum zmanjša izpostavljenost varnosti gostiteljskega operacijskega sistema tako, da vsebniki aplikacij ne morejo biti odvisni od njega. Če CBL-Mariner uporabljate v svojih vsebnikih, preverite, ali ste pred uvedbo preizkusili vse javne slike Dockerja, ker morda ne vsebujejo ustreznih paketov. Morda boste morali imeti nameščene lastne osnovne slike kot del datotek o programski opremi.

CBL-Mariner uporablja znana orodja Linuxa za dodajanje paketov in upravljanje varnostnih posodobitev, tako da ponuja posodobitve v obliki paketov RPM ali kot popolne slike, ki jih je mogoče po potrebi namestiti. Uporaba RPM omogoča dodajanje lastnih paketov osnovni sliki CBL-Mariner za podporo dodatnih funkcij in storitev po potrebi.

Začetek uporabe CBL-Marinerja je lahko tako preprost kot zagon storitve Azure. Če pa želite praktične izkušnje ali želite prispevati k projektu, je vsa izvorna koda trenutno na GitHubu, skupaj z navodili za izdelavo lastnih namestitev. Predpogoji za gradnjo Ubuntuja 18.04 vključujejo jezik Go, pripomočke QEMU (Quick EMUlator) in rpm.

Zgradite svojo namestitev s pomočjo skladišča GitHub

Na voljo imate več različnih možnosti za gradnjo iz vira. Začnite tako, da preverite vir iz GitHub in naredite lokalni klon repozitorija projekta. Na voljo so različne veje, vendar morate za prvo gradnjo izbrati trenutno stabilno vejo. Od tu lahko pred prenosom virov zgradite orodja Go za projekt.

Za hitre gradnje imate na voljo dve možnosti, ki uporabljata že vgrajene pakete in iz njih sestavita distribucijo. Prva, za namestitev brez kovine, ustvari datoteko ISO, pripravljeno za namestitev. Drugi za uporabo CBL-Marinerja kot gostitelja vsebnika gradi datoteko VHDX, ki je pripravljena za uporabo, z navideznim računalnikom za uporabo s Hyper-V. Druga možnost gradi sliko vsebnika, ki jo lahko uporabite kot vir za datoteke dockerjev, ki temeljijo na Marinerju, in vam zagotovi vse, kar potrebujete za izdelavo in zagon združljivih vsebnikov z vašimi aplikacijami.

Če želite graditi iz vira, je možnost na voljo, čeprav bodo gradnje precej počasnejše kot pri uporabi vnaprej prevedenih paketov. Vendar vam bo to omogočilo ciljanje na alternativne CPU-je, na primer izdelavo različice, ki deluje z novo generacijo robne strojne opreme, ki temelji na ARM, podobno tisti, ki se uporablja za primerke AWS-jeve Graviton. Lahko zaženete celotno orodno verigo gradnje, da zagotovite nadzor nad celotnim postopkom gradnje. Celoten postopek gradnje je mogoče uporabiti celo za izdelavo podprtih paketov, pri čemer so jedrne datoteke navedene v konfiguracijski datoteki JSON.

Ko ste zgrajeni, lahko začnete konfigurirati funkcije CBL-Marinerja. Vključujejo požarni zid na osnovi iptables, podporo za podpisane posodobitve in utrjeno jedro. Neobvezne funkcije lahko hkrati nastavite z orodji za izboljšanje izolacije procesa in šifriranje lokalnega pomnilnika, pomembne funkcije za gostitelja vsebnika v večnamenskem okolju, kjer morate zaščititi lokalne podatke.

Rezultat je učinkovita zamenjava za CoreOS, ki bi jo rad dal na voljo uporabnikom Azure in Microsoftovim skupinam. CBL-Mariner morda nima zrelosti drugih Linuxov, ki se osredotočajo na vsebnike, vendar ima zagotovo dovolj podpore, da postane verodostojno orodje za uporabo v hibridnih arhitekturah oblakov in robnih omrežij, kjer zaženete kodo na svojih robnih strežnikih in v Microsoftovem oblaku. Če Microsoft ne da možnosti, ga lahko vsaj sestavite sami.

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