Linux прошел долгий путь с тех пор, как Линус Торвальдс предоставил его сообществу для использования. Он послужил многим легендарным предприятиям и подвигам, пока не пришло время контейнеров, которые были полностью приняты. В традиционном дистрибутиве Linux собрано большое количество программ, что делает его прекрасным инструментом общего назначения. Это никогда не было проблемой, пока не появилась идея контейнеров.
Обильное количество программного обеспечения в традиционных Linux имеет следующие недостатки: оно раздувается, увеличивает поверхность угроз безопасности и расширяет матрицу тестирования, необходимую для сертификации нового релиза. Микросервисы, основой которых являются контейнеры, требуют меньшего количества зависимостей, используют минимальную контейнерную операционную систему и, таким образом, позволяют приложениям достигать больших масштабов.
В этой статье мы расскажем о минимальных контейнерных операционных системах, которые показали многообещающие результаты.
1. Flatcar Container Linux
Flatcar Container Linux это легкий, готовый к производству дистрибутив Linux, предназначенный для запуска контейнеров. Он основан на популярной Chrome OS и построен на базе ядра Linux.
Flatcar Container Linux обладает рядом ключевых преимуществ, в том числе:
- Неизменяемая инфраструктура: Flatcar Container Linux спроектирована как неизменяемая инфраструктура, то есть после развертывания она не подлежит изменению. Это упрощает управление и поддержку, так как обновления и модернизацию можно осуществлять простым развертыванием новых контейнеров.
- Оптимизация контейнеров: Flatcar Container Linux оптимизирован для работы с контейнерами, что делает его отличным выбором для контейнерных приложений. Она включает в себя такие функции, как cgroups, пространства имен и встроенную среду выполнения контейнеров, которые упрощают запуск контейнеров в производственной среде.
- Безопасность по умолчанию: Flatcar Container Linux создан с учетом требований безопасности, благодаря таким функциям, как автоматическое обновление и безопасная загрузка. В ней используются те же функции безопасности, что и в Chrome OS, которая известна своей безопасностью.
- Масштабируемость: Flatcar Container Linux был разработан с учетом высокой масштабируемости, что позволяет легко запускать большое количество контейнеров на одном хосте. Это делает его отличным выбором для организаций, которым необходимо быстро и легко масштабировать свои контейнерные приложения.
В целом, Flatcar Container Linux — это отличный выбор для организаций, которым нужен легкий, готовый к производству дистрибутив Linux, оптимизированный для запуска контейнеров. Его неизменяемая инфраструктура, высокая доступность, оптимизация для контейнеров, безопасность по умолчанию, простота развертывания и масштабируемость делают его отличным выбором для запуска контейнерных приложений в производственной среде.
2. Photon OS
Введение в Photon OS
Компания VMWare выпустила минималистичную ОС Linux, заточенную под платформы облачных вычислений, развертывание VMware vSphere и приложения, созданные для облака, и назвала ее Photon OS.
Photon OS, являясь Linux-хостом для контейнеров, оптимизирована для vSphere и облачных вычислительных платформ, таких как Amazon Elastic Compute и Google Compute Engine. Она работает с наиболее распространенными форматами контейнеров, включая Docker, Rocket и Garden. Кроме того, Photon OS включает совместимую с yum систему управления жизненным циклом пакетов под названием tdnf.
Одна из удивительных особенностей Photon OS заключается в том, что ее можно использовать с такими инструментами и средами разработки, как VMware Fusion, VMware Workstation. При этом она позволяет беспрепятственно переносить контейнерные приложения из разработки в производство.
Особенности Photon OS
Наиболее отличительными особенностями Photon OS являются следующие
i. Photon OS занимает мало места, быстро загружается и работает.
Это делает Photon OS очень оптимизированной для облачных вычислений и облачных приложений.
ii. Она управляет сервисами с помощью systemd.
С помощью systemd, Photon OS использует современный стандарт Linux для управления системными сервисами. Photon OS загружает пользовательское пространство и одновременно запускает сервисы с помощью systemd. Сайт systemctl Утилита управляет службами в Photon OS. Например, вместо того чтобы запускать скрипт /etc/init.d/ssh для остановки и запуска сервера OpenSSH на на базе init.d Linux-системы, вы выполняете следующее systemctl команды на Photon OS:
- systemctl stop sshd
- systemctl start sshd
Он управляет пакетами с помощью совместимого с yum менеджера пакетов с открытым исходным кодом под названием tdnf для Tiny DNF.
Tdnf позволяет сделать операционную систему как можно меньше, сохраняя при этом надежные возможности yum по управлению пакетами. На Photon OS, tdnf это менеджер пакетов по умолчанию для установки новых пакетов. Это реализация менеджера пакетов DNF на языке C.
3. RancherOS
Если вы хотите запустить Docker без лишних хлопот, рассмотрите возможность использования RancherOS. Это самый компактный и простой способ запуска рабочих нагрузок в производственной среде с помощью Docker. Поскольку будущее, похоже, за контейнерами, команда Rancher сделала так, чтобы каждый процесс в RancherOS выполнялся как контейнер, управляемый Docker. Эта архитектура сильно отличается от той, что существует в дистрибутивах Linux, потому что даже системные сервисы, такие как udev и syslog запускаются как контейнеры.
Поскольку RancherOS включает в себя только службы, необходимые для запуска Docker, она значительно меньше большинства традиционных операционных систем. Благодаря удалению ненужных библиотек и служб снижаются требования к исправлениям безопасности и другим видам обслуживания. Это возможно благодаря тому, что при использовании Docker пользователи обычно упаковывают все необходимые библиотеки в свои контейнеры.
Особенности RancherOS
i. Все в RancherOS представляет собой контейнер
Все элементы и особенности, относящиеся к контейнерам, были рассмотрены и реализованы, чтобы убедиться, что RancherOS технически совершенна. Например, RancherOS разработана для запуска последней версии Docker, что позволяет пользователям воспользоваться последними возможностями Docker и исправлениями ошибок. Как видите, больше не нужно беспокоиться об обновлениях на терминале, достаточно сосредоточиться на своей основной деятельности.
ii. RancherOS работает так же быстро, как Flash
Ничто не сравнится с минималистичными дистрибутивами Linux, когда речь заходит о времени загрузки. RancherOS, входящая в эту лигу, загружается невероятно быстро. Более того, запуск контейнеров Docker происходит по принципу водопада, как и запуск любого другого процесса. Если вы являетесь организацией, внедряющей микросервисы, то эти функции точно идеально подходят для вас.
Для работы RancherOS требуется очень мало аппаратных ресурсов. Это устраняет ограничения, которые могут наложить на ваш проект расходы на оборудование.
Как работает RancherOS
Можно задаться вопросом, как ОС, работающая исключительно на контейнерах, делает то, что она делает за кулисами. Rancher решила эту задачу, запустив два экземпляра Docker. Один экземпляр называется System Docker, который представляет собой первый процесс в системе, как init в обычных дистрибутивах Linux. Все остальные системные службы, такие как терминал, syslog, и ntpd выполняются в контейнерах Docker. Система Docker заменяет традиционные системы инициализации, такие как systemd и используется для запуска дополнительных системных служб.
Как же избежать удаления всех контейнеров, работающих в пользовательском пространстве, вместе с контейнерами System? RancherOS справляется с этим блестяще. Вот как это происходит: System Docker запускает и управляет специальным контейнером под названием Docker, который является другим демоном Docker, отвечающим за управление всеми контейнерами пользователя. Все контейнеры, которые вы запускаете из консоли как пользователь, будут запускаться внутри этого Docker. Это создает изоляцию от контейнеров System Docker и гарантирует, что обычные команды пользователя не повлияют на системные службы (см.Rancher).
4. Red Hat CoreOS (RHCOS)
Red Hat Enterprise Linux CoreOS был создан теми же командами разработчиков, которые создали Red Hat Enterprise Linux Atomic Host и CoreOS Container Linux. Его основная цель — объединить лучшие стандарты качества Red Hat Enterprise Linux (RHEL) с функциями автоматического удаленного обновления Container Linux.
Ключевые особенности RHCOS
i. Базовая операционная система состоит в основном из компонентов RHEL.
Вкратце это означает, что вы получите то же качество, безопасность и меры контроля, которые реализованы в RHEL и строго поддерживаются в RHCOS.
ii. В RHCOS реализовано транзакционное обновление с помощью системы rpm-ostree.
Обновления доставляются через образы контейнеров и являются частью процесса обновления OpenShift. При развертывании образ контейнера извлекается, распаковывается и записывается на диск, после чего загрузчик модифицируется для загрузки новой версии.
iii. RHCOS использует Podman CLI для таких задач, как сборка, копирование и другое управление контейнерами.
Он заменяет инструмент Docker CLI совместимым набором инструментов для работы с контейнерами, который находится в podman CLI.
iv. В RHCOS используется контейнерный движок CRI-O вместо контейнерного движка Docker.
CRI-O обеспечивает специфическую совместимость с различными версиями Kubernetes, а также меньшую площадь и меньшую площадь атаки, чем это возможно при использовании контейнерных движков с большим набором функций.
5. Fedora CoreOS
Чтение из Документация Fedora, Fedora CoreOS — это автоматически обновляемая, минимальная, монолитная, ориентированная на контейнеры операционная система, предназначенная для кластеров, но работающая и автономно, оптимизированная для Kubernetes, но прекрасно работающая и без него. Она стремится объединить лучшее из CoreOS Container Linux и Fedora Atomic Host, интегрируя такие технологии, как Ignition из Container Linux, rpm-ostree и SELinux hardening из Project Atomic. Его цель — предоставить лучший контейнерный хост для безопасного и масштабного запуска контейнерных рабочих нагрузок.
Чтобы начать работу с Fedora CoreOS (FCOS), не нужно ничего настраивать при установке. Каждая система FCOS начинается с общего образа диска. Для каждого механизма развертывания (облачная ВМ, локальная ВМ, пустой металл) конфигурация может быть предоставлена при первой загрузке. FCOS считывает и применяет файл конфигурации с помощью Ignition. Для облачных развертываний Ignition собирает конфигурацию через механизм пользовательских данных облака. В случае «голого металла» Ignition вводит конфигурацию во время установки.
Хотите начать, проверьте:
- Как запустить Fedora CoreOS на KVM / OpenStack
Заключение
По мере того как микросервисы набирают обороты, лидеры отрасли закладывают фундамент для того, чтобы будущие приложения и рабочие нагрузки работали лучше, чем сегодня. Преимущества, которые дают контейнеры, невозможно переоценить.
Переносимость, возможность и простота развертывания микросервисов — это те преимущества, которых так не хватало, и вот они появились. Минимальные контейнерные операционные системы станут основными строительными блоками для гипермасштабирования кластеров Kubernetes благодаря своей структуре, которая хорошо сочетается с Kubernetes.