CoreOS |
Автор: admin Просмотров: 1810 Комментарии:
Добавлен: 30 января 2017
Обновлено: 31.01.2017 - 18:02
Container Linux от CoreOS (ранее CoreOS Linux) - свободная ОС на базе Linux, для обеспечения инфраструктуры компьютерных кластеров, с особым упором на автоматизацию, легкость установки, безопасность, надежность и масштабируемость.
Как операционная система, Container Linux обеспечивает только минимальную функциональность, необходимую для развертывания приложений внутри программных контейнеров, вместе со встроенными механизмами для обнаружения сервисов и обмена конфигурациями.
Container Linux основан на Gentoo Linux, Chrome OS и Chromium OS с использованием общего SDK в качестве основы при добавлении новых функциональных возможностей и настройки их для поддержки аппаратных средств, используемых в серверах.
Обзор CoreOS
Container Linux не имеет менеджера пакетов, как способа распространения полезных пакетов, чтобы все приложения запускались внутри своих контейнеров. Работая одним управляющим хостом, Container Linux использует базовые возможности виртуализации уровня операционной системы Linux для создания и настройки нескольких контейнеров, которые выполняютcя в виде изолированных Linux систем. Таким образом, разделение ресурсов между контейнерами осуществляется через несколько изолированных инстанций пользовательского пространства, а не используя гипервизор и полноценные виртуальные машины. Этот подход основан на возможностях Linux kernel's cgroups и namespaces, которые вместе обеспечивают возможности ограничения аккаунтов и изолируют использование ресурсов (процессор, память, ввод/вывод I/O и т.д.) для коллекции процессов пользовательского пространства.
Первоначально Container Linux использовал исключительно Docker в качестве компонента обеспечивающего дополнительный уровень абстракции и интерфейса к функциям виртуализации операционной системы на уровне ядра Linux, а также обеспечивал стандартизированный формат для контейнеров, который позволял приложениям работать в различных средах. В декабре 2014 года CoreOS освобожден и начал поддерживать РКТ (первоначально выпущенный как Rocket) в качестве альтернативы Докер, обеспечивая через него другой стандартизированный формат образов контейнеров, соответствующий определению среды выполнения контейнера и протокол для обнаружения и извлечения образов контейнеров. CoreOS обеспечивает РКТ как реализацию так называемой спецификации контейнеров приложений (APPC), которая описывает требуемые свойства образа контейнера приложений (ACI). CoreOS инициировал APPC и ACI как независимые committee-steered наборы спецификаций, нацеленные стать частью независимого от производителей и операционных систем проекта Open Container стандарт контейнеризации, о котором было объявлено в июне 2015 года.
Container Linux использует скрипты Ebuild из Gentoo Linux для автоматической компиляции компонентов системы и использует Systemd в качестве своей основной системы инициализации с тесной связью между самим Systemd и внутренним механизмом контейнеров Linux.
Обновления дистрибутива
Container Linux обеспечивает дополнительную безопасность и надежность обновлений операционной системы используя FastPatch в качестве схемы двойного разбиения для доступных только для чтения разделов установки, а это означает, что обновления выполняются в целом и устанавливается на пассивный загрузчик вторичного раздела, который становится активным после перезагрузки или Kexec. Такой подход позволяет избежать возможных проблем, возникающих в связи с обновлением только отдельных частей операционной системы, обеспечивая лёгкий откат к известным стабильным версиям системы и позволяя каждому загрузочному разделу быть подписанным для дополнительной безопасности. Корневой раздел и его корневая файловая система автоматически изменяются, чтобы заполнить все доступное дисковое пространство при перезагрузке; в то время как корневой раздел обеспечивает пространство для чтения и записи, сама ОС примонтирована только для чтения под /usr
Чтобы гарантировать, что только определенная часть кластера перезагрузится сразу же, после применения обновления операционной системы, сохраняя таким образом необходимые ресурсы для выполнения развернутых приложений, CoreOS обеспечивает locksmith (слесарь) для управления перезагрузками контейнерного Linux. При помощи locksmith можно выбрать стратегию обновления, которая определяет как выполняется перезагрузка на последнем шаге принятия обновлений; например, он может быть сконфигурирован так, как многие члены кластера смогут перезагружаться одновременно. Внутри locksmith locksmith действует как демон, который работает как один из кластеров, пока инструмент командной строки locksmithctl управляет параметрами конфигураций. locksmith написан на языке Go и распространяться в соответствии с условиями лицензии Apache License 2.0.
Система обновлений дистрибутива используемая в Container Linux, основана на свободном проекте Omaha от Google, который обеспечивает механизм для развертывания обновлений и протокола запросов-ответов на XML. Кроме того, CoreOS предоставляет CoreUpdate в качестве веб-панели управления для управления обновлениями кластерами. Операции, доступные через CoreUpdate включают назначение членов кластера к различным группам, которые разделяют индивидуальные политики обновления, просмотр кластерных прерываний Container Linux, остановка и перезагрузка обновлений и просмотр записанных логов обновлений. CoreUpdate также предоставляет HTTP API, который позволяет встраивать CoreUpdate в сторонние утилиты и системы развёртывания.
Инфраструктура кластера
Container Linux предоставляет демон etcd, который работает на всех компьютерах в кластере и обеспечивает динамический реестр конфигурации, что позволяет различным конфигурационным данным, легко и надежно распределяется между членами кластера. Поскольку данные ключ-значение (key–value) хранящиеся в etcd, автоматически распределяются и реплицируются мастер-выбором и учреждением на основе консенсусов с использованием алгоритма Raft, все изменения в хранимых данных отражаются на всем кластере, в то время как достигаемая избыточность предотвращает сбои отдельных членов кластера из в случае потеря данных. Помимо управления конфигурацией, etcd также обеспечивает обнаружение сервисов, позволяют развёрнутым приложениям, чтобы заявить о себе и о своих сервисах. Связь с etcd осуществляется через экспонированный REST API, который внутри использует JSON поверх HTTP; API можно использовать непосредственно (например через curl или wget), или косвенно, через etcdctl, который является специализированной утилитой командной строки также поставляемой с CoreOS.
Container Linux поддерживает так называемые возможности fleet, на основе сервиса управления кластерами fleetd, который контролирует отдельные экземпляры systemd в Container Linux на уровне кластера. При использовании fleetd, Container Linux создает распределенную систему инициализации, которая связывает вместе отдельные экземпляры Systemd и etcd; внутренне, демон fleetd обменивается данными с локальными экземплярами Systemd поверх D-Bus, а также с развёрнутым etcd через его неприкрытый API. fleetd позволяет развернуть один или несколько контейнеров на кластере, с более продвинутыми опциями, включая резервирование, перевод на другой ресурс, развертывание конкретных членов кластера, зависимости между контейнерами и группы развёрнутых контейнеров. Консольный инструмент fleetctl используется для настройки и мониторинга этой распределенной системы инициализации; внутри он осуществляет связь с демоном fleetd, используя API на основе JSON поверх HTTP, который также может быть использован непосредственно. При локальном использовании как член кластера, fleetctl взаимодействует с локальными экземплярами fleetd над Unix domain socket; при использовании с внешнего хоста, SSH туннелирование используется с проверкой подлинности, предоставляемой через открытые ключи SSH.
Все вышеупомянутые демоны и утилиты командной строки (etcd, etcdctl, fleetd и fleetctl) написаны на языке Go и распространяться в соответствии с условиями лицензии Apache License 2.0.
Установка CoreOS
При работе на выделенном оборудовании, Container Linux может быть постоянно установлен на локальном запоминающем устройстве, таком как жесткий диск (HDD) или твердотельном накопителе (SSD) или загружаться удаленно по сети с использованием Preboot Execution Environment (PXE ) в общем случае или через iPXE в качестве одной из своих реализаций. CoreOS также поддерживает установку на различные платформы аппаратной виртуализации в том числе Amazon EC2, DigitalOcean, Google Compute Engine, Microsoft Azure, OpenStack, QEMU/KVM, Vagrant и VMware.
Container Linux можно быстро развернуть через его коммерческий дистрибутив Tectonic, который дополнительно встраивает утилиту управления кластером Google Kubernetes. По состоянию на апрель 2015 года, Tectonic планирует предлагать бета-версию выбранным клиентам. Кроме того, CoreOS обеспечивает Flannel в качестве компонента, реализующего наложенную сеть, необходимую в первую очередь для интеграции с Kubernetes.
По состоянию на февраль 2015 года, Container Linux поддерживает только архитектуру x86-64.
https://en.wikipedia.org/wiki/CoreOS
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Виртуализация
Комментарии |