Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021) — различия между версиями

Материал из 0x1.tv

(не показано 10 промежуточных версий этого же участника)
;{{SpeakerInfo}}: {{Speaker|Алексей Костарев}}
<blockquote>
В докладе будут рассмотрены история возникновения и ключевые особенности дистрибутива «Fedora CoreOS» компании RedHat и
его аналогов. Возможность реализации основных идей дистрибутива в рамках операционной системы ALT Linux.
</blockquote>

{{VideoSection}}
{{vimeoembed|91577266|800|450}}
{{youtubelink|}}

{{SlidesSection}}
[[File:Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf|left|page=-|300px]]

{{----}}

== Thesis ==

Как правило, в различных средах разворачиваются различные Linux-дистрибутивы с различными версиями операционных систем, системных библиотек и т. п.. В рамках каждой версии на различных узлах устанавливается различное программное обеспечение (ПО). Если число узлов в кластере относительно невелико (несколько узлов) администрирование операционных систем (установка обновлений, закрытие уязвимостей, …) на узлах является небольшой проблемой. Если же число узлов исчисляется десятками и сотнями, грамотное администрирование разнородных операционных систем с различных установленным ПО становится невозможным.

Fedora CoreOS предлагает решение данной проблемы за счёт использования следующих механизмов:

[[File:kostarev-img001-ossdevconf2021.png|640px|center]]

* Исключения участие оператора при разворачивании операционной системы. Для каждого узла в файле конфигурации задаются параметры развёртывания (разбиение дисковой подсистемы, конфигурирование сетевых интерфейсов и DNS, настройка сервисов и контейнеров, …). Установка операционной системы на различные вышеперечисленные платформы производится без участия оператора.
* Автоматическое обновления ядра и операционной системы из одного центра без участия оператора с возможностью приостановить автоматическое обновление и откатить на предыдущую ветку.
* Использование OSTree (git для бинарных файлов) позволяет:
** откатывать состояние системы на предыдущие коммиты (точки фиксации)
** разделить файловую систему на неизменяемую (<tt>/usr/</tt>), изменяемую (<tt>/var/</tt>) и обновляемую (<tt>/etc</tt>) части. Что позволяет:
*** упростить обновление бинарного программного кода системы;
*** исключить случайное удаление программного кода;
** перегружать систему на предыдущие или последующие коммиты.
** в случае необходимости администратор может, используя утилиту rpm-ostree доустановить или удалить пакеты, перебазироваться на другое дерево, заменить параметры ядра и т. д.
* Администратор кластера может останавливать часть узлов кластера при снижении нагрузки и восстанавливать их при повышении.
* Весь пользовательский софт работает в контейнерах (podman, moby engine == docker) в различных средах контейнеризации (docker swarm. k8s, …). Это упрощает обновление системы и исключает изменение функционала пользовательского ПО после обновления системы.
* Файловая система Fedora CoreOS достаточно небольшая (менее 4GB), что позволяет её использовать в устройствах Интернета Вещей.

Содержание операционной системы:

* последние свежие базовые компоненты Fedora (RPM-пакеты);
* максимальная поддержка разнообразного железа (драйверы);
* Основные (терминальные) административные инструменты;
* Контейнерные движки: podman, moby engine.

=== Потоки разработки Fedora CoreOS ===

Релизы Fedora CoreOS выпускаются в трёх параллельных потоках:

* next — реализация экперементального функционала. После стабилизации выпускаются мажоные версии дистрибутива.
* testing — стабилизация RPM-пакетов. После стабилизации переводится в поток stable;
* stable — самый надёжный поток из перечисленных (публикация каждый 2 недели).

Пользователи могут подключаться к любому из этих потоков и принимать участие в тестировании ближайщего или эксперементального функционала или использовать поток stable для повседневной работы.

=== Fedora CoreOS vs Fedora IoT ===

Наряду с дистрибутивом Fedora CoreOS компания RedHat продвигает близкое по концепции решение для Интернета Вещей: Fedora IoT.

Сходства дистрибутивов:

* Использование ostree, rpm-ostree для поддержания неизменяемой операционной системы с атомарными изменениями.
* Использование igniion для автоматического разворачивания на множество аппаратных устройств.
* Пользовательские приложения разворачиваются в контейнерной среде.
* Поддержка TPM2, SecureBoot и автоматического расшифровки данных с устройств хранения с помощью Clevis.

Различия дистрибутивов:

* поддержка различных аппаратных платформ: x86_64, aarch64, armhfp.
* упор на поддержку интернет-устройств и драйвером к ним;
* меньший объём дискового прострнства ~1.5GB
* контейнеризация осуществляется через podman, поддержка клиент-серверной модели moby engine (docker) отсутствует;
* веб-служба Zezere с помощью которого администраторы могут развёртывать и настраивать Fedora IoT масштабируемым образом без физической консоли.

=== Альт CoreOS ===

В настоящее время на основе репозитория Sisyphus «Базальт СПО» выпускает следующиую линейку дистриутивов: ''Альт Рабочая станция'', ''Альт Сервер'', ''Альт Сервер Виртуализации'', ''Альт Образование'', ''Simply Linux''.

Использую технологии и программный код Fedore Core можно обеспечить выпуск и поддержку линейки дистрибутивов Альт CoreOS и, возможно, Альт IoT.

В настоящий момент в Sisyphus портированы большинство пакетов Fedora CoreOS:

{|border=1 class=wikitable
| ostree
| <span>Система обновления версий операционных систем на базе Linux</span>
| <span>портирована</span>
|
|-
| ignition
| <span>Утилита для управления дисками во время начальной установки системы</span>
| <span>портирована</span>
|
|-
| dracut
| <span>Инструментарий создания файловой системы начальной загрузки initramfs</span>
| <span>портирован</span>
| <span>В рамках ALTLinux используется собственный технологический процесс создания initrams</span>
|-
| butane
| <span>Утилита конвертации файлов описания конфигурации из формата YAML в формат JSON Ignition</span>
| -
| <span>Достаточно простая утилита</span>
|-
| coreos-installer
| <span>Программа установки CoreOs</span>
| -
| <span>Возможно создание собственной программы</span>
|-
| rpm-ostree
| <span>Аналог программы apt-get установки RPM-пакетов в файловую систему ostree</span>
| -
| <span>Возможно потребуется не весь функционал</span>
|}

Для создания и продвижения дистрибутива Альт CoreOS необходимо:

* портирование недостающих пакетов или создание собственных аналогов;
* создание или использование существующего ПО для развёртывания дистрибутива в облачных средах, включая Yandex Cloud;
* организация процедура создания образов дистрибутива и «выкатки» его на сервера.

Таким образом создание и поддержка в рамках репозитория Sisyphus линейки дистрибутивов Альт CoreOS, Альт IoT вполне решаемая задача.
{{----}}
[[File:{{#setmainimage:Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->

{{vklink|1782}}                                          
{{fblink|2955478224705179}}                                          
<references/>
* Сайт Fedora CoreOS Documentation: https://docs.fedoraproject.org/en-US/fedora-coreos/
* Сайт Ostee Documentation: https://ostreedev.github.io/ostree/
* Презентация Fedora CoreOS Introduction — Dusty Mabe (Red Hat): https://www.youtube.com/watch?v=JepNm7R0LSo
* Российский разработчик операционных систем «Альт»: https://www.basealt.ru/
* Репозиторий Sisyphus: http://www.sisyphus.ru/

{{stats|disqus_comments=0|refresh_time=2021-08-31T16:20:51.272106|vimeo_plays=0|youtube_plays=0}}

[[Категория:OSSDEVCONF-2021]]
[[Категория:Open-source projects]]Fedora CoreOS]]

Версия 12:01, 28 сентября 2021

Докладчик
Алексей Костарев.jpg
Алексей Костарев

В докладе будут рассмотрены история возникновения и ключевые особенности дистрибутива «Fedora CoreOS» компании RedHat и его аналогов. Возможность реализации основных идей дистрибутива в рамках операционной системы ALT Linux.

Видео

Презентация

Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021).pdf

Thesis

Как правило, в различных средах разворачиваются различные Linux-дистрибутивы с различными версиями операционных систем, системных библиотек и т. п.. В рамках каждой версии на различных узлах устанавливается различное программное обеспечение (ПО). Если число узлов в кластере относительно невелико (несколько узлов) администрирование операционных систем (установка обновлений, закрытие уязвимостей, …) на узлах является небольшой проблемой. Если же число узлов исчисляется десятками и сотнями, грамотное администрирование разнородных операционных систем с различных установленным ПО становится невозможным.

Fedora CoreOS предлагает решение данной проблемы за счёт использования следующих механизмов:

Kostarev-img001-ossdevconf2021.png
  • Исключения участие оператора при разворачивании операционной системы. Для каждого узла в файле конфигурации задаются параметры развёртывания (разбиение дисковой подсистемы, конфигурирование сетевых интерфейсов и DNS, настройка сервисов и контейнеров, …). Установка операционной системы на различные вышеперечисленные платформы производится без участия оператора.
  • Автоматическое обновления ядра и операционной системы из одного центра без участия оператора с возможностью приостановить автоматическое обновление и откатить на предыдущую ветку.
  • Использование OSTree (git для бинарных файлов) позволяет:
    • откатывать состояние системы на предыдущие коммиты (точки фиксации)
    • разделить файловую систему на неизменяемую (/usr/), изменяемую (/var/) и обновляемую (/etc) части. Что позволяет:
      • упростить обновление бинарного программного кода системы;
      • исключить случайное удаление программного кода;
    • перегружать систему на предыдущие или последующие коммиты.
    • в случае необходимости администратор может, используя утилиту rpm-ostree доустановить или удалить пакеты, перебазироваться на другое дерево, заменить параметры ядра и т. д.
  • Администратор кластера может останавливать часть узлов кластера при снижении нагрузки и восстанавливать их при повышении.
  • Весь пользовательский софт работает в контейнерах (podman, moby engine == docker) в различных средах контейнеризации (docker swarm. k8s, …). Это упрощает обновление системы и исключает изменение функционала пользовательского ПО после обновления системы.
  • Файловая система Fedora CoreOS достаточно небольшая (менее 4GB), что позволяет её использовать в устройствах Интернета Вещей.

Содержание операционной системы:

  • последние свежие базовые компоненты Fedora (RPM-пакеты);
  • максимальная поддержка разнообразного железа (драйверы);
  • Основные (терминальные) административные инструменты;
  • Контейнерные движки: podman, moby engine.

Потоки разработки Fedora CoreOS

Релизы Fedora CoreOS выпускаются в трёх параллельных потоках:

  • next — реализация экперементального функционала. После стабилизации выпускаются мажоные версии дистрибутива.
  • testing — стабилизация RPM-пакетов. После стабилизации переводится в поток stable;
  • stable — самый надёжный поток из перечисленных (публикация каждый 2 недели).

Пользователи могут подключаться к любому из этих потоков и принимать участие в тестировании ближайщего или эксперементального функционала или использовать поток stable для повседневной работы.

Fedora CoreOS vs Fedora IoT

Наряду с дистрибутивом Fedora CoreOS компания RedHat продвигает близкое по концепции решение для Интернета Вещей: Fedora IoT.

Сходства дистрибутивов:

  • Использование ostree, rpm-ostree для поддержания неизменяемой операционной системы с атомарными изменениями.
  • Использование igniion для автоматического разворачивания на множество аппаратных устройств.
  • Пользовательские приложения разворачиваются в контейнерной среде.
  • Поддержка TPM2, SecureBoot и автоматического расшифровки данных с устройств хранения с помощью Clevis.

Различия дистрибутивов:

  • поддержка различных аппаратных платформ: x86_64, aarch64, armhfp.
  • упор на поддержку интернет-устройств и драйвером к ним;
  • меньший объём дискового прострнства ~1.5GB
  • контейнеризация осуществляется через podman, поддержка клиент-серверной модели moby engine (docker) отсутствует;
  • веб-служба Zezere с помощью которого администраторы могут развёртывать и настраивать Fedora IoT масштабируемым образом без физической консоли.

Альт CoreOS

В настоящее время на основе репозитория Sisyphus «Базальт СПО» выпускает следующиую линейку дистриутивов: Альт Рабочая станция, Альт Сервер, Альт Сервер Виртуализации, Альт Образование, Simply Linux.

Использую технологии и программный код Fedore Core можно обеспечить выпуск и поддержку линейки дистрибутивов Альт CoreOS и, возможно, Альт IoT.

В настоящий момент в Sisyphus портированы большинство пакетов Fedora CoreOS:

ostree Система обновления версий операционных систем на базе Linux портирована
ignition Утилита для управления дисками во время начальной установки системы портирована
dracut Инструментарий создания файловой системы начальной загрузки initramfs портирован В рамках ALTLinux используется собственный технологический процесс создания initrams
butane Утилита конвертации файлов описания конфигурации из формата YAML в формат JSON Ignition - Достаточно простая утилита
coreos-installer Программа установки CoreOs - Возможно создание собственной программы
rpm-ostree Аналог программы apt-get установки RPM-пакетов в файловую систему ostree - Возможно потребуется не весь функционал

Для создания и продвижения дистрибутива Альт CoreOS необходимо:

  • портирование недостающих пакетов или создание собственных аналогов;
  • создание или использование существующего ПО для развёртывания дистрибутива в облачных средах, включая Yandex Cloud;
  • организация процедура создания образов дистрибутива и «выкатки» его на сервера.

Таким образом создание и поддержка в рамках репозитория Sisyphus линейки дистрибутивов Альт CoreOS, Альт IoT вполне решаемая задача.

Fedora CoreOS. Мы Федоре не враги (Алексей Костарев, OSSDEVCONF-2021)!.jpg

Примечания и ссылки

Plays:0   Comments:0