Введение
Контейнерная ОС (Container OS) – специализированный дистрибутив Linux, разработанный исключительно для запуска контейнеров и не предназначенный для установки традиционного ПО. В отличие от универсальных дистрибутивов (Ubuntu, CentOS), контейнерная ОС содержит только компоненты, необходимые для работы container runtime (Docker, containerd) и оркестраторов (Kubernetes).
Ключевые характеристики: immutable корневая файловая система (read-only), атомарные обновления, отсутствие пакетного менеджера, минимальная поверхность атаки.
История и контекст
Пионером стала CoreOS Container Linux, представленная компанией CoreOS в 2013 году. Компания сформулировала принцип immutable infrastructure для операционных систем. После приобретения CoreOS компанией Red Hat в 2018 году и прекращения CoreOS Container Linux в 2020-м эстафету принял Flatcar Container Linux – форк, созданный немецкой Kinvolk в 2018 году и приобретённый Microsoft в 2021-м. В 2024 году Flatcar вошёл в инкубацию CNCF. Параллельно Red Hat развивает Fedora CoreOS.
Как это работает
Принципы контейнерной ОС на примере Flatcar:
- Immutable /usr – системный раздел монтируется только для чтения; изменения невозможны в runtime;
- Атомарные обновления (A/B partitioning) – два загрузочных раздела USR-A и USR-B; обновление записывается в неактивный раздел, переключение при следующей перезагрузке; автоматический откат при сбое;
- Ignition – инструмент начальной конфигурации (аналог cloud-init), выполняющийся в initrd до старта systemd;
- Нет пакетного менеджера – всё ПО запускается в контейнерах; обновления базовой системы – только через атомарные OS-обновления.
Где применяется
- Worker-узлы Kubernetes-кластеров (AKS, EKS используют Flatcar/Bottlerocket);
- Immutable infrastructure – узлы пересоздаются, а не обновляются вручную;
- Edge-вычисления – компактная ОС для промышленных шлюзов с контейнерами;
- Облачные платформы – Azure рекомендует Flatcar для AKS worker nodes;
- Высокозащищённые окружения – минимальная поверхность атаки снижает риски CVE.
Преимущества и ограничения
Преимущества: неизменяемость исключает дрейф конфигурации (configuration drift); малая поверхность атаки; автоматические обновления безопасности; предсказуемое поведение всего кластера; быстрый provisioning новых узлов.
Ограничения: нельзя установить произвольное ПО напрямую – только в контейнерах; отладка системных проблем сложнее; не подходит для традиционных workload'ов без контейнеризации.
Связь с другими понятиями
Контейнерная ОС является базой для узлов Kubernetes – основного оркестратора контейнеров. Концепция immutable infrastructure реализует принципы IaC (Terraform, Ansible). Serverless-платформы также работают поверх контейнерных ОС. DevOps практика «cattle, not pets» (узлы заменяются, не лечатся) лежит в основе идеологии контейнерных ОС.