Bottlerocket 1.8 жеткиликтүү, обочолонгон контейнерлерге негизделген бөлүштүрүү

Бөлүнгөн контейнерлерди эффективдүү жана коопсуз ишке киргизүү үчүн Amazon компаниясынын катышуусу менен иштелип чыккан Linux дистрибьюторунун Bottlerocket 1.8.0 релизинин чыгарылышы жарык көрдү. Бөлүштүрүүнүн куралдары жана башкаруу компоненттери Rust тилинде жазылган жана MIT жана Apache 2.0 лицензиялары боюнча таратылат. Ал Amazon ECS, VMware жана AWS EKS Kubernetes кластерлеринде Bottlerocket иштетүүнү колдойт, ошондой эле контейнерлер үчүн ар кандай оркестрлөө жана иштөө убактысы куралдарын колдонууга мүмкүндүк берген ыңгайлаштырылган түзүлүштөрдү жана басылмаларды түзөт.

Бөлүштүрүү атомдук жана автоматтык түрдө жаңыртылган бөлүнбөс системанын сүрөтүн камсыздайт, ал Linux ядросун жана минималдуу система чөйрөсүн, анын ичинде контейнерлерди иштетүү үчүн гана керектүү компоненттерди камтыйт. Курчап турган чөйрөгө системалык башкаруучу, Glibc китепканасы, Buildroot куруу куралы, GRUB жүктөөчүсү, жаман тармак конфигуратору, обочолонгон контейнерлер үчүн контейнердин иштөө убактысы, Kubernetes контейнерлерин башкаруу платформасы, aws-iam-authenticator жана Amazon кирет. ECS агенти.

Контейнерди башкаруу куралдары демейки боюнча иштетилген жана API жана AWS SSM Agent аркылуу башкарылуучу өзүнчө башкаруу контейнеринде келет. Негизги сүрөттө буйрук кабыгы, SSH сервери жана чечмеленген тилдер жок (мисалы, Python же Perl жок) - административдик инструменттер жана мүчүлүштүктөрдү оңдоо куралдары демейки боюнча өчүрүлгөн өзүнчө тейлөө контейнерине жайгаштырылат.

Fedora CoreOS, CentOS/Red Hat Atomic Host сыяктуу окшош бөлүштүрүүлөрдөн негизги айырмачылык системанын мүмкүн болуучу коркунучтардан коргоону күчөтүү контекстинде максималдуу коопсуздукту камсыз кылууга багытталган, ОС компоненттеринин алсыздыктарын пайдаланууну кыйындатат жана контейнердик изоляцияны жогорулатуу. . Контейнерлер стандарттуу Linux ядро ​​механизмдерин колдонуу менен түзүлөт - cgroups, namespaces жана seccomp. Кошумча изоляция үчүн бөлүштүрүү SELinux'ту "күчтүү" режиминде колдонот.

Түпкү бөлүм окуу үчүн гана орнотулат, ал эми /etc орнотуулар бөлүмү tmpfs ичинде орнотулуп, кайра күйгүзгөндөн кийин баштапкы абалына келтирилет. /etc/resolv.conf жана /etc/containerd/config.toml сыяктуу /etc каталогундагы файлдарды түз өзгөртүү колдоого алынбайт - орнотууларды биротоло сактоо үчүн API колдонушуңуз же функцияны өзүнчө контейнерлерге жылдыруу керек. dm-verity модулу түпкү бөлүмдүн бүтүндүгүн криптографиялык текшерүү үчүн колдонулат жана блок түзмөгүнүн деңгээлинде маалыматтарды өзгөртүү аракети аныкталса, система кайра жүктөлөт.

Көпчүлүк тутум компоненттери Rust тилинде жазылган, ал эстутумга бош калгандан кийин кирүүдөн, нөл көрсөткүчтү жокко чыгаруудан жана буфердик ашыкча иштөөдөн келип чыккан алсыздыктарды болтурбоо үчүн эстутум үчүн коопсуз функцияларды камсыз кылат. Демейки боюнча курууда "-enable-default-pie" жана "-enable-default-ssp" компиляция режимдери аткарылуучу файл дарек мейкиндигин (PIE) рандомизациялоону жана канарларды алмаштыруу аркылуу стектин ашып кетишинен коргоону иштетүү үчүн колдонулат. C/C++ тилинде жазылган пакеттер үчүн кошумча белгилер “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” жана “-fstack-clash” иштетилген -коргоо".

Жаңы чыгарылышта:

  • Обновлено содержимое административного и управляющего контейнеров.
  • 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.

Source: opennet.ru

Комментарий кошуу