Выпуск RancherOS 1.1, минималистичной ОС на базе контейнерной изоляции
Представлен выпуск операционной системы RancherOS 1.1, предоставляющей средства для изолированного выполнения приложений. Проект основан несколькими известными разработчиками из компании Citrix и бывшими руководителями Cloud.com. Код системы написан на языке Go и распространяется под лицензией Apache. Размер загрузочного образа составляет всего 59 Мб. Кроме установки на отдельный сервер, система также может быть развёрнута в окружении облачных платформ и систем виртуализации Amazon EC2, Digital Ocean, Docker Machine, GCE, KVM, OpenStack, Packet, Vagrant, VMware и VirtualBox, а также установлена на платах Raspberry Pi.
Небольшой размер загрузочного образа объясняется тем, что 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. Между перезапусками сохраняется только содержимое разделов /opt и /home, всё остальное возвращается в исходное состояние. Конфигурация окружения передаётся во время загрузки через механизм cloud-init или определяется командой «rancherctl config» и затем сохраняется в специальный файл конфигурации.
Ключевые новшества RancherOS 1.1:
- Обновлены системные компоненты, в том числе ядро Linux 4.9.45 и инструментарий Docker. По умолчанию предлагается Docker 17.03.2, но в качестве опции доступен выпуск 17.06.1 и более ранние версии, начиная с 1.12;
- Добавлена поддержка гипервизора VMWare ESXi, который автоматически определяется и для него активируется набор модулей open-vm-tools во время загрузки. Также автоматически загружаются настройки, определённые в VMWare;
- Обеспечена предварительная поддержка загрузки модулей для гипервизоров Xen, KVM и HyperV, но соответствующие сервисы для них пока не включены в поставку;
- Добавлена поддержка автоопределения систем виртуализации vbox, xen и paralells;
- Реализовано интерактивное загрузочное меню на базе Syslinux с опциями для отладки, входа, восстановления и редактирования настроек;
- Добавлена консоль для восстановления в случае сбоя, вызываемая на раннем этапе загрузки;
- Добавлен сервис для ротации логов и cron для периодического выполнения заданий;
- Обеспечено сохранение отладочной информации в файл /var/log/boot и добавлена возможность использования параметров ядра netconsole для отправки логов на внешний сервер;
- Добавлена возможность перезагрузки с использованием kexec (reboot --kexec) при которой ядро перезагружается без передачи управления BIOS;
- Добавлена возможность монтирования сетевых разделов по NFS в конфигурации на базе cloud-config.
© OpenNet