Container Linux

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Container Linux
Разработчик CoreOS team, Red Hat
Семейство ОС Linux
Основана на Gentoo Linux
Исходный код открытый
Первый выпуск 3 октября 2013 года
Последняя версия 2512.3.0[1] (22 мая 2020 года)
Последняя тестовая версия 2513.2.0[2] (Beta) (22 мая 2020 года)
2514.1.0[3] (Alpha) (22 мая 2020 года)
Тип ядра монолитное (Linux kernel)
Лицензия Apache License 2.0[4][5]
Состояние Проект закрыт
Следующая Fedora CoreOS
RHEL CoreOS
Веб-сайт coreos.com

Container Linux (ранее CoreOS Linux) — легковесная операционная система с открытым исходным кодом на базе ядра Linux. Предназначена для создания инфраструктуры компьютерных кластеров, особое внимание уделено автоматизации, упрощению внедрения приложений, безопасности, надежности и масштабируемости. В качестве операционной системы Container Linux предоставляет лишь минимальную функциональность, необходимую для развертывания приложений внутри программных контейнеров, средства обнаружения сервисов и передачи настроек[6][7][8][9].

Container Linux является форком Chrome OS. Основа Container Linux была создана с помощью SDK из проекта Chromium OS, к которой добавлена новая функциональность. Container Linux поддерживает оборудование, часто используемое в серверах[8][10]. По состоянию на 2020 год разработка Container Linux прекращена.

Особенности

В Container Linux нет пакетного менеджера, все устанавливаемые приложения должны работать внутри собственных контейнеров, которые реализованы с помощью Docker на базе Linux Containers (LXC). LXC позволяет виртуализировать несколько независимых Linux контейнеров в рамках одного компьютера с Linux. Разделение ресурсов производится между несколькими программами пользовательского уровня без использования гипервизоров и полноценных виртуальных машин. Реализация использует подсистему ядра cgroups для изоляции, учёта и ограничения ресурсов (использование процессора, памяти, дискового и сетевого ввода-вывода и т. п.) для группы процессов[6][9][11].

В качестве демона инициализации (init) в Container Linux используется systemd, тесно интегрированный с сервисами Container Linux[6][12].

Обновления

В качестве меры повышения безопасности и надежности, Container Linux использует FastPatch — схему с двумя корневыми файловыми системами, одна из которых является рабочей и защищена от записи. Обновления устанавливаются на вторую файловую систему, которая становится рабочей после перезагрузки или исполнения kexec. Таким образом обеспечивается возможность быстро вернуться к предыдущей версии. Каждый раздел может быть криптографически подписан для повышения безопасности. Изменяемая часть файловой иерархии хранится на разделе «state», который занимает все оставшееся дисковое пространство[6][9][13][14].

Система распределения обновлений Container Linux основана на открытом проекте компании Google Omaha. Для управления обновлениями кластеров Container Linux предоставляет веб-интерфейс CoreUpdate, который позволяет делить узлы кластера на группы с различными политиками обновления, предоставляет статистику по версиям, распределяет обновления[13][15][16].

Инфраструктура для кластеров

На каждом компьютере кластера работает демон etcd, который позволяет обновлять настройки узлов. Взаимодействие с etcd осуществляется с помощью API на базе JSON и протокола HTTP, либо через утилиту командной строки etcdctl [6][9][17][18][19].

Демон fleet управляет программами systemd на уровне всего кластера. Взаимодействие с ним осуществляется с помощью утилиты fleetctl. Данные между узлами передаются поверх SSH туннелей[20][21][22][23].

Оба демона etcd и fleet написаны на языке Golang (Go) и распространяются под открытой лицензией Apache License 2.0[5][24].

Установка

Container Linux может быть постоянно установлена на жесткий диск сервера, загружаться через PXE или iPXE[25][26][27]. Также Container Linux поддерживает установку на таких системах аппаратной виртуализации как Amazon EC2, DigitalOcean, Google Compute Engine, OpenStack, QEMU/KVM, Vagrant, VMware[9][28][29].

Мнения

LWN.net написал обзор на CoreOS в 2014 году[30]:

Для тех, кто собирает большие операционные системы — веб-приложения, являющиеся ярким примером — у CoreOS, похоже, будет много интересной функциональности. Это должно позволить приложениям такого типа расти, и уменьшаться по мере необходимости по требованию, а также обеспечивать стабильную платформу, где обновления не являются головной болью. Для «массовой компиляции серверов» CoreOS, или что-то со многими из тех же характеристик, выглядит как будущее.

См. также

Примечания

  1. CoreOS Container Linux Release Notes # Stable channel (недоступная ссылка). Дата обращения: 22 мая 2020. Архивировано 11 ноября 2020 года.
  2. CoreOS Container Linux Release Notes # Beta channel (недоступная ссылка). Дата обращения: 22 мая 2020. Архивировано 11 ноября 2020 года.
  3. CoreOS Container Linux Release Notes # Alpha channel (недоступная ссылка). Дата обращения: 22 мая 2020. Архивировано 11 ноября 2020 года.
  4. CoreOS Pilot Agreement (недоступная ссылка). coreos.com (13 марта 2014). Дата обращения: 26 марта 2014. Архивировано 12 сентября 2014 года.
  5. 5,0 5,1 coreos/etcd: etcd/LICENSE at master. github.com (31 июля 2013). Дата обращения: 26 марта 2014. Архивировано 24 сентября 2019 года.
  6. 6,0 6,1 6,2 6,3 6,4 Libby Clark. Brandon Philips: How the CoreOS Linux Distro Uses Cgroups (недоступная ссылка). Linux.com (9 сентября 2013). Дата обращения: 13 февраля 2014. Архивировано 22 февраля 2014 года.
  7. Cade Metz. Linux Hackers Rebuild Internet From Silicon Valley Garage. Wired (21 августа 2013). Дата обращения: 13 февраля 2014. Архивировано 15 февраля 2014 года.
  8. 8,0 8,1 CoreOS – a new approach to Linux-based server systems. itnews2day.com (22 августа 2013). Дата обращения: 26 марта 2014. Архивировано 29 ноября 2014 года.
  9. 9,0 9,1 9,2 9,3 9,4 CoreOS documentation: Using CoreOS. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 23 февраля 2014 года.
  10. Brian Harrington. CoreOS: Anatomy of a CoreOS update. youtube.com. Rackspace (8 июля 2014). Дата обращения: 25 июля 2014. Архивировано 4 декабря 2015 года.
  11. CoreOS documentation (недоступная ссылка). coreos.com. Дата обращения: 13 февраля 2014. Архивировано 14 февраля 2014 года.
  12. CoreOS documentation (недоступная ссылка). coreos.com. Дата обращения: 13 февраля 2014. Архивировано 14 февраля 2014 года.
  13. 13,0 13,1 CoreOS documentation. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 14 февраля 2014 года.
  14. CoreOS documentation. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 23 февраля 2014 года.
  15. Package omaha. godoc.org (24 июня 2014). Дата обращения: 4 июля 2014. Архивировано 14 июля 2014 года.
  16. CoreOS documentation. coreos.com. Дата обращения: 4 июля 2014. Архивировано 3 июля 2014 года.
  17. CoreOS documentation. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 14 февраля 2014 года.
  18. CoreOS documentation. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 18 февраля 2014 года.
  19. Brandon Philips. etcd @ GoSF. speakerdeck.com (15 января 2014). Дата обращения: 13 февраля 2014. Архивировано 25 февраля 2014 года.
  20. CoreOS documentation. coreos.com. Дата обращения: 3 апреля 2014. Архивировано 7 апреля 2014 года.
  21. CoreOS documentation. coreos.com. Дата обращения: 3 апреля 2014. Архивировано 7 апреля 2014 года.
  22. coreos/fleet. github.com (18 февраля 2014). Дата обращения: 3 апреля 2014.
  23. coreos/fleet. github.com (7 марта 2014). Дата обращения: 3 апреля 2014. (недоступная ссылка)
  24. coreos/fleet. github.com (6 февраля 2014). Дата обращения: 3 апреля 2014.
  25. CoreOS documentation. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 23 февраля 2014 года.
  26. CoreOS documentation. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 14 февраля 2014 года.
  27. CoreOS documentation. coreos.com. Дата обращения: 13 февраля 2014. Архивировано 23 февраля 2014 года.
  28. Alex Crawford. CoreOS Image Now Available On DigitalOcean. coreos.com (5 сентября 2014). Дата обращения: 5 сентября 2014. Архивировано 5 сентября 2014 года.
  29. Jack Clark. Google brings futuristic Linux software CoreOS onto its cloud. The Register (23 мая 2014). Дата обращения: 26 мая 2014. Архивировано 26 мая 2014 года.
  30. CoreOS: A different kind of Linux distribution [LWN.net]. Дата обращения: 21 июня 2018. Архивировано 21 июня 2018 года.

Ссылки