Amazon-ek Bottlerocket 1.0.0 kaleratzen du, edukiontzi isolatuetan oinarritutako Linux banaketa

Amazon konpainia aurkeztu Linux banaketa dedikatu baten lehen bertsio esanguratsua Bottlerocket 1.0.0, isolatutako edukiontziak modu eraginkorrean eta seguruan exekutatzeko diseinatua. Banaketaren tresnak eta kontrol osagaiak Rust eta barreiatu MIT eta Apache 2.0 lizentziapean. Proiektua GitHub-en garatzen ari da eta komunitateko kideek parte hartzeko erabilgarri dago. Sistemaren hedapenaren irudia x86_64 eta Aarch64 arkitektuetarako sortzen da. OSa Amazon ECS eta AWS EKS Kubernetes klusterretan exekutatzeko egokituta dago. Ematen dira zure muntaiak eta edizioak sortzeko tresnak, edukiontzietarako beste orkestrazio tresnak, nukleoak eta exekuzio-denbora erabil ditzaketenak.

Banaketak Linux nukleoa eta sistema gutxieneko ingurunea eskaintzen ditu, edukiontziak exekutatzeko beharrezkoak diren osagaiak soilik barne. Proiektuan parte hartzen duten paketeen artean sistema kudeatzailea systemd, Glibc liburutegia eta muntaketa tresnak daude.
Buildroot, GRUB abiarazlea, sare konfiguratzailea maltzurrez, isolatutako edukiontzien exekuzioa edukiontziad, Kubernetes edukiontzien orkestrazio plataforma, aws-iam-authenticator eta Amazon ECS agentea.

Banaketa atomikoki eguneratzen da eta sistemaren irudi zatiezin baten moduan ematen da. Sistemarako bi disko-partizio esleitzen dira, horietako batek sistema aktiboa dauka, eta eguneratzea bigarrenean kopiatzen da. Eguneraketa zabaldu ondoren, bigarren partizioa aktibo bihurtzen da, eta lehenengoan, hurrengo eguneratzea iritsi arte, sistemaren aurreko bertsioa gordetzen da, eta arazoak sortzen badira atzera egin dezakezu. Eguneraketak automatikoki instalatzen dira administratzaileak esku hartu gabe.

Fedora CoreOS, CentOS/Red Hat Atomic Host bezalako banaketekiko desberdintasun nagusia hornitzea da. segurtasun handiena mehatxu posibleetatik sistemaren babesa indartzearen testuinguruan, sistema eragilearen osagaien ahuleziak ustiatzea zailagoa bihurtuz eta edukiontzien isolamendua areagotuz. Edukiontziak Linux nukleoaren mekanismo estandarrak erabiliz sortzen dira - cgroups, namespaces eta seccomp. Isolamendu gehigarrirako, banaketak SELinux erabiltzen du "betearazteko" moduan, eta modulua erro-partizioaren osotasuna egiaztatzeko erabiltzen da. dm-benetako. Bloke gailu mailan datuak aldatzeko saiakera bat hautematen bada, sistema berrabiaraziko da.

Erro-partizioa irakurtzeko soilik muntatzen da, eta /etc settings partizioa tmpfs-en muntatzen da eta berrabiarazi ondoren jatorrizko egoerara berrezartzen da. /etc direktorioko fitxategiak zuzenean aldatzea, hala nola /etc/resolv.conf eta /etc/containerd/config.toml, ez da onartzen; ezarpenak betiko gordetzeko, APIa erabili behar duzu edo funtzionalitatea edukiontzi ezberdinetara eraman behar duzu.

Sistemaren osagai gehienak Rust-en idatzita daude, eta horrek memoriarako seguruak diren funtzioak eskaintzen ditu, memoria librearen ondorengo sarbideek, erakusle nuluen deserreferentziak eta buffer gainditzeak eragindako ahultasunak saihesteko. Lehenespenez eraikitzen denean, β€œ--enable-default-pie” eta β€œ--enable-default-ssp” konpilazio moduak erabiltzen dira fitxategi exekutagarrien helbide-espazioa ausaz banatzeko (PIE) eta pilatu gainezkatze babesa kanariar ordezkapenaren bidez.
C/C++-n idatzitako paketeetarako, bandera gehigarriak sartzen dira
"-Wall", "-Werror=formatu-segurtasuna", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" eta "-fstack-clash-protection".

Ontziak orkestratzeko tresnak bereizita hornitzen dira kontrol-ontzia, lehenespenez gaituta eta bidez kontrolatzen dena API eta AWS SSM agentea. Oinarrizko irudiak komando-shell bat, SSH zerbitzaria eta interpretatutako hizkuntzak ez ditu (adibidez, Python edo Perl ez) - administrazio-tresnak eta arazketa-tresnak daude. aparteko zerbitzu-ontzia, lehenespenez desgaituta dagoena.

Iturria: opennet.ru

Gehitu iruzkin berria