Блог 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-реквесты, и расскажите что вы думаете о ней!