Деплой OpenStack в 2023 году
В июне 2023 года OpenInfra провела встречу в Ванкувере. Мне понравился доклад про способы деплоя OpenStack, на основе которого и написана моя заметка.
Одна из проблем начала работы с OpenStack - понимание, как его деплоить в своей инфраструктуре. Опций великое множество, посмотрим что нам предлагают:
- Разработка
- DevStack - OpenStack, разворачивающийся в виртуальной машине или на физическом железе. Позволяет развернуть облако как на одной ноде, так и собрать несколько в кластер. Развивается OpenStack-сообществом.
- Kubernetes
- OpenStack-Helm - OpenStack, собранный в Helm-chart, позволяющий управлять виртуальными машинами. Имеет в себе инструментарий для настройки ассетов, например, Storage-backends, таких как Ceph или NFS.
- Sunbeam - Относительно новое решение, позволяющее использовать OpenStack в Kubernetes как на однонодовых решениях, так и с сотнями и тысячами гипервизоров.
- Ansible
- OpenStack-Ansible - деплой OpenStack, упакованного в LXC-контейнеры, при помощи Ansible
- Kolla-Ansible - деплой OpenStack, упакованного в Docker-контейнеры, собирающиеся при помощи Kolla, при помощи Ansible
- OpenStack
- TripleO - использует OpenStack для деплоя OpenStack. В настоящий момент последняя поддерживаемая версия OpenStack - Wallaby. С февраля 2023 года дальнейшее развитие продукта не планируется.
- Canonical Infrastructure
- MicroStack - OpenStack в Kubernetes, упакованный в snap-пакет. Позволяет развернуть облако на локалхосте, либо небольшой приватный кластер.
- Charmed OpenStack - деплой OpenStack с использованием Juju. Использует фреймворк Charmed Operator Framework. Очень лёгкий в управлении и гибкий в настройке. Интегрируется в Metal-as-a-Service (MAAS)
- Baremetal
- Kayobe - инструмент, позволяющий установить OpenStack на железо, используя Bifrost, Kolla и Kolla-Ansible
- Airship - набор утилит, позволяющий развернуть облако с OpenStack в Kubernetes с нуля. Использует yaml для описания конфигурации деплоя.
- Internet of Things
- StarlingX - решение, предназначенное, в основном, для промышленного IOT, где критичны низкие задержки. Использует контейнеры
- Ручная установка
- Никто не запрещает собрать OpenStack из исходных кодов или использовать пакетный менеджер, однако это достаточно трудоёмкий и долгий путь, имеющий в настоящее время академическую ценность
Какой способ подойдёт мне?
Выбор способа установки зависит от того, как вы ответите сами себе на следующие вопросы.
Кто будет устанавливать, поддерживать и обслуживать OpenStack?
Чтобы было проще оценить свои силы, вот ещё вопросы:
- Вы управляете инфраструктурой своего дата-центра?
- Вы управляете своей сетевой инфраструктурой?
- Вы управляете конфигурацией операционных систем?
- Есть ли у вас опыт оркестрации сложной рабочей нагрузки на десятках-сотнях-тысячах нод?
Возможно ответы на эти вопросы помогут вам понять что лучше выбрать готовое коммерческое решение или позвать интеграторов, имеющих достаточный опыт.
В каком состоянии моя инфраструктура?
Если же вы всё таки решились деплоить OpenStack своими силами, ответьте на следующие вопросы:
- Вы используете Kubernetes?
- Какой дистрибутив ОС вы используете?
- Что вы используете для оркестрации своей инфраструктуры? (Ansible, Chef, Puppet, etc)
- Деплоите ли вы софт с помощью LXC или Docker?
- Используете ли вы свои образы операционных систем и зеркала дистрибутивов или полагаетесь на общедоступные комьюнити-сборки и репозитории?
Для чего вы будете использовать OpenStack?
Каждая система деплоя создана под специфические задачи различными людьми. Схожи ли их задачи и взгляды с вашими?
Достаточно ли у вас опыта в Kubernetes?
Если да, OpenStack-Helm может вам подойти
- OpenStack-Helm использует Helm для деплоя OpenStack в Kubernetes, давая возможность запускать виртуальные машины
- Что такое Helm?
- Это пакетный менеджер для Kubernetes
- С помощью Helm вы можете упаковать свой деплой и управлять им в дальнейшем
- Деплой представляет собой Helm-chart
- OpenStack-Helm представляет собой Helm-chart'ы для деплоя OpenStack и сопутствующего программного обеспечения
- Также OpenStack-Helm предоставляет инструменты и скрипты для настройки ассетов, например storage-бэкэнды
- OpenStack-Helm деплоится через Ubuntu и Docker
Используете ли вы Ansible?
OpenStack-Ansible и Kolla-Ansible могут быть хорошим решением, т.к. используют Ansible для деплоя OpenStack
- Используете ли вы LXC или Docker?
- OpenStack-Ansible деплоит компоненты OpenStack используя LXC
- Kolla-Ansible деплоит компоненты OpenStack используя Docker
- Оба решения достаточно гибки и имеют меньше ограничений, чем другие способы деплоя OpenStack
- У решения большая поддержка операционных систем, таких как Debain- и RHEL-based
Есть ли у вас baremetal сервера?
Выводы
Переводить свою инфраструктуру в облако OpenStack - задача ответственная, однако способов минимизировать риски на этапе принятия решения и внедрения достаточно. Можно протестировать облако как на своей рабочей машине, так и в тестовой лаборатории, развернув его за час-два. После этого можно проводить внедрения на реальной инфраструктуре. Можно комбинировать различные способы деплоя и добавлять в них свои решения. Дьявол, как известно, кроется в деталях, но всё зависит только от собственных сил и возможностей.