Regional Container Lines
- 1 year ago
- 0
- 0
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 — схему с двумя корневыми файловыми системами , одна из которых является рабочей и защищена от записи. Обновления устанавливаются на вторую файловую систему, которая становится рабочей после перезагрузки или исполнения . Таким образом обеспечивается возможность быстро вернуться к предыдущей версии. Каждый раздел может быть криптографически подписан для повышения безопасности. Изменяемая часть файловой иерархии хранится на разделе «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 , , OpenStack , QEMU / KVM , Vagrant , VMware .
LWN.net написал обзор на CoreOS в 2014 году :
Для тех, кто собирает большие операционные системы — веб-приложения, являющиеся ярким примером — у CoreOS, похоже, будет много интересной функциональности. Это должно позволить приложениям такого типа расти, и уменьшаться по мере необходимости по требованию, а также обеспечивать стабильную платформу, где обновления не являются головной болью. Для «массовой компиляции серверов» CoreOS, или что-то со многими из тех же характеристик, выглядит как будущее.