Первый стабильный выпуск RancherOS, минималистичной ОС на базе контейнерной изоляции
После двух лет разработки увидела свет операционная система RancherOS 1.0, предоставляющая средства для изолированного выполнения приложений. RancherOS 1.0 преподносится как первый стабильный выпуск, готовый к широкому внедрению. Проект основан несколькими известными разработчиками из компании Citrix и бывшими руководителями Cloud.com. Код системы написан на языке Go и распространяется под лицензией Apache.
Размер загрузочного образа RancherOS составляет всего 54 Мб. Кроме установки на отдельный сервер, система также может быть развернута в окружении облачных платформ и систем виртуализации Amazon EC2, Digital Ocean, Docker Machine, GCE, KVM, OpenStack, Packet, Vagrant, VMware и VirtualBox.
RancherOS предоставляет минимальную обвязку для запуска изолированных контейнеров и по решаемым задачам напоминает проекты Atomic и CoreOS, отличаясь от них отказом от системного менеджера systemd в пользу собственной системы инициализации, построенной непосредственно на базе инструментария Docker. Запуск сервисов в RancherOS осуществляется через запуск готовых контейнеров с использованием compose-файлов (docker-compose.yml).
ОС RancherOS реализована в виде набора контейнеров, которыми управляет системное окружение на базе ядра Linux, образа начальной загрузки (initrd) и минимального инструментария, необходимого для запуска контейнеров на базе системы Docker. Все остальное, включая udev, dhcp, ntp, cloud-init и rsyslog, запускается внутри отдельных системных контейнеров. Над контейнерами функционирует только процесс Docker, выполняемый с PID 1. Пользовательский инструментарий и демон dockerd для запуска пользовательских контейнеров также выполняется в отдельном контейнере User Docker.
Имеется также специальный системный контейнер Сonsole, предоставляющий пользовательское окружения для управления RancherOS в консольном режиме. По умолчанию консольное окружение доступно по ssh и сформировано с использованием инструментария Busybox, но при желании в качестве консоли можно подключить полноценные программные окружения на основе Ubuntu, CentOS или Fedora. Для настройки также можно использовать web-интерфейс Rancher.io.
Обновление производится атомарно на уровне обновления целых контейнеров. В форме образов docker также обновляются ядро и образ начальной загрузки (initrd). Между перезапусками сохраняется только содержимое разделов /opt и /home, все остальное возвращается в исходное состояние. Конфигурация окружения передается во время загрузки через механизм cloud-init или определяется командой "rancherctl config" и затем сохраняется в специальный файл конфигурации.