Galima įsigyti Bottlerocket 1.8, paskirstymą, pagrįstą izoliuotais konteineriais

Paskelbtas Linux platinimo Bottlerocket 1.8.0 leidimas, sukurtas dalyvaujant Amazon, siekiant efektyviai ir saugiai paleisti izoliuotus konteinerius. Platinimo įrankiai ir valdymo komponentai parašyti Rust ir platinami pagal MIT ir Apache 2.0 licencijas. Jis palaiko „Bottlerocket“ paleidimą „Amazon ECS“, „VMware“ ir „AWS EKS Kubernetes“ klasteriuose, taip pat kuriant pasirinktines versijas ir leidimus, leidžiančius naudoti įvairius konteinerių orkestravimo ir vykdymo įrankius.

Platinimas suteikia atomiškai ir automatiškai atnaujintą nedalomą sistemos vaizdą, apimantį „Linux“ branduolį ir minimalią sistemos aplinką, įskaitant tik komponentus, reikalingus konteineriams paleisti. Aplinka apima sistemos tvarkyklę, Glibc biblioteką, Buildroot kūrimo įrankį, GRUB įkrovos įkroviklį, pikto tinklo konfigūratorių, atskirų konteinerių konteinerinį vykdymo laiką, Kubernetes konteinerių orkestravimo platformą, aws-iam-autentifikatorių ir Amazon. ECS agentas.

Sudėtinio rodinio valdymo įrankiai pateikiami atskirame valdymo konteineryje, kuris įgalintas pagal numatytuosius nustatymus ir valdomas naudojant API ir AWS SSM agentą. Baziniame paveikslėlyje trūksta komandų apvalkalo, SSH serverio ir interpretuojamų kalbų (pavyzdžiui, nėra Python ar Perl) - administravimo įrankiai ir derinimo įrankiai yra atskirame paslaugų konteineryje, kuris pagal numatytuosius nustatymus yra išjungtas.

Pagrindinis skirtumas nuo panašių platinimų, tokių kaip „Fedora CoreOS“, „CentOS“ / „Red Hat Atomic Host“, yra didžiausias dėmesys siekiant užtikrinti maksimalų saugumą, didinant sistemos apsaugą nuo galimų grėsmių, todėl sunkiau išnaudoti OS komponentų pažeidžiamumą ir didinant talpyklos izoliaciją. . Konteineriai kuriami naudojant standartinius Linux branduolio mechanizmus – cgroups, namespaces ir seccomp. Siekiant papildomos izoliacijos, paskirstymas naudoja SELinux vykdymo režimu.

Šakninis skaidinys yra prijungtas tik skaityti, o /etc nustatymų skaidinys yra įtrauktas į tmpfs ir atkuriamas į pradinę būseną po paleidimo iš naujo. Tiesioginis failų keitimas /etc kataloge, pvz., /etc/resolv.conf ir /etc/containerd/config.toml, nepalaikomas – norėdami visam laikui išsaugoti nustatymus, turite naudoti API arba perkelti funkcionalumą į atskirus konteinerius. Modulis dm-verity naudojamas kriptografiškai patikrinti šakninio skaidinio vientisumą, o jei aptinkamas bandymas modifikuoti duomenis blokinio įrenginio lygiu, sistema paleidžiama iš naujo.

Dauguma sistemos komponentų yra parašyti „Rust“ kalba, kuri suteikia atmintį saugančias funkcijas, kad būtų išvengta pažeidžiamumų, atsirandančių dėl laisvos atminties prieigos, nulinių rodyklės nuorodų ir buferio viršijimo. Kuriant pagal numatytuosius nustatymus, naudojami kompiliavimo režimai „-enable-default-pie“ ir „-enable-default-ssp“, kad būtų galima atsitiktine tvarka pasirinkti vykdomojo failo adresų erdvę (PIE) ir apsaugoti nuo dėklo perpildymo naudojant kanarinį pakeitimą. Paketams, parašytiems C/C++, papildomai yra vėliavėlės „-Wall“, „-Werror=format-security“, „-Wp,-D_FORTIFY_SOURCE=2“, „-Wp,-D_GLIBCXX_ASSERTIONS“ ir „-fstack-clash“. įjungta -apsauga“.

Naujame leidime:

  • Обновлено содержимое административного и управляющего контейнеров.
  • Runtime для изолированных контейнеров обновлён до ветки containerd 1.6.x.
  • Обеспечен перезапуск фоновых процессов, координирующих работу контейнеров, после изменений в хранилище сертификатов.
  • Предоставлена возможность выставления загрузочных параметров ядра через секцию Boot Configuration.
  • Включено игнорирование пустых блоков при контроле целостности корневого раздела при помощи dm-verity.
  • Предоставлена возможность статической привязки имён хостов в /etc/hosts.
  • Предоставлена возможность генерации сетевой конфигурации при помощи утилиты netdog (добавлена команда generate-net-config).
  • Предложены новые варианты дистрибутива c поддержкой Kubernetes 1.23. Сокращено время запуска pod-ов в Kubernetes за счёт отключения режима configMapAndSecretChangeDetectionStrategy. Добавлены новые настройки kubelet-ов: provider-id и podPidsLimit.
  • Предложен новый вариант дистрибутива «aws-ecs-1-nvidia» для Amazon Elastic Container Service (Amazon ECS), поставляемый с драйверами NVIDIA.
  • Добавлена поддержка устройств хранения Microchip Smart Storage и MegaRAID SAS. Расширена поддержка Ethernet-карт на чипах Broadcom.
  • Обновлены версии пакетов и зависимости для языков Go и Rust, а также версии пакетов со сторонними программами. Bottlerocket SDK обновлён до версии 0.26.0.

Šaltinis: opennet.ru

Добавить комментарий