Bottlerocket 1.8 қол жетімді, тарату оқшауланған контейнерлерге негізделген

Оқшауланған контейнерлерді тиімді және қауіпсіз басқару үшін Amazon компаниясының қатысуымен әзірленген Bottlerocket 1.8.0 Linux дистрибутивінің шығарылымы жарияланды. Таратудың құралдар жинағы мен басқару құрамдастары Rust тілінде жазылған және MIT және Apache 2.0 лицензиялары бойынша таратылады. Ол Amazon ECS, VMware және AWS EKS Kubernetes кластерлерінде Bottlerocket іске қосуды қолдайды, сондай-ақ контейнерлер үшін әртүрлі оркестрлеу және орындау уақыты құралдарын қолдануға мүмкіндік беретін реттелетін құрастырулар мен басылымдарды жасайды.

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

Контейнерді басқару құралдары әдепкі бойынша қосылған және API және AWS SSM агенті арқылы басқарылатын бөлек басқару контейнерінде келеді. Негізгі кескінде пәрмен қабығы, SSH сервері және түсіндірілетін тілдер жоқ (мысалы, Python немесе Perl жоқ) - әкімшілік және жөндеу құралдары әдепкі бойынша өшірілген бөлек қызмет көрсету контейнеріне жылжытылады.

Fedora CoreOS, CentOS/Red Hat Atomic Host сияқты ұқсас дистрибутивтерден негізгі айырмашылығы ықтимал қауіптерден жүйені қорғауды күшейту, ОЖ құрамдас бөліктеріндегі осалдықтарды пайдалануды қиындату және контейнерлік оқшаулауды арттыру контекстінде максималды қауіпсіздікті қамтамасыз етуге басты назар аудару болып табылады. Контейнерлер Linux ядросының кәдімгі механизмдері – cgroups, аттар кеңістігі және 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" жалаулары қосымша болып табылады. қамтылған - қорғау.

Жаңа шығарылымда:

  • Әкімшілік және бақылау контейнерлерінің мазмұны жаңартылды.
  • Оқшауланған контейнерлердің орындалу уақыты containerd 1.6.x тармағына жаңартылды.
  • Контейнерлердің жұмысын үйлестіретін фондық процестердің қайта іске қосылуы сертификаттар қоймасындағы өзгерістерден кейін қамтамасыз етіледі.
  • Жүктеу конфигурациясы бөлімі арқылы ядроның жүктеу параметрлерін орнату мүмкіндігі берілген.
  • dm-verity көмегімен түбірлік бөлімнің тұтастығын тексеру кезінде бос блоктарды елемеу қосылды.
  • /etc/hosts ішіндегі хост атауларын статикалық түрде байланыстыру мүмкіндігі берілген.
  • Netdog утилитасын пайдаланып желі конфигурациясын жасау мүмкіндігі қамтамасыз етілді (gener-net-config пәрмені қосылды).
  • Kubernetes 1.23 қолдауымен жаңа тарату опциялары ұсынылады. ConfigMapAndSecretChangeDetectionStrategy режимін өшіру арқылы Kubernetes жүйесіндегі подкасттарды іске қосу уақыты қысқарды. Жаңа kubelet параметрлері қосылды: провайдер идентификаторы және podPidsLimit.
  • Amazon Elastic Container Service (Amazon ECS) үшін жаңа «aws-ecs-1-nvidia» дистрибуциясы ұсынылды және NVIDIA драйверлерімен бірге келеді.
  • Microchip Smart Storage және MegaRAID SAS сақтау құрылғыларына қолдау қосылды. Broadcom чиптеріне негізделген Ethernet карталарына кеңейтілген қолдау.
  • Go және Rust тілдеріне арналған бумалар мен тәуелділіктердің жаңартылған нұсқалары, сондай-ақ үшінші тарап бағдарламалары бар бумалардың нұсқалары. Bottlerocket SDK 0.26.0 нұсқасына жаңартылды.

Ақпарат көзі: opennet.ru

пікір қалдыру