27.09.2021

Bottlerocket 1.2.0

Модераторам: я думаю стоит добавить соответствующий тег, чтобы люди могли на него подписаться и следить за новостями этого дистрибутива.

Доступен выпуск Linux-дистрибутива Bottlerocket 1.2.0, в развитии которого принимает участие компания Amazon для более эффективного и безопасного запуска изолированных контейнеров. Дистрибутив предоставляет атомарно и автоматически обновляемый неделимый системный образ, включающий ядро Linux и минимальное системное окружение, включающие только компоненты, необходимые для запуска контейнеров. В окружении задействованы systemd, Glibc, Buildroot, GRUB, конфигуратор сети wicked, runtime для изолированных контейнеров containerd, платформа оркестровки контейнеров Kubernetes, аутентификатор aws-iam-authenticator и агент Amazon ECS.

Инструментарий и управляющие компоненты дистрибутива написаны на языке Rust. Поддерживается запуск Bottlerocket в кластерах Amazon ECS и AWS EKS Kubernetes, а также создание произвольных сборок и редакций, допускающих применение различных инструментов оркестровки и runtime для контейнеров. Распространяется под лицензиями MIT и Apache 2.0.

Инструменты для управления контейнерами поставляются в отдельном контейнере, который включается по умолчанию и управляется через API и AWS SSM Agent. В базовом образе отсутствует шелл, SSH и интерпретируемые языки (Python или Perl и подобные) — средства для администратора и отладочные инструменты вынесены в отдельный служебный контейнер (по умолчанию отключен).

Ключевым отличием от похожих дистрибутивов, является повышенная безопасность в контексте усиления защиты системы от возможных угроз, усложнения эксплуатации уязвимостей в компонентах ОС и повышения изоляции контейнеров. Контейнеры создаются при помощи штатных механизмов ядра Linux — cgroups, пространств имён и seccomp. Также в дистрибутиве применяется SELinux в режиме «enforcing». При сборке по умолчанию применяются режимы компиляции –enable-default-pie и –enable-default-ssp для включения рандомизации адресного пространства исполняемых файлов (PIE) и защиты от переполнения стека через подстановку канареечных меток. Для пакетов, написанных на языке C/C++, дополнительно включаются флаги -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

Корневой раздел монтируется в режиме -ro, а раздел с настройками /etc монтируется в tmpfs и после перезапуска возвращает стандартные настройки. Прямое изменение файлов в каталоге /etc, таких как /etc/resolv.conf и /etc/containerd/config.toml, происходит через API либо при выносе функциональности в отдельные контейнеры. Для проверки целостности корневого раздела задействован модуль dm-verity, а в случае выявления изменений система перезагружается.

В новом выпуске:

  • Добавлена поддержка зеркал реестра образов контейнеров.
  • Добавлена возможность использования самоподписанных сертификатов.
  • Добавлен параметр для настройки имени хоста.
  • Обновлена версия предлагаемого по умолчанию административного контейнера.
  • Добавлены настройки topologyManagerPolicy и topologyManagerScope для kubelet.
  • Добавлена поддержка сжатия ядра при помощи алгоритма zstd.
  • Предоставлена возможность загрузки в VMware виртуальных машин в формате OVA (Open Virtualization Format).
  • Обновлён варианта дистрибутива aws-k8s-1.21 c поддержкой Kubernetes 1.21. Прекращена поддержка aws-k8s-1.16.
  • Обновлены версии пакетов и зависимости для языка Rust.

>>> Подробности

Источник.