Bottlerocket Linux banaketa minimalista bat kaleratu da edukiontziak exekutatzeko. Berari buruz garrantzitsuena

Bottlerocket Linux banaketa minimalista bat kaleratu da edukiontziak exekutatzeko. Berari buruz garrantzitsuena

Amazon konpainia iragarri azken kaleratzeari buruz Botileroa β€” edukiontziak martxan jartzeko eta modu eraginkorrean kudeatzeko banaketa espezializatua.

Bottlerocket (bide batez, etxeko hauts beltz suziri txikiei ematen zaien izena) ez da ontzientzako lehen OSa, baina litekeena da AWS zerbitzuekin lehenetsitako integrazioari esker hedatzea. Sistema Amazon hodeian zentratuta badago ere, iturburu irekiko kodeari esker edonon eraiki daiteke: lokalean zerbitzari batean, Raspberry Pi batean, lehiakideen edozein hodeian eta baita edukiontzirik gabeko ingurune batean ere.

Red Hat-ek lurperatu zuen CoreOS banaketaren ordezko guztiz duina da.

Izan ere, Amazon Web Services dibisioak dagoeneko badu Amazon Linux, duela gutxi bigarren bertsioan atera dena: erabilera orokorreko banaketa bat da, Docker edukiontzian edo Linux KVM, Microsoft Hyper-V eta VMware-rekin exekutatu daitekeena. ESXi hipervisoreak. AWS hodeian exekutatzeko optimizatu zen, baina Bottlerocket kaleratuta, denak seguruago, modernoago eta baliabide gutxiago erabiltzen dituen sistema berri batera eguneratzera animatzen dira.

AWSk Bottlerocket iragarri zuen 2020ko martxoan. Berehala onartu zuen hau ez dela lehen "Linux edukiontzietarako", CoreOS, Rancher OS eta Project Atomic inspirazio iturri gisa aipatuz. Garatzaileek idatzi dutenez, sistema eragilea "Amazonen eskalan ekoizpen zerbitzuak denbora luzez exekutatzen ikasi ditugun ikasgaien eta azken sei urteetan edukiontziak nola exekutatzeko lortu dugun esperientziaren emaitza da".

Muturreko minimalismoa

Linux-ek edukiontziak exekutatzeko behar ez den guztia kentzen du. Diseinu honek, konpainiaren arabera, eraso-azalera murrizten du.

Horrek esan nahi du oinarrizko sisteman pakete gutxiago instalatzen direla, eta horrek OSa mantentzea eta eguneratzea errazten du, eta menpekotasunen ondoriozko arazoak izateko probabilitatea murrizten du, baliabideen erabilera murriztuz. Funtsean, hemen dena ontzi bereizietan funtzionatzen du, eta azpiko sistema ia hutsik dago.

Amazonek shell eta interprete guztiak ere kendu ditu, horiek erabiltzeko edo erabiltzaileek ustekabean pribilegioak handitzeko arriskua ezabatuz. Minimalismoaren eta segurtasunaren mesedetan, oinarrizko irudiak ez du komando-shell bat, SSH zerbitzari bat edo Python bezalako interpretatutako hizkuntzarik. Administratzaile-tresnak aparteko zerbitzu-edukiontzi batean jartzen dira, lehenespenez desgaituta dagoena.

Sistema bi modutara kudeatzen da: APIaren eta orkestrazioaren bidez.

Software piezak eguneratzen dituen pakete-kudeatzaile baten ordez, Bottlerocket-ek fitxategi-sistemaren irudi osoa deskargatzen du eta bertan berrabiarazten du. Karga batek huts egiten badu, automatikoki atzera egiten du, eta lan-kargaren hutsegite batek eskuz atzera bota dezake (API bidezko komandoa).

Esparrua TUF (Eguneratze Markoa) irudietan oinarritutako eguneraketak deskargatzen ditu ordezko edo "muntatutako" partizioetara. Sistemarako bi disko-partizio esleitzen dira, horietako batek sistema aktiboa dauka, eta eguneratzea bigarrenean kopiatzen da. Kasu honetan, root partizioa irakurtzeko soilik moduan muntatzen da, eta partizioa /etc RAM fitxategi-sistemarekin muntatua tmpfs eta jatorrizko egoera berrezartzen du berrabiarazi ondoren. Konfigurazio fitxategiak zuzenean aldatzea /etc ez da onartzen: ezarpenak gordetzeko APIa erabili behar duzu edo funtzionalitatea edukiontzi ezberdinetara eraman.

Bottlerocket Linux banaketa minimalista bat kaleratu da edukiontziak exekutatzeko. Berari buruz garrantzitsuena
API eguneratzeko eskema

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Edukiontziak Linux kernelaren mekanismo estandarren bidez sortzen dira - cgroups, namespaces eta seccomp, eta behartutako sarbide-kontrol-sistema gisa erabiltzen dira, hau da, isolamendu gehigarrirako. SELinux "betearazteko" moduan.

Lehenespenez, politikak gaituta daude edukiontzien eta nukleoaren artean baliabideak partekatzeko. Binarioak banderarekin babestuta daude erabiltzaileek edo programak exekutatu ez ditzaten. Eta fitxategi-sistemara iristen bada, Bottlerocket-ek egindako aldaketak egiaztatzeko eta jarraitzeko tresna eskaintzen du.

"Egiaztatutako abioa" modua device-mapper-verity funtzioaren bidez inplementatzen da (dm-benetako), abiaraztean erro-partizioaren osotasuna egiaztatzen duena. AWS-k dm-verity deskribatzen du "Linux nukleoaren funtzio bat, osotasun-egiaztapenak eskaintzen dituena, malwarea sistema eragilean exekutatzen ez dadin, hala nola oinarrizko sistemaren softwarea gainidaztea".

Iragazki bat ere badago sisteman eGMP (BPF hedatua, Alexey Starovoitovek garatua), eta horrek aukera ematen du nukleoaren moduluak BPF programa seguruagoekin ordezkatzeko sistema maila baxuko eragiketetarako.

Exekuzio eredua
Erabiltzaileak definituta
konpilazio
Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
Huts modua
Baliabideetarako sarbidea

Erabiltzailea
zeregina
Bai
edozein
erabiltzaile-eskubideak
exekuzioa eten
sistema deia, akatsa

Core
zeregina
Π½Π΅Ρ‚
estatikoa
Π½Π΅Ρ‚
kernel izua
zuzen

BPF
gertaera
Bai
JIT, CO-RE
egiaztapena, JIT
errore-mezua
laguntzaile mugatuak

Nola desberdintzen den BPF erabiltzaile arruntaren edo nukleo-mailako kodearekin iturri

AWS-k esan zuen Bottlerocket-ek "segurtasuna are gehiago hobetzen duen eredu operatibo bat erabiltzen duela, administrazio-pribilegioak dituzten ekoizpen-zerbitzarietarako konexioak eragotziz" eta "banakako sistema handietarako egokia da, non ostalari bakoitzaren kontrola mugatua den".

Administratzaile-edukiontzi bat eskaintzen zaie sistema-administratzaileei. Baina AWS-k ez du uste administratzaile batek sarritan lan egin behar duenik Bottlerocket-en barruan: "Bottlerocket-en instantzia bereizi batean saioa hasteko ekintza maiz gutxiko eragiketetarako pentsatuta dago: arazketa aurreratua eta arazoak konpontzeko". idatzi garatzaileak.

Herdoila hizkuntza

Nukleoaren gainean OS tresneria gehienbat Rust-en idatzita dago. Hizkuntza hau bere izaeraz da memoria segururako sarbidea izateko probabilitatea murrizten duEta harien arteko lasterketa-baldintzak ezabatzen ditu.

Eraikitzerakoan banderak lehenespenez aplikatzen dira --enable-default-pie ΠΈ --enable-default-ssp fitxategi exekutagarrien helbide-espazioen aleatorizazioa gaitzeko (posiziotik independentea den exekutagarria, PIE) eta pila gainezkatzeko babesa.

C/C++ paketeetarako, bandera gehigarriak sartzen dira -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS ΠΈ -fstack-clash-protection.

Rust eta C/C++ gain, pakete batzuk Go-n idatzita daude.

AWS zerbitzuekin integratzea

Antzeko edukiontzien sistema eragileekiko aldea da Amazonek Bottlerocket optimizatu duela AWS-n exekutatzeko eta AWS zerbitzuekin integratzeko.

Edukiontzi-orkestratzaile ezagunena Kubernetes da, beraz, AWS-k bere Enterprise Kubernetes Zerbitzuarekin (EKS) integrazioa sartu du. Orkestrazio tresnak kontrol-edukiontzi bereizi batean datoz botila-kohete-kontrol-edukiontzi, lehenespenez gaituta eta APIaren eta AWS SSM Agentearen bidez kudeatzen dena.

Interesgarria izango da ikustea Bottlerocket-ek airea hartzen duen, iraganean antzeko ekimen batzuen porrota ikusita. Esaterako, Vmware-ren PhotonOS ez zen erreklamatu eta RedHatek CoreOS eta erosi zituen. proiektua itxi zuen, arlo horretan aitzindaritzat hartzen zena.

Bottlerocket-en AWS zerbitzuetan integratzeak sistema hau bakarra egiten du bere erara. Hau da beharbada erabiltzaile batzuek Bottlerocket nahiago izan dezaketen arrazoi nagusia CoreOS edo Alpine bezalako beste distro batzuen aldean. Sistema hasieran EKS eta ECSekin lan egiteko diseinatuta dago, baina hori ez dela beharrezkoa errepikatzen dugu. Lehenik eta behin, Bottlerocket daiteke zuk zeuk muntatu eta erabili, adibidez, ostatatutako irtenbide gisa. Bigarrenik, EKS eta ECS erabiltzaileek beren OS aukeratzeko aukera izango dute oraindik.

Bottlerocket iturburu-kodea GitHub-en argitaratzen da Apache 2.0 lizentziarekin. Garatzaileek dagoeneko egin dute akatsen txostenei eta eginbide eskaerei erantzun.

Publizitatearen Eskubideei buruz

VDSina eskaintza VDS eguneroko ordainketarekin. Edozein sistema eragile instalatu daiteke, baita zure iruditik ere. Zerbitzari bakoitza 500 Megabit-eko Interneteko kanal batera konektatuta dago eta DDoS erasoetatik doan babestuta dago!

Bottlerocket Linux banaketa minimalista bat kaleratu da edukiontziak exekutatzeko. Berari buruz garrantzitsuena

Iturria: www.habr.com

Gehitu iruzkin berria