Deckhouse Platform в Microsoft Azure

Перед установкой обязательно проверьте:

  • Квоты облачного провайдера для развёртывания кластера.
  • На ВМ установлен пакет cloud-init. После старта ВМ запущены службы cloud-config.service, cloud-final.service, cloud-init.service.
  • В шаблоне виртуальной машины присутствует только один диск.
  • Правила межсетевого экрана и группы безопасности разрешают UDP-трафик между узлами кластера. Новый кластер по умолчанию использует CNI Cilium с туннелированием трафика подов через VXLAN. Для работы Cilium на узлах требуется ядро Linux версии 5.8 или новее, а список портов приведён в разделе «Сетевое взаимодействие компонентов платформы».

Дополнительные требования и сведения

  • Для ContainerdV2 на узлах кластера ОС на виртуальных машинах должна соответствовать требованиям:
    • ядро Linux версии 5.8 и новее, за исключением диапазонов 6.12.0–6.12.28 или 6.14.0–6.14.6 (эти версии подвержены уязвимости CVE-2025-37999 в EROFS);
    • поддержка CgroupsV2;
    • systemd версии 244 и новее;
    • поддержка модуля ядра erofs.

    Подробнее в разделе «ClusterConfiguration».

  • Начиная с версии 1.74 в Deckhouse Platform появился механизм контроля целостности модулей (защита от подмены и модификаций). Он включается автоматически, если на узлах ОС поддерживает модуль ядра erofs. Если erofs недоступен, Deckhouse Platform продолжит работать как раньше, но контроль целостности будет отключён, и в мониторинге появится алерт о недоступности механизма.

Подготовьте окружение Microsoft Azure, чтобы Deckhouse Platform мог управлять ресурсами в облаке. Полная инструкция приведена на странице подготовки окружения модуля cloud-provider-azure.

Для управления ресурсами в Microsoft Azure нужны учётная запись Azure и хотя бы одна привязанная подписка (Subscription).

Создайте сервисный аккаунт для Deckhouse Platform. Выполните следующие команды на персональном компьютере с помощью Azure CLI.

Установите Azure CLI. Авторизуйтесь в Azure и сохраните идентификатор подписки в переменную окружения SUBSCRIPTION_ID:

export SUBSCRIPTION_ID=$(az login | jq -r '.[0].id')

Команда сохраняет идентификатор первой подписки учётной записи. Если подписок несколько, укажите в переменной идентификатор нужной.

Создайте сервисный аккаунт:

az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/$SUBSCRIPTION_ID" --name "account_name"

Значения из вывода команды и идентификатор подписки укажите в секции provider конфигурации:

  • appId — в параметре clientId;
  • password — в параметре clientSecret;
  • tenant — в параметре tenantId;
  • значение переменной SUBSCRIPTION_ID — в параметре subscriptionId.

Секрет в параметре clientSecret действует один год и не продлевается автоматически. Чтобы задать больший срок действия, добавьте к команде az ad sp create-for-rbac флаг --years. Флаг описан в справочнике Azure CLI.