Контейнер Linux

редактировать
Дистрибутив Linux

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

Container Linux (ранее CoreO S Linux ) - открытая легкая операционная система, основанная на ядре Linux и предназначенная для предоставления инфраструктуры кластеризованной развертываний, уделяя особое внимание автоматизации, простоте развертывания приложений, безопасности, надежности и масштабируемости. Как операционная система Container Linux предоставляет только минимальную функциональность, необходимую для развертывания приложений внутри программных контейнеров, вместе со встроенными механизмами для обнаружения служб и совместного использования конфигурации.

Container Linux имеет общие основы с Gentoo Linux, Chrome OS и Chromium OS через общий комплект разработки программного обеспечения (SDK). В контейнере Linux добавлены новые функции и возможности настройки для этой общей основы для поддержки серверного оборудования и вариантов использования. По состоянию на январь 2015 года CoreOS активно разрабатывается, в основном Алексом Полви, Брэндоном Филипсом и Майклом Марино, с его основными функциями, доступными в виде стабильной версии.

Команда CoreOS объявила о окончании срока службы для Container Linux 26 мая 2020 г., предлагая Fedora CoreOS и RHEL CoreOS в качестве замены, обе на основе Red Hat.

Содержание
  • 1 Обзор
    • 1.1 Распространение обновлений
    • 1.2 Кластер инфраструктура
  • 2 Развертывание
  • 3 Производные
  • 4 Получение
  • 5 См. также
  • 6 Ссылки
  • 7 Внешние ссылки
Обзор

Контейнер Linux не предоставляет менеджер пакетов как способ распределения приложений с полезной нагрузкой, требующий, чтобы все приложения выполнялись внутри своих контейнеров. Выступая в качестве единого управляющего хоста, экземпляр контейнера Linux использует базовые функции виртуализации на уровне операционной системы ядра Linux для создания и настройки нескольких контейнеров, которые работают как изолированные системы Linux. Таким образом, разделение ресурса между контейнерами выполняется с помощью нескольких изолированных экземпляров пользовательского пространства вместо использования гипервизора и предоставления полноценных виртуальных машин. Этот подход основан на функциях cgroups и пространств имен ядра Linux, которые вместе предоставляют возможности для ограничения, учета и изоляции использования ресурсов (CPU, память, диск I / O и т. Д.) Для коллекций пользовательского пространства процессов.

Изначально Container Linux исключительно использовал Docker в качестве компонента, обеспечивающего дополнительный уровень абстракции и интерфейс к функциям виртуализации на уровне операционной системы ядра Linux, а также предоставлению стандартизованного формата для контейнеров, который позволяет приложениям работать в различных средах. В декабре 2014 года CoreOS выпустила и начала поддерживать rkt (первоначально выпущенную как Rocket) в качестве альтернативы Docker, предоставляя через него другой стандартизованный формат образов приложений-контейнеров, соответствующее определение контейнера среда выполнения и протокол для обнаружения и получения образов контейнеров. CoreOS предоставляет rkt как реализацию так называемой спецификации контейнера приложения (appc), которая описывает необходимые свойства образа контейнера приложения (ACI); CoreOS инициировала appc и ACI в качестве независимого набора спецификаций, управляемого комитетом, с целью сделать их частью независимой от поставщика и операционной системы Open Container Initiative (OCI; первоначально назывался Open Container Project или OCP) стандартом контейнеризации, который было объявлено в июне 2015 года.

Container Linux использует сценарии ebuild из Gentoo Linux для автоматической компиляции своих системных компонентов и использует systemd в качестве его основная система init с тесной интеграцией между systemd и различными внутренними механизмами Container Linux.

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

Container Linux обеспечивает дополнительную безопасность и надежность своей операционной системы обновляет, используя FastPatch в качестве схемы с двумя разделами для части его установки, доступной только для чтения, что означает, что обновления выполняются целиком и устанавливаются на пассивный вторичный загрузочный раздел , который становится активным после перезагрузка или kexec. Такой подход позволяет избежать возможных проблем, возникающих при обновлении только определенных частей операционной системы, обеспечивает простой откат до заведомо стабильной версии операционной системы и позволяет каждому загрузочному разделу быть подписанным для дополнительных безопасность. Размер корневого раздела и его корневой файловой системы автоматически изменяется, чтобы заполнить все доступное дисковое пространство при перезагрузке; в то время как корневой раздел предоставляет пространство для хранения для чтения и записи, сама операционная система смонтирована только для чтения в /usr.

Чтобы гарантировать, что только определенная часть кластера перезагружается сразу после применения обновлений операционной системы, сохраняя таким образом ресурсы, необходимые для запуска развернутых приложений, CoreOS предоставляет слесаря ​​в качестве менеджера перезагрузки для Container Linux. Используя слесарь, можно выбирать между различными стратегиями обновления, которые определяются тем, как перезагрузки выполняются на последнем этапе применения обновлений; например, можно настроить, сколько элементов кластера могут перезагружаться одновременно. Внутренне слесарь работает как демон locksmithd , который работает на элементах кластера, а утилита locksmithctl командной строки управляет параметрами конфигурации. Locksmith написан на языке Go и распространяется в соответствии с условиями лицензии Apache 2.0.

. Система распространения обновлений, используемая в Container Linux, основана на открытом Google -source Omaha project, который предоставляет механизм для развертывания обновлений и базовый протокол запрос – ответ на основе XML. Кроме того, CoreOS предоставляет CoreUpdate в виде веб-панели для управления обновлениями в масштабе кластера. Операции, доступные через CoreUpdate, включают в себя назначение членов кластера различным группам, которые используют настроенные политики обновлений, анализ разбивки версий контейнера Linux в масштабе кластера, остановку и перезапуск обновлений, а также просмотр записанных журналов обновлений. CoreUpdate также предоставляет HTTP на основе API, который позволяет его интегрировать в сторонние утилиты или системы развертывания.

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

Иллюстрация высокого уровня Архитектура кластера CoreOS

Контейнер Linux предоставляет etcd, демон, который работает на всех компьютерах в кластере и предоставляет динамический реестр конфигурации, позволяющий легко и надежно обмениваться различными данными конфигурации между участниками кластера. Поскольку данные ключ-значение, хранящиеся в etcd, автоматически распределяются и реплицируются с автоматическим главным выбором и консенсусом При установлении с использованием алгоритма Raft все изменения в хранимых данных отражаются по всему кластеру, а достигнутая избыточность предотвращает отказ отдельных элементов кластера от потери данных. Помимо управления конфигурацией, etcd также обеспечивает обнаружение служб, позволяя развернутым приложениям сообщать о себе и предлагаемых ими услугах. Связь с etcd осуществляется через открытый API на основе REST, который внутренне использует JSON поверх HTTP; API можно использовать напрямую (например, через curl или wget ) или косвенно через etcdctl, который представляет собой специализированную утилиту командной строки также поставляется CoreOS. Etcd также используется в программном обеспечении Kubernetes.

Container Linux также предоставляет менеджер кластера парка, который управляет отдельными экземплярами systemd контейнера Linux на уровне кластера. По состоянию на 2017 год «флот» больше не активно развивается и заменен на Kubernetes. Используя fleetd, Container Linux создает распределенную систему инициализации, которая связывает вместе отдельные экземпляры systemd и развертывание etcd в масштабе кластера; внутри демон fleetd взаимодействует с локальными экземплярами systemd через D-Bus, а с развертыванием etcd через открытый API. Использование fleetd позволяет развертывать один или несколько контейнеров в масштабе кластера с более продвинутыми параметрами, включая избыточность, аварийное переключение, развертывание на определенных членах кластера, зависимости между контейнерами и групповое развертывание контейнеров. Утилита командной строки под названием fleetctl используется для настройки и мониторинга этой распределенной системы инициализации; внутри он взаимодействует с демоном fleetd, используя API на основе JSON поверх HTTP, который также можно использовать напрямую. При локальном использовании на члене кластера fleetctl обменивается данными с локальным экземпляром fleetd через сокет домена Unix ; при использовании с внешнего хоста SSH-туннелирование используется с аутентификацией с помощью открытых ключей SSH.

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

Deployment

При работе на выделенном оборудовании контейнер Linux может быть либо постоянно установлен в локальном хранилище, например, жесткий диск (HDD) или твердотельный диск (SSD), либо загружаться удаленно по сети с использованием Preboot Execution Environment (PXE) в целом или iPXE в качестве одной из его реализаций. CoreOS также поддерживает развертывание на различных платформах аппаратной виртуализации, включая Amazon EC2, DigitalOcean, Google Compute Engine, Microsoft Azure, OpenStack, QEMU / ​​KVM, Vagrant и VMware. Контейнер Linux также можно установить на Citrix XenServer, учитывая, что существует «шаблон» для CoreOS.

Container Linux также можно развернуть через его коммерческий дистрибутив под названием Tectonic, который дополнительно интегрирует Kubernetes Google в качестве утилиты управления кластером. С апреля 2015 года Tectonic будет предлагаться в качестве бета-версии для избранных клиентов. Кроме того, CoreOS предоставляет Flannel как компонент, реализующий оверлейную сеть , необходимую в первую очередь для интеграции с Kubernetes.

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

Производные

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

6 марта 2018 года Kinvolk GmbH анонсировала Flatcar Container Linux, производную от CoreOS Container Linux. Это отслеживает выпуски альфа / бета / стабильного канала CoreOS, с экспериментальным каналом выпуска Edge, добавленным в мае 2019 года.

Reception

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

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

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • icon Портал Linux
Ссылки
Внешние ссылки
Викискладе есть медиафайлы на CoreOS.
Последняя правка сделана 2021-05-15 10:47:29
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте