Контейнер Linux


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

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

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

Container Linux не предоставляет диспетчера пакетов для распространения полезных приложений, вместо этого требуя, чтобы все приложения запускались внутри своих контейнеров. Выступая в качестве единого узла управления, экземпляр Container Linux использует базовые функции виртуализации на уровне операционной системы ядра Linux для создания и настройки нескольких контейнеров, которые работают как изолированные системы Linux . Таким образом, разделение ресурсов между контейнерами выполняется через несколько изолированных экземпляров пользовательского пространства вместо использования гипервизора и предоставления полноценных виртуальных машин . Этот подход основан на контрольных группах ядра Linux ифункциональные возможности пространств имен , [22] [23] , которые вместе обеспечивают возможность ограничивать, учитывать и изолировать использование ресурсов ( ЦП , память, дисковый ввод-вывод и т. д.) для коллекций процессов пользовательского пространства . [11] [14] [24]

Первоначально Container Linux использовал исключительно Docker как компонент, обеспечивающий дополнительный уровень абстракции и интерфейс [25] к функциям виртуализации на уровне операционной системы ядра Linux, а также предоставляющий стандартизированный формат для контейнеров, который позволяет запускать приложения в разные среды. [11] [24] В декабре 2014 года CoreOS выпустила и начала поддерживать rkt (первоначально выпущенный как Rocket ) в качестве альтернативы Docker, предоставляя через него другой стандартизированный формат образов приложений-контейнеров, соответствующее определение среды выполнения контейнера. и протоколдля обнаружения и извлечения образов контейнеров. [26] [27] [28] [29] CoreOS предоставляет rkt как реализацию так называемой спецификации контейнера приложения (appc), которая описывает необходимые свойства образа контейнера приложения (ACI); CoreOS инициировала appc и ACI как независимый набор спецификаций, управляемый комитетом, [30] [31] с целью сделать их частью независимой от поставщика и операционной системы Open Container Initiative (OCI; первоначально называлась Open Container Project или OCP [32] ) стандарт контейнеризации, объявленный [ кем? ]в июне 2015 г. [33] [34] [35]

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


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