Microsoft — это не только компания Windows. Теперь он поддерживает несколько дистрибутивов Linux наряду со своими собственными операционными системами. Важно помнить, что это не Linux общего назначения, такие как Ubuntu или Red Hat.
Год назад Microsoft купила немецкого поставщика Linux Kinvolk, чтобы поддержать использование контейнеров в Azure, особенно на облачных платформах, таких как Kubernetes. Kinvolk является домом для популярной платформы Linux Flatcar, оптимизированной для контейнеров, а также защищенной платформы Kubernetes на базе Linux Lokomotive. Kinvolk взял на себя эстафету выпуска версии Linux для контейнеров после того, как Red Hat приобрела CoreOS и объединила ее стек с Fedora, что снизило ее эффективность для таких платформ, как Kubernetes.
Microsoft — это не только компания Windows. Теперь он поддерживает несколько дистрибутивов Linux наряду со своими собственными операционными системами. Важно помнить, что это не Linux общего назначения, такие как Ubuntu или Red Hat.
Вместо этого они нацелены на конкретные варианты использования:
Год назад Microsoft купила немецкого поставщика Linux Kinvolk, чтобы поддержать использование контейнеров в Azure, особенно на облачных платформах, таких как Kubernetes. Kinvolk является домом для популярной платформы Linux Flatcar, оптимизированной для контейнеров, а также защищенной платформы Kubernetes на базе Linux Lokomotive. Kinvolk взял на себя эстафету выпуска версии Linux для контейнеров после того, как Red Hat приобрела CoreOS и объединила ее стек с Fedora, что снизило ее эффективность для таких платформ, как Kubernetes.
Приобретая Kinvolk, Microsoft отметила его важность для Azure и взяла на себя обязательство поддерживать проект развития сообщества Flatcar, намереваясь изучить то, как работает команда Kinvolk. Интересно услышать, как Microsoft говорит, что хочет научиться хорошо работать с открытым исходным кодом, поскольку ясно, что компания делает большой переход к методам открытого исходного кода. Возможно, она никогда не откроет исходный код Windows или Office, но использует открытый исходный код как способ создания новых инструментов и платформ и управления ими.
Понятно, что изначально Microsoft рассматривала Flatcar как замену CoreOS в Azure. За год до приобретения компания рекомендовала клиентам перейти на Flatcar до истечения срока действия CoreOS в мае 2020 года. Миграция заключалась в изменении образов развертывания Azure в репозитории Kubernetes или контейнера. Кроме того, системы CoreOS можно переключить на Flatcar с помощью простого скрипта для загрузки и запуска инструментов обновления. Это позволит существующим узлам продолжать работу без полного повторного развертывания.
После запуска новой ОС вы можете потратить время на создание и тестирование новых образов перед повторным развертыванием среды контейнера.
Если вы еще не видели Flatcar, это минимальный дистрибутив Linux, предназначенный для запуска контейнеров и ничего больше. Flatcar основывается на многих базовых концепциях разработки облачных приложений, предоставляя неизменную инфраструктуру, которая повторно развертывается с каждой новой сборкой вашего кода.
Вы не хотите, чтобы ваша ОС изменялась под вашим приложением, даже если она размещает только контейнеры вашего приложения, поэтому Flatcar настраивается перед развертыванием с системным разделом только для чтения. Его можно настроить на автоматическое обновление исправлений безопасности, хотя вы можете предпочесть сделать обновления частью процесса сборки и развертывания.
Kinvolk предоставляет инструменты для управления процессом обновления, управления тем, какие экземпляры могут быть обновлены, когда обновления могут запускаться и как часто их следует применять. Наличие минимального Linux с заблокированной файловой системой, работающей в облаке, имеет большой смысл. Azure обеспечивает разделение между арендаторами, работающими на одном и том же оборудовании, но наличие неизменяемого узла контейнера значительно снижает риски безопасности, сохраняя небольшую поверхность атаки и гарантируя, что многие классы атак не будут выполняться на узле контейнера. Вы можете найти Flatcar в Azure Marketplace с версиями для трех разных каналов обновления: стабильной, бета-версии и альфа-версии.
Большинство производственных систем должны использовать стабильный канал, а для тестирования и разработки рекомендуется использовать бета-версию и альфа-версию. Вы можете предпочесть запускать бета- и альфа-версии в своих внутренних системах напрямую из Kinvolk, а не из Azure Marketplace.
Начало работы с Flatcar в Azure
Kinvolk предоставляет сценарии Azure CLI для установки Flatcar. Вы можете выбрать версию, указав SKU и версию перед созданием URN для устанавливаемого образа. Он принимает формат
Kinvolk поддерживает образы гипервизоров как 1-го, так и 2-го поколения, причем по умолчанию используется образ 1-го поколения. Если вы хотите использовать gen 2, добавьте -gen2 к имени канала в разделах SKU и URN сценариев установки. Кроме того, вы можете загрузить выбранный образ Flatcar, готовый для Azure, напрямую, поместив его в учетную запись хранения Azure. Kinvolk предоставляет сценарий, для которого требуется имя группы ресурсов и учетная запись хранения.
Однако на практике использование Azure Marketplace — лучший вариант, поскольку образ Flatcar уже находится в Azure, и вы не будете нести расходы на хранение. Хотя AKS (служба Azure Kubernetes) использует Ubuntu в качестве базовой ОС, вы по-прежнему можете воспользоваться преимуществами Flatcar в Azure, используя собственную установку Kubernetes или версию Azure поставщика API кластера для запуска собственного управляемого экземпляра Kubernetes.
На сайте Kinvolk есть инструкции по использованию AKS Engine, и хотя можно использовать автономную версию AKS, она устарела и больше не обновляется. Настройка и запуск Flatcar После того, как вы установили образ Flatcar, вам необходимо настроить его с помощью инструмента под названием Ignition, который вводит файл конфигурации JSON в пользовательскую среду Flatcar перед первой загрузкой. После загрузки файловая система Flatcar, предназначенная только для чтения, означает, что вы не можете вносить изменения.
Файлы конфигурации записываются с использованием YAML, создавая Container Linux Config. Это устанавливает базовую конфигурацию хоста контейнера, определяя, какие сервисные контейнеры он загружает, как они запускаются и как хост реагирует на сбой контейнера. Например, вы можете перезагружать самые последние образы контейнеров при запуске, удалять старые версии, корректно останавливать работу при завершении работы и перезапускать контейнеры, вышедшие из строя, через заданное время.
Kinvolk предоставляет инструмент для преобразования CLC YAML в JSON для использования с Ignition. После создания JSON его можно вставить в Flatcar с помощью Azure CLI в качестве пользовательских данных при настройке контейнера. Azure CLI может добавлять пользователей и ключи SSH к образам, если вам нужно войти в них для целей разработки и отладки. Производственным экземплярам это не понадобится, так как это увеличивает риски безопасности. Команда рекомендует протестировать виртуальную машину Flatcar на машине разработки, прежде чем переходить к производству. Хотя вы можете использовать Hyper-V, большая часть документации использует QEMU с открытым исходным кодом, поэтому вы можете предпочесть тестирование в системе Linux.
Этот подход позволяет использовать собственные тестовые образы Kinvolk, устанавливая JSON-файл Ignition при первой загрузке. Если вы экспериментируете с разными контейнерами и конфигурациями, просто удаляйте виртуальную машину каждый раз, когда вносите изменения, и используйте другую копию образа Flatcar.
Flatcar предназначен не только для Azure. Он работает во всех основных общедоступных облаках, а также в пограничных и частных облаках. Поскольку одни и те же файлы конфигурации работают во всех системах, Flatcar представляет собой интересный вариант для гибридных облачных и пограничных развертываний, где вы можете разработать рабочие нагрузки один раз и доставить их нескольким целям с минимальными изменениями.
Также имеется поддержка таких инструментов, как Terraform, поэтому вы можете сделать Flatcar частью платформы «инфраструктура как код», отделив управление узлами контейнеров от приложений. За последние несколько лет Microsoft многое узнала об управлении приобретениями с открытым исходным кодом. Как и Deis Labs, Kinvolk остается почти независимой организацией. Это позволяет ему продолжать поддерживать свое сообщество с открытым исходным кодом, а также создавать и проводить собственные эксперименты.
Между тем, Microsoft может извлечь уроки из Flatcar, поскольку она расширяет свои внутренние предложения Linux и добавляет в свой портфель больше проектов с открытым исходным кодом.
разработка, облачные хранилища, Microsoft, Linux Flatcar, Flatcar, новости IT