Container Linux (ранее CoreOS Linux) — легковесная операционная система с открытым исходным кодом на базе ядра Linux. Предназначена для создания инфраструктуры компьютерных кластеров, особое внимание уделено автоматизации, упрощению внедрения приложений, безопасности, надежности и масштабируемости. В качестве операционной системы Container Linux предоставляет лишь минимальную функциональность, необходимую для развертывания приложений внутри программных контейнеров, средства обнаружения сервисов и передачи настроек.
Container Linux является форком Chrome OS. Основа Container Linux была создана с помощью SDK из проекта Chromium OS, к которой добавлена новая функциональность. Container Linux поддерживает оборудование, часто используемое в серверах. По состоянию на 2020 год разработка Container Linux прекращена.
Особенности В Container Linux нет пакетного менеджера, все устанавливаемые приложения должны работать внутри собственных контейнеров, которые реализованы с помощью Docker на базе Linux Containers (LXC). LXC позволяет виртуализировать несколько независимых Linux контейнеров в рамках одного компьютера с Linux. Разделение ресурсов производится между несколькими программами пользовательского уровня без использования гипервизоров и полноценных виртуальных машин. Реализация использует подсистему ядра cgroups для изоляции, учёта и ограничения ресурсов (использование процессора, памяти, дискового и сетевого ввода-вывода и т. п.) для группы процессов.
В качестве демона инициализации (init) в Container Linux используется systemd, тесно интегрированный с сервисами Container Linux.
Обновления В качестве меры повышения безопасности и надежности, Container Linux использует FastPatch — схему с двумя корневыми файловыми системами, одна из которых является рабочей и защищена от записи. Обновления устанавливаются на вторую файловую систему, которая становится рабочей после перезагрузки или исполнения kexec. Таким образом обеспечивается возможность быстро вернуться к предыдущей версии. Каждый раздел может быть криптографически подписан для повышения безопасности. Изменяемая часть файловой иерархии хранится на разделе «state», который занимает все оставшееся дисковое пространство.
Система распределения обновлений Container Linux основана на открытом проекте компании Google Omaha. Для управления обновлениями кластеров Container Linux предоставляет веб-интерфейс CoreUpdate, который позволяет делить узлы кластера на группы с различными политиками обновления, предоставляет статистику по версиям, распределяет обновления.
Инфраструктура для кластеров На каждом компьютере кластера работает демон etcd, который позволяет обновлять настройки узлов. Взаимодействие с etcd осуществляется с помощью API на базе JSON и протокола HTTP, либо через утилиту командной строки etcdctl .
Демон fleet управляет программами systemd на уровне всего кластера. Взаимодействие с ним осуществляется с помощью утилиты fleetctl. Данные между узлами передаются поверх SSH туннелей.
Оба демона etcd и fleet написаны на языке Golang (Go) и распространяются под открытой лицензией Apache License 2.0.
Установка
Container Linux может быть постоянно установлена на жесткий диск сервера, загружаться через PXE или iPXE. Также Container Linux поддерживает установку на таких системах аппаратной виртуализации как Amazon EC2, DigitalOcean, Google Compute Engine, OpenStack, QEMU/KVM, Vagrant, VMware.
Мнения LWN.net написал обзор на CoreOS в 2014 году:
Примечания
Ссылки
CoreOS documentation First glimpse at CoreOS CoreOS: Linux for the cloud and the datacenter CoreOS fleet architecture Official CoreOS images available on Google Compute Engine CoreOS source code on GitHub etcd source code on GitHub fleet source code on GitHub
Категория:Виртуализация Категория:Дистрибутивы Linux Категория:Программное обеспечение для Linux