Выпуск RancherOS 1.5, ОС на базе контейнерной изоляции
Опубликован выпуск операционной системы RancherOS 1.5, предоставляющей средства для изолированного выполнения приложений. Проект основан несколькими известными разработчиками из компании Citrix и бывшими руководителями Cloud.com. Код системы написан на языке Go и распространяется под лицензией Apache. Размер загрузочного образа составляет 128 Мб. Кроме установки на отдельный сервер, система также может быть развернута в окружении облачных платформ и систем виртуализации 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, предоставляющий консольное окружение. По умолчанию консольное окружение доступно по ssh и сформировано с использованием инструментария Busybox, но при желании в качестве консоли можно подключить полноценные программные окружения на основе Alpine, Ubuntu, CentOS или Fedora. Для настройки также можно использовать web-интерфейс Rancher.io. Конфигурация окружения передается во время загрузки через механизм cloud-init или определяется командой "rancherctl config" и затем сохраняется в специальный файл конфигурации. Между перезапусками сохраняется только содержимое разделов /opt и /home, все остальное возвращается в исходное состояние.
Ключевые новшества RancherOS 1.5:
- Обновлены системные компоненты, в том числе ядро Linux 4.14.85 (для Raspberry Pi - 4.9.80), Buildroot 2018.02.7, Docker 18.06.1. Окружения для контейнера с консолью обновлены до Alpine 3.8, CentOS 7.5.1804, Debian 9, Fedora 28 и Ubuntu 18.04.
- Поддержка шифрования разделов при помощи инструментария LUKS;
- Поддержка подключение к беспроводным сетям (WiFi и 4G/LTE );
- Возможность подключния собственных rootfs для initrd;
- Поддержка работы под управлением гипервизора Hyper-V;
- Поддержка образов в формате VMDK (VMware, Virtualbox);
- Возможность отключения доступа к системе из консоли (отключение auto-login и игнорирование rancher.password);
- Поддержка запуска нескольких разных демонов user-docker;
- Экспериментальная поддержка серверов на базе архитекутры ARM;
- Поддержка встраивания альтернативных реализаций управляющих консолей;
- Поддержка профилей для сетевого протокола vSphere;
- Оптимизация скорости загрузки и потребления памяти, в том числе отключена повторная загрузка системного образа, предоставлена возможнлость отключения cloud-init и задействован gzip для сжатия initrd;
- В состав всех управляющих консолей включена команда "docker top", в консоли на базе CentOS и Fedora добавлена утилита scp, а в предлагаемую по умолчанию консоль добавлены инструменты xfsprogs.