Проект CentOS представил выпуск минималистичной операционной системы CentOS Atomic Host 7.20160203, предназначенной для запуска изолированных контейнеров, подготовленных и управляемых при помощи инструментария Docker, и поставляемой в форме монолитного целиком обновляемого образа. CentOS Atomic Host является пересборкой продукта Red Hat Enterprise Linux Atomic Host 7.2, в свою очередь базирующегося на наработках свободного проекта Atomic.
Сборки CentOS Atomic Host доступны в форме установочного ISO, образов виртуальных машин Vagrant (Libvirt, VirtualBox), qcow2 (OpenStack, AWS, Libvirt) и AMI (Amazon Machine Image). Основными компонентами CentOS Atomic Host являются пакеты с ядром Linux 3.10.0-327, docker-1.8.2-10, cloud-init-0.7.5-10,
atomic-1.6-6.gitca1e384, kubernetes-1.0.3-0.2, etcd-2.1.1-2,
ostree-2015.9-2 и flannel-0.5.3-8.
Atomic Host предоставляет базовое окружение, которое содержит только минимальный набор компонентов (systemd, journald, docker, rpm-OSTree, geard и т.п.), необходимых для запуска и управления изолированными контейнерами. Все пакеты, обеспечивающие работу конечных приложений, поставляются непосредственно в составе контейнеров, а хост-система не содержит ничего лишнего. Состав хост-системы неделим и обрабатывается как целостный образ, без разбиения на отдельные пакеты. При этом сам образ формируется на основе штатных RPM-пакетов CentOS 7 при помощи системы rpm-ostree.
Контейнеры не привязаны к базовой системе и могут перемещаться с одного сервера на другой, а также централизованно обновляться и заменяться без перезапуска сервера. Поставка сервисов в форме контейнеров упрощает тестирование продукта, например, новая версия приложения или обновление состава контейнера могут быть предварительно протестированы на машине разработчика, а затем в неизменном виде перенесены на рабочий сервер, заменив прошлый рабочий образ контейнера. В случае сбоя сервера, контейнер с минимальной задержкой может быть поднят на другой машине.
Особенности Atomic Host:
- Обновление окружения Atomic Host производится атомарно, через замену образа всей системы, без разбивки на отдельные пакеты, что даёт возможность легко откатиться на прошлое состояние в случае проблем.
- Для управления кластерами контейнеров задействован фреймворк Kubernetes, открытый компанией Google.
- Помимо cgroups и пространств имён дополнительная изоляция приложений внутри контейнеров обеспечивается системой SELinux, что добавляет дополнительный барьер защиты.
- Окружение Atomic Host может быть развёрнуто не только на физических серверах, но и в виртуальных машинах, приватных и публичных облачных окружениях, включая возможность запуска под управлением Amazon Web Services и Google Compute Engine.
- Выполняемые в окружении Atomic Host образы контейнеров, оформляются в формате Docker;
- Для обновления системного окружения используется технология OSTree, при которой системный образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива (например, можно быстро откатить систему к прошлому состоянию). RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree;
- Предоставляются средства для инкрементального применения обновлений, избавляющие от необходимости полной замены образа при каждом обновлении;
- Установка и привязка контейнеров к systemd, а также координация выполнения контейнеров на разных хостах, осуществляется при помощи нового инструмента GearD. GearD войдёт в состав будущего выпуска платформы OpenShift и берёт на себя задачи быстрой доставки и развёртывания кода приложений в программных окружениях на базе изолированных контейнеров с использованием методов непрерывной интеграции;
- Поддержка запуска привилегированных контейнеров, позволяющих распространять в форме контейнеров управляющие приложения, которым требуется доступ к содержимому базовой хост-системы или к другим контейнерам.