Bottlerocket 1.2 чыгарылышы, обочолонгон контейнерлерге негизделген бөлүштүрүү

Linux дистрибьюторунун Bottlerocket 1.2.0 релизи бар, ал изоляцияланган контейнерлерди эффективдүү жана коопсуз ишке киргизүү үчүн Amazon компаниясынын катышуусунда иштелип чыккан. Бөлүштүрүүнүн куралдары жана башкаруу компоненттери 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” иштетилген -коргоо".

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

  • Контейнердин сүрөт реестринин күзгүсү үчүн кошумча колдоо.
  • Өз алдынча кол коюлган сертификаттарды колдонуу мүмкүнчүлүгү кошулду.
  • Хост атын конфигурациялоо опциясы кошулду.
  • Административдик контейнердин демейки версиясы жаңыртылды.
  • Kubelet үчүн топология менеджериПолитика жана топология менеджериScope жөндөөлөрү кошулду.
  • Zstd алгоритмин колдонуу менен ядрону кысуу үчүн кошумча колдоо.
  • Виртуалдык машиналарды OVA (Open Virtualization Format) форматында VMware программасына жүктөө мүмкүнчүлүгү каралган.
  • aws-k8s-1.21 бөлүштүрүү версиясы Kubernetes 1.21 колдоосу менен жаңыртылган. aws-k8s-1.16 үчүн колдоо токтотулду.
  • Жаңыртылган пакет версиялары жана Rust тили үчүн көз карандылык.

Source: opennet.ru

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