Контейнер Linux - Container Linux

Контейнер Linux
Логотип контейнера Linux
РазработчикКоманда CoreOS, Красная шляпа
Семейство ОСLinux (на основе Gentoo Linux )
Рабочее состояниеКонец жизни объявил[1]
Исходная модельОткрытый исходный код
изначальный выпуск3 октября 2013 г.; 7 лет назад (2013-10-03)[2]
Последний релиз2247.5.0[3] / 15 октября 2019 г.; 13 месяцев назад (2019-10-15)
Последний предварительный просмотр2275.2.0[4] / 15 октября 2019 г.; 13 месяцев назад (2019-10-15)
Маркетинговая цельСерверы и кластеры
Платформыx86-64[5]
Ядро типМонолитный (Ядро Linux )
ЛицензияЛицензия Apache 2.0[6][7]
ПреемникFedora CoreOS
RHEL CoreOS
Официальный веб-сайтCoreos.com/Операционные системы/ docs/самый последний/

Контейнер Linux (ранее CoreOS Linux) является Открытый исходный код легкий Операционная система на основе Ядро Linux и предназначен для обеспечения инфраструктуры сгруппированный развертываний, уделяя особое внимание автоматизации, простоте развертывания приложений, безопасности, надежности и масштабируемость. Как операционная система Container Linux предоставляет только минимальную функциональность, необходимую для развертывания приложений внутри программные контейнеры, вместе со встроенными механизмами для обнаружение службы и совместное использование конфигурации.[8][9][10][11][12]

Контейнерный Linux разделяет основы с Gentoo Linux,[13][14] Chrome OS, и Chromium OS через общий комплект для разработки программного обеспечения (SDK). В контейнере Linux добавлены новые функции и возможности настройки для этой общей основы для поддержки серверного оборудования и вариантов использования.[11][15]:7:02 По состоянию на январь 2015 г., CoreOS активно разрабатывают, в первую очередь, Алекс Полви, Брэндон Филипс и Майкл Марино,[10] с его основными функциями, доступными как стабильный выпуск.[16][17][18]

Команда CoreOS анонсировала конец жизни для Container Linux 26 мая 2020 г.,[1] предлагая Fedora CoreOS,[19] и RHEL CoreOS в качестве замены, оба на основе Красная шляпа.

Обзор

Контейнер Linux не предоставляет менеджер пакетов как способ распространения приложений с полезной нагрузкой, требуя, чтобы вместо этого все приложения работали внутри своих контейнеров. Экземпляр Container Linux, выступающий в качестве единого управляющего хоста, использует базовый виртуализация на уровне операционной системы функции ядра Linux для создания и настройки нескольких контейнеров, которые работают как изолированные Linux системы. Туда, ресурс разделение между контейнерами осуществляется через несколько изолированных пространство пользователя экземпляров вместо использования гипервизор и обеспечение полноценного виртуальные машины. Этот подход основан на ядре Linux cgroups и пространства имен функциональные возможности,[20][21] которые вместе предоставляют возможности ограничивать, учитывать и изолировать использование ресурсов (ЦПУ, память, диск Ввод / вывод и т. д.) для коллекций пользовательского пространства процессы.[9][12][22]

Изначально контейнер Linux использовался исключительно Докер как компонент, обеспечивающий дополнительный уровень абстракции и интерфейс[23] к функциям виртуализации на уровне операционной системы ядра Linux, а также предоставлению стандартизированного формата для контейнеров, который позволяет приложениям работать в различных средах.[9][22] В декабре 2014 года CoreOS выпустила и начала поддерживать rkt (изначально выпущен как Ракета) в качестве альтернативы Docker, предоставляя через него другой стандартизированный формат образов контейнеров приложений, соответствующее определение контейнера среда выполнения, а протокол для обнаружения и получения изображений контейнеров.[24][25][26][27] CoreOS предоставляет rkt как реализацию так называемого контейнер приложения (appc) спецификация, описывающая требуемые свойства образ контейнера приложения (ACI); CoreOS инициировала appc и ACI как независимый набор спецификаций, управляемый комитетом,[28][29] стремясь к тому, чтобы они стали частью независимой от поставщика и операционной системы Инициатива открытого контейнера (OCI; первоначально назывался Открытый контейнерный проект или OCP[30]) стандарт контейнеризации, о котором было объявлено[кем? ] в июне 2015 года.[31][32][33]

Контейнер Linux использует ебилд скрипты из Gentoo Linux для автоматизированных сборник компонентов системы,[13][14] и использует systemd в качестве основного в этом система с тесной интеграцией между systemd и различными внутренними механизмами Container Linux.[9][34]

Распространение обновлений

Контейнер Linux обеспечивает дополнительную безопасность и надежность своей операционной системы. обновления используя FastPatch как схема с двумя разделами для части установки, доступной только для чтения, что означает, что обновления выполняются целиком и устанавливаются на пассивную вторичную загрузку раздел который становится активным после перезагрузки или kexec. Такой подход позволяет избежать возможных проблем, возникающих при обновлении только определенных частей операционной системы, обеспечивает простой откат до заведомо стабильной версии операционной системы и позволяет изменять каждый загрузочный раздел. подписанный для дополнительной безопасности.[9][12][35] Корневой раздел и его корневая файловая система автоматически меняются размеры, чтобы заполнить все доступное дисковое пространство при перезагрузке; в то время как корневой раздел предоставляет пространство для чтения и записи, сама операционная система установленный только для чтения под / usr.[36][37][38]

Чтобы гарантировать, что только определенная часть кластер перезагружается сразу после применения обновлений операционной системы, сохраняя таким образом ресурсы, необходимые для запуска развернутых приложений, CoreOS предоставляет слесарь как перезагрузка менеджер для контейнеров Linux.[39] Используя слесарь, можно выбирать между различными стратегиями обновления, которые определяются тем, как перезагрузки выполняются на последнем этапе применения обновлений; например, можно настроить, сколько элементов кластера могут перезагружаться одновременно. Внутри слесарь работает как слесарь демон который выполняется на членах кластера, а слесарь командная строка Утилита управляет параметрами конфигурации.[40][41] Слесарь написан в Язык Go и распространяется на условиях Лицензия Apache 2.0.[42]

Система распространения обновлений, используемая в Container Linux, основана на Google открытый исходный код Омаха проект, который обеспечивает механизм для развертывания обновлений и лежащих в основе ответ на запрос протокол на основе XML.[5][43][44] Кроме того, CoreOS предоставляет CoreUpdate как веб-сайт приборная панель для управления обновлениями в масштабе кластера. Операции, доступные через CoreUpdate, включают в себя назначение членов кластера различным группам, которые используют настроенные политики обновлений, анализ разбивки версий контейнера Linux в масштабе кластера, остановку и перезапуск обновлений, а также просмотр записанных журналов обновлений. CoreUpdate также предоставляет HTTP -основан API что позволяет интегрировать его со сторонними утилитами или системы развертывания.[35][45][46]

Кластерная инфраструктура

Высокоуровневая иллюстрация кластерной архитектуры CoreOS[47]

Контейнер Linux предоставляет etcd, демон, который работает на всех компьютерах в кластере и предоставляет динамический реестр конфигурации, позволяющий легко и надежно обмениваться различными данными конфигурации между участниками кластера.[5][36] Поскольку данные типа "ключ-значение" хранится в etcd автоматически распределен и воспроизведен с автоматизированным главные выборы и консенсус учреждение, использующее Плот алгоритма, все изменения в хранимых данных отражаются по всему кластеру, а достигнутые избыточность предотвращает отказ отдельных элементов кластера от потери данных.[27][48] Помимо управления конфигурацией, etcd также предоставляет обнаружение службы позволяя развернутым приложениям сообщать о себе и предлагаемых ими услугах. Связь с etcd осуществляется через открытую ОТДЫХ на основе API, который внутренне использует JSON поверх HTTP; API можно использовать напрямую (через завиток или же wget, например), или косвенно через etcdctl, которая представляет собой специализированную утилиту командной строки, также предоставляемую CoreOS.[9][12][49][50][51] Etcd также используется в Kubernetes программного обеспечения.

Контейнер Linux также предоставляет флот диспетчер кластера, который контролирует отдельные экземпляры systemd контейнера Linux на уровне кластера. По состоянию на 2017 год «флот» больше не активно развивается и заменен на Kubernetes.[52] Используя флот, Контейнер Linux создает распределенную система инициализации который связывает отдельные экземпляры systemd и кластерный etcd развертывание;[48] внутри, флот демон общается с локальным systemd экземпляров более D-автобус, и с etcd развертывание через открытый API. С помощью флот позволяет развертывать один или несколько контейнеры на уровне кластера, с более продвинутыми параметрами, включая избыточность, аварийное переключение, развертывание на определенных элементах кластера, зависимости между контейнерами и групповое развертывание контейнеров. Утилита командной строки под названием fleetctl используется для настройки и мониторинга этой распределенной системы инициализации;[53] внутренне он общается с флот демон, использующий API на основе JSON поверх HTTP, который также можно использовать напрямую. При использовании локально на члене кластера fleetctl общается с местными флот экземпляр над Доменный сокет Unix; при использовании с внешнего хоста, SSH-туннелирование используется с аутентификацией через общедоступные ключи SSH.[54][55][56][57][58]

Все вышеупомянутые демоны и утилиты командной строки (etcd, etcdctl, флот и fleetctl) написаны на языке Go и распространяются в соответствии с условиями Apache License 2.0.[7][59]

Развертывание

При работе на выделенном оборудовании Container Linux может быть постоянно установлен в локальное хранилище, например привод жесткого диска (HDD) или твердотельный накопитель (SSD),[60] или загрузился удаленно по сети с помощью Среда выполнения предварительной загрузки (PXE) в целом или iPXE как одна из его реализаций.[61][62] CoreOS также поддерживает развертывание на различных аппаратная виртуализация платформы, в том числе Amazon EC2, DigitalOcean, Google Compute Engine, Microsoft Azure, OpenStack, QEMU /KVM, Бродяга и VMware.[12][63][64][65] Контейнер Linux также можно установить на Citrix XenServer, учитывая, что существует «шаблон» для CoreOS.

Контейнерный Linux также можно развернуть через его коммерческий дистрибутив, называемый Тектонический, который дополнительно интегрирует Google Kubernetes как утилита управления кластером. По состоянию на апрель 2015 г., Tectonic планируется предлагать как бета-версия программного обеспечения для выбора клиентов.[28][66][67] Кроме того, CoreOS предоставляет Фланель как компонент, реализующий оверлейная сеть требуется в первую очередь для интеграции с Kubernetes.[28][68][69]

По состоянию на февраль 2015 г., Container Linux поддерживает только x86-64 архитектура.[5]

Производные

После приобретения CoreOS, Inc.[70] в январе 2018 года Red Hat объявила[71] что он будет объединять CoreOS Container Linux с Red Hat Project Atomic, чтобы создать новую операционную систему Red Hat CoreOS, одновременно объединяя исходное сообщество Fedora Project с открытым исходным кодом вокруг Fedora CoreOS, объединяя технологии обоих предшественников.

6 марта 2018 г. компания Kinvolk GmbH объявила[72] Контейнер-платформа Linux, производная от CoreOS Container Linux. Это отслеживает выпуски альфа / бета / стабильного канала CoreOS, с экспериментальным каналом выпуска Edge, добавленным в мае 2019 года.[73]

Прием

LWN.net рассмотрел CoreOS в 2014 году:[74]

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

Смотрите также

Рекомендации

  1. ^ а б «Объявление об окончании срока службы контейнера CoreOS для Linux». coreos.com. Получено 16 августа, 2020.
  2. ^ "coreos / manifest: выпуск v94.0.0 (контейнер Linux v94.0.0)". github.com. 3 октября 2013 г.. Получено 22 сентября, 2014.
  3. ^ «Примечания к выпуску контейнера CoreOS для Linux # стабильный канал». coreos.com. 15 октября 2019 г.,. Получено 4 ноября, 2019.
  4. ^ «Примечания к выпуску контейнера CoreOS для Linux # Альфа-канал». coreos.com. 15 октября 2019 г.,. Получено 4 ноября, 2019.
  5. ^ а б c d Тимоти Прикетт Морган (15 февраля 2015 г.). «CoreOS гипермасштабирует Linux, делая его невидимым». nextplatform.com. Получено 14 июня, 2015.
  6. ^ «Пилотное соглашение CoreOS». coreos.com. 13 марта 2014 г. Архивировано с оригинал 12 сентября 2014 г.. Получено 26 марта, 2014.
  7. ^ а б "coreos / etcd: etcd / LICENSE at master". github.com. 31 июля 2013 г.. Получено 26 марта, 2014.
  8. ^ «CoreOS Linux теперь называется Container Linux». coreos.com. Получено 20 декабря, 2016.
  9. ^ а б c d е ж Либби Кларк (9 сентября 2013 г.). «Брэндон Филипс: как дистрибутив CoreOS Linux использует Cgroups». Linux.com. Архивировано из оригинал 22 февраля 2014 г.. Получено 13 февраля, 2014.
  10. ^ а б Кейд Мец (21 августа 2013 г.). «Linux-хакеры восстанавливают Интернет из гаража Кремниевой долины». Проводной. Получено 13 февраля, 2014.
  11. ^ а б «CoreOS - новый подход к серверным системам на базе Linux». itnews2day.com. 22 августа 2013 г.. Получено 26 марта, 2014.
  12. ^ а б c d е «Документация CoreOS: Использование CoreOS». coreos.com. Архивировано из оригинал 23 февраля 2014 г.. Получено 13 февраля, 2014.
  13. ^ а б «Сборка образов для разработки: Обновление ебилдов, устойчивых к портированию, из Gentoo». coreos.com. Архивировано из оригинал 14 июля 2017 г.. Получено 24 мая, 2016.
  14. ^ а б «Распределения на основе Gentoo». gentoo.org. 25 марта 2016 г.. Получено 24 мая, 2016.
  15. ^ Брайан Харрингтон (8 июля 2014 г.). «CoreOS: анатомия обновления CoreOS». youtube.com. Rackspace. Получено 25 июля, 2014.
  16. ^ Алекс Полви (25 июля 2014 г.). «Стабильный выпуск CoreOS». coreos.com. Получено 28 августа, 2014.
  17. ^ «Примечания к выпуску CoreOS». coreos.com. Получено 28 августа, 2014.
  18. ^ Брэндон Филипс (28 января 2015 г.). «Выпуск etcd 2.0 - первый крупный стабильный выпуск». coreos.com. Получено 14 июня, 2015.
  19. ^ "Документация Fedora CoreOS :: Сайт документации Fedora". docs.fedoraproject.org. Получено 16 августа, 2020.
  20. ^ Джонатан Корбет (29 октября 2007 г.). «Записки из контейнера». LWN.net. Получено 3 июля, 2016.
  21. ^ Джейк Эдж (19 ноября 2014 г.). "Пространства имен контрольной группы". LWN.net. Получено 3 июля, 2016.
  22. ^ а б «Документация CoreOS: Использование Docker с CoreOS». coreos.com. Архивировано из оригинал 4 августа 2016 г.. Получено 14 июня, 2015.
  23. ^ «Docker 0.9: Введение в драйверы исполнения и libcontainer». docker.com. 10 марта 2014 г.. Получено 20 января, 2015.
  24. ^ Либби Кларк (30 января 2015 г.). «Соучредитель CoreOS Алекс Полви говорит о контейнерах, Rocket vs. Docker и многом другом». Linux.com. Получено 14 июня, 2015.
  25. ^ Чарльз Бэбкок (20 февраля 2015 г.). «Ракетные контейнеры: как CoreOS планирует бросить вызов Docker». informationweek.com. Получено 14 июня, 2015.
  26. ^ Алекс Полви (1 декабря 2014 г.). "CoreOS создает среду выполнения контейнера, rkt". coreos.com. Получено 14 июня, 2015.
  27. ^ а б Джош Беркус (4 февраля 2015 г.). «Новые релизы etcd, appc и Rocket от CoreOS». LWN.net. Получено 22 июня, 2015.
  28. ^ а б c Джош Беркус (13 мая 2015 г.). «CoreOS Fest и мир контейнеров, часть 1». LWN.net. Получено 22 июня, 2015.
  29. ^ Натан Уиллис (3 декабря 2014 г.). «Ракетная система контейнеризации». LWN.net. Получено 22 июня, 2015.
  30. ^ Макаллистер, Нил (22 июня 2015 г.). "Docker и chums представляют стандартную организацию для программных контейнеров". Дата-центр. Реестр. Получено 19 января, 2017. Объявленный на конференции DockerCon в Сан-Франциско в понедельник, проект Open Container Project (OCP) будет поддерживать и разрабатывать общую среду выполнения контейнера и формат изображения, частично основанный на коде и спецификациях, предоставленных Docker.
  31. ^ Фредерик Лардинуа (22 июня 2015 г.). «Docker, CoreOS, Google, Microsoft, Amazon и другие объединяются, чтобы разработать общий стандарт контейнеров». TechCrunch. Получено 24 июня, 2015.
  32. ^ «Лидеры отрасли объединяются для создания проекта по стандартам открытых контейнеров». opencontainers.org. 22 июня 2015 г. Архивировано с оригинал 13 августа 2015 г.. Получено 24 июня, 2015.
  33. ^ Нил Макаллистер (22 июля 2015 г.). «Open Container Project переименовывает, говорит, что до стандарта всего несколько недель: Linux Foundation, Docker и друзья выбирают Open Container Initiative». Реестр. Получено 29 января, 2016.
  34. ^ «Документация CoreOS: Использование systemd с CoreOS». coreos.com. Архивировано из оригинал 14 февраля 2014 г.. Получено 13 февраля, 2014.
  35. ^ а б «Документация CoreOS: обновления и исправления». coreos.com. Архивировано из оригинал 14 февраля 2014 г.. Получено 27 февраля, 2015.
  36. ^ а б Фил Уилан (28 августа 2013 г.). «Алекс Полви объясняет CoreOS». activestate.com. Архивировано из оригинал 24 февраля 2015 г.. Получено 7 мая, 2015.
  37. ^ «Документация CoreOS: Добавление дискового пространства к машине CoreOS». coreos.com. Получено 27 февраля, 2015.
  38. ^ Алекс Полви (27 марта 2014 г.). «Основное обновление: btrfs, Docker 0.9, добавление пользователей, возможность записи и т. Д. И многое другое!». coreos.com. Получено 27 февраля, 2015.
  39. ^ «Простое знакомство с CoreOS с генеральным директором Алексом Полви и техническим директором Брэндоном Филипсом». centurylinklabs.com. 6 июня 2014 г. Архивировано с оригинал 22 июня 2015 г.. Получено 22 июня, 2015.
  40. ^ «Документация CoreOS: стратегии обновления». coreos.com. Получено 17 апреля, 2015.
  41. ^ "coreos / locksmith: locksmith / README.md at master". github.com. 1 февраля 2015 г.. Получено 17 апреля, 2015.
  42. ^ "coreos / locksmith: locksmith / LICENSE at master". github.com. 19 января 2014 г.. Получено 17 апреля, 2015.
  43. ^ «Омаха - программа установки и автообновления для Windows». code.google.com. Получено 11 октября, 2014.
  44. ^ «Обзор Омахи». omaha.googlecode.com. 23 сентября 2009 г. Архивировано с оригинал 6 мая 2009 г.. Получено 11 октября, 2014.
  45. ^ «Пакет омаха». godoc.org. 24 июня 2014 г.. Получено 4 июля, 2014.
  46. ^ «Документация CoreOS: CoreUpdate». coreos.com. Получено 4 июля, 2014.
  47. ^ Марк Моуди (16 мая 2014 г.). «Демонстрация среды разработки CoreOS + Docker». github.com. Получено 16 апреля, 2015.
  48. ^ а б Джонатан Корбет (22 октября 2014 г.). «И тд и флот». LWN.net. Получено 22 июня, 2015.
  49. ^ «Документация CoreOS: Использование etcd с CoreOS». coreos.com. Получено 13 февраля, 2014.
  50. ^ «Документация CoreOS: начало работы с etcd». coreos.com. Получено 13 февраля, 2014.
  51. ^ Брэндон Филипс (15 января 2014 г.). "etcd @ GoSF". Speakerdeck.com. Получено 13 февраля, 2014.
  52. ^ Вуд, Джош. «Контейнерная оркестровка: переход от флота к Kubernetes». coreos..com. CoreOS.
  53. ^ Джастин Эллингвуд (12 сентября 2014 г.). «Как использовать Fleet и Fleetctl для управления кластером CoreOS». digitalocean.com. Получено 22 июня, 2015.
  54. ^ «Документация CoreOS: Запуск контейнеров с флотом». coreos.com. Получено 3 апреля, 2014.
  55. ^ «Документация CoreOS: Использование клиента». coreos.com. Получено 3 апреля, 2014.
  56. ^ "coreos / fleet: fleet / README.md у мастера". github.com. 18 февраля 2014 г.. Получено 3 апреля, 2014.
  57. ^ "coreos / fleet: fleet / Documentation / deployment-and-configuration.md at master (развертывание флота)". github.com. 14 апреля 2015 г.. Получено 17 апреля, 2015.
  58. ^ "coreos / fleet: fleet / Documentation / api-v1.md (fleet API v1)". github.com. 29 октября 2014 г.. Получено 17 апреля, 2015.
  59. ^ "coreos / флот: флот / ЛИЦЕНЗИЯ у хозяина". github.com. 6 февраля 2014 г.. Получено 3 апреля, 2014.
  60. ^ «Документация CoreOS: Установка CoreOS на диск». coreos.com. Получено 13 февраля, 2014.
  61. ^ «Документация CoreOS: загрузка CoreOS через PXE». coreos.com. Получено 13 февраля, 2014.
  62. ^ «Документация CoreOS: загрузка CoreOS через iPXE». coreos.com. Получено 13 февраля, 2014.
  63. ^ Алекс Кроуфорд (5 сентября 2014 г.). «Образ CoreOS теперь доступен в DigitalOcean». coreos.com. Получено 5 сентября, 2014.
  64. ^ Джек Кларк (23 мая 2014 г.). «Google добавляет в свое облако футуристическое программное обеспечение CoreOS для Linux». Реестр. Получено 26 мая, 2014.
  65. ^ Алекс Кроуфорд (20 октября 2014 г.). «CoreOS теперь доступна в Microsoft Azure». coreos.com. Получено 22 октября, 2014.
  66. ^ Стивен Дж. Воан-Николс (6 апреля 2015 г.). «CoreOS представляет Kubernetes от Google на предприятии». ZDNet. Получено 29 апреля, 2015.
  67. ^ Бен Кепес (6 апреля 2015 г.). «CoreOS и Google защищаются, Docker - жертва?». Forbes. Получено 29 апреля, 2015.
  68. ^ Евгений Якубович (28 августа 2014 г.). "Представляем фланель: оверлейная сеть с поддержкой etcd для контейнеров". coreos.com. Получено 22 июня, 2015.
  69. ^ «Учебник по использованию CoreOS Flannel для Docker». slideshare.net. Ноябрь 2014 г.. Получено 22 июня, 2015.
  70. ^ Рософф, Мэтт (30 января 2018 г.). «Red Hat платит 250 миллионов долларов за CoreOS, стартап, продающий технологии, разработанные Google». CNBC. Получено 6 июня, 2019.
  71. ^ «Fedora CoreOS, Red Hat CoreOS и будущее контейнерного Linux | CoreOS». coreos.com. Получено 6 июня, 2019.
  72. ^ «Объявление о проекте Flatcar Linux | Kinvolk». kinvolk.io. Получено 6 июня, 2019.
  73. ^ «Представляем Flatcar Linux Edge Channel | Kinvolk». kinvolk.io. Получено 6 июня, 2019.
  74. ^ CoreOS: дистрибутив Linux другого типа [LWN.net]

внешняя ссылка