Блог Amazon Web Services

Bottlerocket – операционная система с открытым кодом для запуска контейнеров

Можно с уверенностью сказать, что наша индустрия выбрала контейнеры в качестве основного способа для упаковки и масштабирования приложений. Наши клиенты активно используют Amazon ECS и Amazon EKS, и более 80% контейнеров, запущенных в облаке, работают на AWS.

Контейнеры позволяют легче масштабировать приложения, а инфраструктура для их запуска может включать в себя сотни и тысячи серверов (инстансов).  При таких масштабах возникают трудности с обслуживанием и управлением операционной системы серверов (инстансов). Несколько примеров:

  • Безопасность – установка дополнительных пакетов приложений для удовлетворения зависимостей может увеличить поверхность атаки.
  • Обновления – традиционный подход к обновлениям, основанный на использовании менеджеров пакетов – сложен, предрасположен к ошибкам и проблемам с зависимостями.
  • Накладные расходы – дополнительные неиспользуемые пакеты приложений занимают место на диске и, довольно часто, процессорное время. Из-за чего падает производительность и увеличивается время запуска.
  • Неконсистентность – разные пакеты приложений, установленные на разных серверах, и отличия в их конфигурации со временем могут негативно влиять на целостность кластеров.

Представляем Bottlerocket

Сегодня я хочу рассказать вам о Bottlerocket – новой операционной системе с открытым исходным кодом на базе Linux. Эта операционная система была специально разработана и оптимизирована для работы на серверах, предназначенных для запуска контейнеров.

Bottlerocket аккумулирует опыт, полученный нами за годы использования контейнеров в облаке. Эта операционная система включает только действительно необходимые для запуска контейнеров пакеты, а также хорошо интегрируется с актуальными оркестраторами контейнеров. Bottlerocket поддерживает Docker образы и образы, соответствующие Open Container Initiative (OCI) формату.

Для обновлений, вместо менеджера пакетов, Bottlerocket использует простую, основанную на образах модель, которая при необходимости обеспечивает быстрый и полный откат. Этот подход устраняет возможность возникновения конфликтов и ошибок, а также упрощает обновление кластеров при использовании оркестраторов, таких как EKS.

В дополнение к минимальному набору пакетов, файловая система в Bottlerocket доступна только для чтения и её целостность проверяется при загрузке с помощью dm-verity. SSH доступ не рекомендован и возможен только через отдельный admin контейнер, который вы можете включить в случае необходимости и использовать для диагностики.

Попробуйте Bottlerocket

Мы выпустили публичную версию для ознакомления (preview) Bottlerocket. Вы можете воспользоваться инструкцией по быстрому запуску для настройки EKS кластера c Bottlerocket нодами. Исходных код Bottlerocket доступен на GitHub.

Попробуйте Bottlerocket, сообщайте нам о проблемах, отправляйте pull-реквесты, и расскажите что вы думаете о ней!