Об этом проекте

Bottlerocket OS — это бесплатная операционная система с открытым исходным кодом на базе Linux, разработанная Amazon для безопасного и надёжного размещения контейнерных рабочих нагрузок. В отличие от традиционных дистрибутивов общего назначения, Bottlerocket минимизирует поверхность атаки, исключая из среды выполнения по умолчанию ненужные компоненты, такие как менеджеры пакетов и интерактивные оболочки. Архитектура системы ориентирована на безопасность, удобство сопровождения и согласованность. Ключевые особенности: - Неизменяемая файловая система: корневая файловая система доступна только для чтения, что предотвращает несанкционированные или случайные изменения, способные нарушить стабильность. - Конфигурация через API: параметры системы управляются через локальный HTTP API вместо ручного редактирования файлов. Это обеспечивает структурированные и проверенные изменения конфигурации, которые автоматически переносятся при обновлениях. - Надёжные обновления: в Bottlerocket используется механизм обновлений с двумя разделами (разделы A/B). Система загружает полные образы файловой системы, защищённые с помощью The Update Framework (TUF), и перезагружается в новую версию. Если загрузка не удаётся, выполняется автоматический откат к предыдущему состоянию. - Хост-контейнеры: задачи управления изолированы в отдельных контейнерах (управляющий и административный контейнеры), работающих вне основного оркестратора, что гарантирует отсутствие влияния служебных операций на производительность рабочих нагрузок. Поддерживаемые среды: Bottlerocket предлагает отдельные варианты, адаптированные под различные оркестраторы контейнеров и облачные платформы: - AWS EKS (Kubernetes): варианты от `aws-k8s-1.31` до `1.36`, включая версии с поддержкой графических процессоров NVIDIA. - AWS ECS: варианты, такие как `aws-ecs-2` и `aws-ecs-3`, поддерживающие стандартный режим и режим соответствия FIPS. - VMware: варианты рабочих узлов Kubernetes (`vmware-k8s-*`). Доступ и управление: По умолчанию SSH отключён для повышения безопасности. Администраторы могут получить доступ к системе следующими способами: 1. Управляющий контейнер: использует AWS Systems Manager (SSM) Session Manager для выполнения команд и просмотра журналов без сетевого доступа. 2. Административный контейнер: необязательный контейнер, предоставляющий доступ по SSH для расширенной отладки и доступа к корневой оболочке через `sheltie`. Конфигурация выполняется с помощью инструмента `apiclient` или путём передачи параметров в формате TOML/JSON при инициализации экземпляра. Система поддерживает различные параметры, включая интеграцию с кластером Kubernetes, настройку агента ECS, сетевые прокси, NTP, параметры ядра и пользовательские сертификаты ЦС. Сообщество и участие: Развитию Bottlerocket способствует участие сообщества через обсуждения на GitHub и группы Meetup. Вклад в проект приветствуется через руководство для участников. О проблемах безопасности следует сообщать напрямую команде безопасности, а не в публичные системы отслеживания ошибок. Архитектуры: ОС поддерживает архитектуры x86_64 и ARM64 (aarch64), что делает её подходящей для широкого спектра аппаратных конфигураций у поддерживаемых облачных провайдеров.