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 года)
Поддерживаемые платформы x86-64
Тип ядра монолитное (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. 1 2 coreos/etcd: etcd/LICENSE at master  (неопр.). github.com (31 июля 2013). Дата обращения: 26 марта 2014. Архивировано 24 сентября 2019 года.
  6. 1 2 3 4 5 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. 1 2 CoreOS – a new approach to Linux-based server systems  (неопр.). itnews2day.com (22 августа 2013). Дата обращения: 26 марта 2014. Архивировано 29 ноября 2014 года.
  9. 1 2 3 4 5 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. 1 2 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 года.

Ссылки

  • coreos.com/docs/ — официальный сайт Container Linux
  • CoreOS documentation Архивная копия от 5 сентября 2014 на Wayback Machine
  • First glimpse at CoreOS Архивная копия от 3 сентября 2014 на Wayback Machine
  • CoreOS: Linux for the cloud and the datacenter Архивная копия от 13 сентября 2014 на Wayback Machine
  • CoreOS fleet architecture Архивная копия от 3 октября 2018 на Wayback Machine
  • Official CoreOS images available on Google Compute Engine Архивная копия от 7 сентября 2014 на Wayback Machine
  • CoreOS source code on GitHub Архивная копия от 15 января 2016 на Wayback Machine
  • etcd source code on GitHub Архивная копия от 8 декабря 2020 на Wayback Machine
  • fleet source code on GitHub Архивная копия от 19 февраля 2015 на Wayback Machine
  • CoreOS на сайте DistroWatch
Перейти к шаблону «Linux»
Проект Linux
Общее
Распространение
Приложения
Персоналии
СМИ
Мобильность
Прочее
Перейти к шаблону «Unix-like»
  • Архитектура[англ.]
  • Файловая система[англ.]
  • История[англ.]
  • Философия
  • Безопасность[англ.]
  • Оболочка
Операционные системы
Слои совместимости
Категория Категория Викисклад Викиучебник Викицитатник
Перейти к шаблону «Аспекты операционных систем»
  • Сравнение[англ.]
  • Доля использования[англ.]
  • История
Типы
Ядро
Архитектура
Компоненты
Управление
процессами
Концепции
Алгоритмы
планирования
  • Упреждающее планирование с фиксированным приоритетом[англ.]
  • Многоуровневые очереди с обратной связью[англ.]
  • RR
  • SJN
  • SRT
  • FIFO
  • LIFO
Управление и
адресация памяти
Средства загрузки
и инициализации
Прочее
Категория Категория Викисклад Викиучебник Викисловарь