Minimalista atera zen. LinuxBottlerocket, edukiontziak exekutatzeko banaketa bat. Bere ezaugarri garrantzitsuenak

Minimalista atera zen. LinuxBottlerocket, edukiontziak exekutatzeko banaketa bat. Bere ezaugarri garrantzitsuenak

Amazon konpainia iragarri azken argitalpenari buruz Botila-kohetea — edukiontziak exekutatzeko eta eraginkortasunez kudeatzeko banaketa espezializatua.

Bottlerocket (bide batez, etxeko ke-hautsez elikatzen diren suziri txikien izena) ez da lehenengo edukiontzi-sistema eragilea, baina litekeena da AWS zerbitzuekin duen integrazio lehenetsiari esker oso hedatuta egotea. Sistema Amazon hodeirako diseinatuta dagoen arren, bere kode irekiak edonon eraikitzeko aukera ematen du: zerbitzari batean lokalean, Raspberry Pi batean, edozein hodei lehiakidetan eta baita edukiontzirik gabeko ingurune batean ere.

Hau ordezko guztiz merezi du Red Hatek lurperatu zuen CoreOS banaketarentzat.

Izan ere, Amazon Web Services dibisioak badu dagoeneko Amazon Linux, duela gutxi bere bigarren bertsioan sartu dena: helburu orokorreko banaketa bat da, Docker edukiontzi batean edo hiperbisoreekin exekutatu daitekeena Linux KVM, Microsoft Hyper-V eta VMware ESXi. AWS hodeian exekutatzeko optimizatuta zegoen, baina Bottlerocket kaleratu zenetik, guztiei gomendatzen zaie seguruagoa, modernoagoa eta baliabide gutxiago kontsumitzen dituen sistema berri batera eguneratzea.

AWS-ek Bottlerocket iragarri du 2020ko martxoanBerehala onartu zuen ez zela lehenengoa.Linux edukiontzietarako", CoreOS, Rancher OS eta Project Atomic aipatuz inspirazio gisa. Garatzaileek idatzi zuten sistema eragilea "Amazonen denbora luzez ekoizpen-zerbitzuak eskala handian exekutatzen ikasi ditugun lezioen eta azken sei urteetan edukiontziak nola exekutatu buruz lortu dugun esperientziaren emaitza" dela.

Minimalismo muturrekoa

Linux Edukiontziak exekutatzeko beharrezkoa ez den guztia kenduta, diseinu honek, enpresaren arabera, eraso-azalera murrizten du.

Horrek esan nahi du oinarrizko sisteman pakete gutxiago instalatzen direla, sistema eragilearen mantentze-lanak eta eguneraketak erraztuz, mendekotasun arazoen probabilitatea murriztuz eta baliabideen erabilera murriztuz. Funtsean, dena edukiontzi bereizietan exekutatzen da, eta oinarrizko sistema ia hutsa da.

Amazonek shell eta interprete guztiak ere kendu zituen, erabiltzaileek nahi gabe pribilegioak eskalatzeko edo haien erabilera arriskua ezabatuz. Minimalismoaren eta segurtasunaren mesedetan, oinarrizko irudiak ez du komando shell bat, SSH zerbitzari bat eta Python bezalako interpretatutako hizkuntzarik. Administratzaile tresnak zerbitzu-edukiontzi bereizi batera eraman dira, eta hau lehenespenez desgaituta dago.

Sistema bi modutara kudea daiteke: APIaren bidez eta orkestrazioaren bidez.

Software zati indibidualak eguneratzen dituen pakete kudeatzaile baten ordez, Bottlerocket-ek fitxategi sistemaren irudi osoa deskargatzen du eta bertan berrabiarazten du. Deskargak huts egiten badu, automatikoki atzera egiten du, eta lan-kargaren akats batek eskuzko atzera egitea eragin dezake (API komando baten bidez).

Esparrua TUF (Eguneratze Esparruak) irudietan oinarritutako eguneraketak deskargatzen ditu partizio alternatiboetara edo "muntatu gabekoetara". Bi disko partizio esleitzen dira sistemarentzat, batek sistema aktiboa dauka, eta bigarrenak eguneratzea kopiatzen du. Erroko partizioa irakurtzeko soilik moduan muntatzen da, eta partizioa /etc memoria barruko fitxategi-sistemarekin muntatuta tmpfs eta berrabiarazi ondoren jatorrizko egoera berreskuratzen du. Konfigurazio fitxategien zuzeneko aldaketa /etc Ez da onartzen: Ezarpenak gordetzeko, APIa erabili edo funtzionalitatea edukiontzi bereizietara eraman beharko zenuke.

Minimalista atera zen. LinuxBottlerocket, edukiontziak exekutatzeko banaketa bat. Bere ezaugarri garrantzitsuenak
API eguneratze eskema

Безопасность

Edukiontziak kernel mekanismo estandarrak erabiliz sortzen dira. Linux — cgroup-ak, izen-espazioak eta seccomp, eta sarbide-kontrol derrigorrezko sistema gisa, hau da, isolamendu gehigarrirako, erabiltzen da SELinux "betearazte" moduan.

Berez, edukiontzien eta nukleoaren arteko baliabideak bereizteko politikak gaituta daude. Fitxategi bitarrak banderekin babestuta daude erabiltzaileek edo programek exekutatzea eragozteko. Eta norbaitek fitxategi-sistemara sartzen bada, Bottlerocket-ek egindako aldaketak egiaztatzeko eta jarraitzeko tresna bat eskaintzen du.

"Egiaztatutako abioa" modua device-mapper-verity funtzioaren bidez ezartzen da (dm-benetako), abiaraztean erroko partizioaren osotasuna egiaztatzen duena. AWS-k dm-verity "kernel funtzio" gisa deskribatzen du Linux, osotasun-egiaztapena eskaintzen duena malwarea sistema eragilean exekutatzea saihesteko, hala nola sistemaren software nagusia gainidaztea.

Sisteman iragazki bat ere badago. eGMP (BPF luzatua, Alexey Starovoytovek garatua), eta horri esker, kernel moduluak BPF programa seguruagoekin ordezkatu daitezke maila baxuko sistemaren eragiketetarako.

Exekuzio eredua
Erabiltzaileak definitutakoa
konpilazio
Безопасность
Istripu modua
Baliabideetarako sarbidea

Erabiltzailea
zeregina
Bai
edozein
erabiltzaileen eskubideak
exekuzio eten
sistema-deia, akatsa

Core
zeregina
нет
estatikoa
нет
kernel panikoa
zuzen

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

BPF eta ohiko erabiltzaile-mailako edo kernel kodearen arteko aldea hau da: iturri

AWS-ek adierazi zuen Bottlerocket-ek "segurtasuna areagotzen duen funtzionamendu-eredu bat hartzen duela, administrazio-pribilegioak dituzten ekoizpen-zerbitzarietara konexioak saihestuz" eta "ostalari bakoitzaren gaineko kontrola mugatua den sistema banatu handietarako egokia" dela.

Administratzaile-edukiontzi bat eskaintzen zaie sistema-administratzaileei. Hala ere, AWS-k ez du espero administratzaileek maiz Bottlerocket-en barruan lan egin behar izatea: "Bottlerocket instantzia bereizi batean saioa hastea eragiketa gutxitan egiteko da, hala nola arazketa aurreratua eta arazoak konpontzea". idatzi garatzaileak.

Herdoil hizkuntza

Kernelaren gainean dagoen sistema eragilearen tresna-katea batez ere Rust-en idatzita dago, berez hizkuntza bat dena. memoria sarbide seguruak izateko probabilitatea murrizten duEta harien arteko lasterketa-baldintzak ezabatzen ditu.

Banderak lehenespenez aplikatzen dira muntaketan zehar --enable-default-pie и --enable-default-ssp fitxategi exekutagarrien helbide-espazioaren ausazko aukeraketa gaitzeko (posizioarekiko independentea den exekutagarria, PIE) eta pila-gainezketaren aurkako 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++z gain, pakete batzuk Go-n idatzita daude.

AWS zerbitzuekin integrazioa

Bottlerocket antzeko edukiontzi-sistema eragileetatik bereizten duena da Amazonek AWS-n exekutatzeko eta beste AWS zerbitzuekin integratzeko optimizatu duela.

Kubernetes edukiontzi orkestratzaile ezagunena da, beraz, AWS-k bere Enterprise Kubernetes Service (EKS) zerbitzuarekin integratu du. Orkestrazio tresnak kudeaketa edukiontzi bereizi batean eskaintzen dira. botila-suziri-kontrol-edukiontzia, lehenespenez gaituta dagoena eta APIaren eta AWS SSM agentearen bidez kudeatzen dena.

Interesgarria izango da ikustea ea Bottlerocket-ek aurrera egiten duen, iraganean antzeko ekimen batzuek porrot egin baitute. Adibidez, VMware-ren PhotonOS ez zen ezaguna izan, eta RedHat-ek CoreOS erosi zuen eta proiektua itxi zuen, arlo honetako aitzindaritzat hartzen zena.

Bottlerocket-en AWS zerbitzuekin integrazioak bere erara berezi egiten du. Hori da, agian, erabiltzaile batzuek Bottlerocket nahiago izatearen arrazoi nagusia beste banaketa batzuk baino, hala nola CoreOS edo Alpine. Sistema hasieratik diseinatuta dago EKS eta ECS-ekin funtzionatzeko, baina, berriro ere, ez da beharrezkoa. Lehenik eta behin, Bottlerocket-ek... zuk zeuk muntatu eta erabilia, adibidez, ostatatutako soluzio gisa. Bigarrenik, EKS eta ECS erabiltzaileek sistema eragileen aukera izango dute oraindik.

Bottlerocket-en iturburu-kodea GitHub-en argitaratu da Apache 2.0 lizentziapean. Garatzaileek dagoeneko egin dute akatsen txostenei eta funtzio eskaerei erantzun.

Publizitatearen Eskubideei buruz

VDSina eskaintza VDS eguneroko ordainketarekinEdozein sistema eragile instala dezakezu, zure iruditik barne. Zerbitzari bakoitza 500 Mbps-ko internet konexio batera konektatuta dago eta doan babestuta dago DDoS erasoetatik!

Minimalista atera zen. LinuxBottlerocket, edukiontziak exekutatzeko banaketa bat. Bere ezaugarri garrantzitsuenak

Iturria: www.habr.com

Erosi hosting fidagarria DDoS babesa duten guneetarako, VPS VDS zerbitzariak 🔥 Erosi webguneentzako ostatu fidagarria DDoS babesarekin, VPS VDS zerbitzariak | ProHoster