Lëshimi i Bottlerocket 1.2, një shpërndarje e bazuar në kontejnerë të izoluar

Lëshimi i shpërndarjes Linux Bottlerocket 1.2.0 është i disponueshëm, i zhvilluar me pjesëmarrjen e Amazon për lëshimin efikas dhe të sigurt të kontejnerëve të izoluar. Mjetet e shpërndarjes dhe komponentët e kontrollit janë shkruar në Rust dhe shpërndahen nën licencat MIT dhe Apache 2.0. Ai mbështet ekzekutimin e Bottlerocket në grupet Amazon ECS, VMware dhe AWS EKS Kubernetes, si dhe krijimin e ndërtimeve dhe botimeve të personalizuara që lejojnë përdorimin e mjeteve të ndryshme orkestrimi dhe funksionimi për kontejnerë.

Shpërndarja siguron një imazh të pandashëm të sistemit të përditësuar atomikisht dhe automatikisht që përfshin kernelin Linux dhe një mjedis minimal të sistemit, duke përfshirë vetëm komponentët e nevojshëm për të drejtuar kontejnerët. Mjedisi përfshin menaxherin e sistemit systemd, bibliotekën Glibc, mjetin e ndërtimit Buildroot, ngarkuesin e nisjes GRUB, konfiguruesin e keq të rrjetit, kohën e funksionimit të kontejnerëve për kontejnerë të izoluar, platformën e orkestrimit të kontejnerëve Kubernetes, authenticatorin aws-iam dhe Amazon. Agjent ECS.

Mjetet e orkestrimit të kontejnerëve vijnë në një kontejner të veçantë menaxhimi që aktivizohet si parazgjedhje dhe menaxhohet përmes API dhe Agjentit AWS SSM. Imazhi bazë nuk ka një guaskë komandimi, server SSH dhe gjuhë të interpretuara (për shembull, pa Python ose Perl) - mjetet administrative dhe mjetet e korrigjimit vendosen në një enë të veçantë shërbimi, i cili është i çaktivizuar si parazgjedhje.

Dallimi kryesor nga shpërndarjet e ngjashme si Fedora CoreOS, CentOS/Red Hat Atomic Host është fokusi kryesor në ofrimin e sigurisë maksimale në kontekstin e forcimit të mbrojtjes së sistemit nga kërcënimet e mundshme, duke e bërë më të vështirë shfrytëzimin e dobësive në komponentët e OS dhe rritjen e izolimit të kontejnerëve. . Kontejnerët krijohen duke përdorur mekanizmat standardë të kernelit Linux - cgroups, hapësirat e emrave dhe seccomp. Për izolim shtesë, shpërndarja përdor SELinux në modalitetin "zbatues".

Ndarja rrënjë është montuar vetëm për lexim, dhe ndarja e cilësimeve /etc montohet në tmpfs dhe rikthehet në gjendjen e saj origjinale pas një rifillimi. Modifikimi i drejtpërdrejtë i skedarëve në drejtorinë /etc, të tilla si /etc/resolv.conf dhe /etc/containerd/config.toml, nuk mbështetet - për të ruajtur përgjithmonë cilësimet, duhet të përdorni API-në ose ta zhvendosni funksionalitetin në kontejnerë të veçantë. Moduli dm-verity përdoret për të verifikuar në mënyrë kriptografike integritetin e ndarjes rrënjësore dhe nëse zbulohet një përpjekje për të modifikuar të dhënat në nivelin e pajisjes bllok, sistemi riniset.

Shumica e komponentëve të sistemit janë të shkruar në Rust, i cili siguron veçori të sigurta për memorie për të shmangur dobësitë e shkaktuara nga akseset pa pagesë të memories, çreferencat e treguesit null dhe tejkalimet e buferit. Kur ndërtohet si parazgjedhje, mënyrat e kompilimit "-enable-default-pie" dhe "-enable-default-ssp" përdoren për të mundësuar randomizimin e hapësirës së adresave të skedarit të ekzekutueshëm (PIE) dhe mbrojtjen kundër tejmbushjeve të pirgjeve përmes zëvendësimit të kanarisë. Për paketat e shkruara në C/C++, flamujt "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" dhe "-fstack-clash" janë gjithashtu. aktivizuar -mbrojtje".

Në publikimin e ri:

  • Mbështetje e shtuar për pasqyrat e regjistrit të imazheve të kontejnerit.
  • U shtua aftësia për të përdorur certifikatat e vetë-nënshkruara.
  • Opsioni i shtuar për të konfiguruar emrin e hostit.
  • Versioni i parazgjedhur i kontejnerit administrativ është përditësuar.
  • U shtuan cilësimet e topologyManagerPolicy dhe topologyManagerScope për kubelet.
  • Mbështetje e shtuar për kompresimin e kernelit duke përdorur algoritmin zstd.
  • Mundësia për të ngarkuar makina virtuale në VMware në formatin OVA (Open Virtualization Format) ofrohet.
  • Versioni i shpërndarjes aws-k8s-1.21 është përditësuar me mbështetje për Kubernetes 1.21. Mbështetja për aws-k8s-1.16 është ndërprerë.
  • Versionet dhe varësitë e paketave të përditësuara për gjuhën Rust.

Burimi: opennet.ru

Shto një koment