Инфраструктурные ресурсы для Huawei DCS
Содержание
ОбзорУчетные данные облакаИспользование Web UIПредварительные требованияСоздание учетных данных облакаУправление учетными данными облакаИспользование YAMLТипы пользователей учетных данныхIP-пулыИспользование Web UIПредварительные требованияСоздание IP-пулаУправление IP-пуламиИспользование YAMLДополнительные NIC в IP-пулеПостоянные диски в IP-пулеЕмкость и размещение платформы DCSЗапуск диагностических фрагментовВыбор datastoreРазмещение хостов и высокая доступностьМежхостовая высокая доступность для Control PlaneУстранение неполадок: VM зависает вcreatingШаблоны машинИспользование Web UIПредварительные требованияСоздание шаблона машиныУправление шаблонами машинИспользование YAMLПродвинутый сценарий: развертывание в нескольких кластерах с общим хранилищемСвязи между ресурсамиСледующие шагиОбзор
Перед созданием кластеров в Huawei DCS необходимо настроить инфраструктурные ресурсы, включая учетные данные облака, IP-пулы и шаблоны машин.
Управлять инфраструктурными ресурсами можно либо через web UI, либо с помощью YAML-манифестов. Web UI предоставляет пошаговый интерфейс с валидацией, а YAML — возможности автоматизации.
В Huawei DCS IP-пул также содержит все диски, которые должны сохраняться при замене VM. Сюда входит обязательный для платформы диск /var/cpaas.
Требование к namespace
Все инфраструктурные ресурсы должны быть развернуты в namespace cpaas-system, чтобы обеспечить корректную интеграцию с платформой как business clusters.
Концепции платформы DCS
Если такие термины, как DCS Cluster, DCS Host, DCS VM Folder или DCS VM Template, вам незнакомы, либо неясно, как они соотносятся с пользовательскими ресурсами DCSCluster и DCSMachineTemplate, сначала прочитайте Huawei DCS Concepts and Terminology.
Учетные данные облака
Учетные данные облака хранят информацию о доступе к платформе DCS, необходимую для операций с кластером.
Использование Web UI
Предварительные требования
Перед созданием учетных данных облака проверьте следующие требования платформы DCS:
Конфигурация пользователя:
- Тип пользователя: один из следующих:
Interface interconnection user— значение по умолчанию; существующее поведение. Используйте его, если в портале DCS уже создан учетный записи в стиле interconnect.Domain user— пользователь, управляемый через LDAP/AD и directory service. Требует, чтобы в DCS была настроена доменная аутентификация вашим администратором DCS, а пользователь из directory service был заранее создан в портале DCS с приведенным ниже сопоставлением ролей.
- Роль: должна быть
administrator
Политика паролей (применяется только к Interface interconnection user):
Перейдите в System Management → Rights Management → Rights Management Policy и проверьте:
- Политика:
Whether to modify the password of an interface interconnection user upon password resetting and first login - Значение: должно быть установлено в No
Если установлено значение Yes, при первом входе пароль пользователя будет принудительно изменен, что приведет к сбою аутентификации и ошибкам при создании кластера.
Для Domain user жизненным циклом пароля управляет ваша LDAP/AD directory service, а не политика портала DCS.
Создание учетных данных облака
Путь в интерфейсе: Clusters → Cloud Credentials → Create Cloud Credential → Select Huawei DCS
Поля формы:
Правила валидации:
- Name должен содержать 1–63 символа, включать только строчные буквы, цифры и дефисы, а также начинаться и заканчиваться буквой или цифрой
- DCS Endpoint должен быть допустимым URL, начинающимся с
http://илиhttps://
Управление учетными данными облака
Просмотр учетных данных: перейдите в Clusters → Cloud Credentials, чтобы просмотреть все настроенные учетные данные с указанием типа, времени создания и автора.
Обновление учетных данных: нажмите Update у нужных учетных данных, чтобы изменить Display Name. Обновление пароля в текущей версии не поддерживается (планируется в одном из будущих релизов).
Удаление учетных данных: нажмите Delete, чтобы удалить учетные данные. Подтвердите удаление в диалоговом окне.
Поддержка Domain user: в этой версии только YAML
В настоящее время web UI создает только учетные данные типа Interface interconnection user. Чтобы создать учетные данные Domain user, используйте приведенный ниже путь YAML и задайте .data.userType как base64-значение domain (например, ZG9tYWlu) в Secret. Шаг кодирования в base64 показан в блоке Пример ниже на этой странице.
Использование YAML
Создайте ресурс Secret для хранения информации аутентификации DCS:
Пропустите ручной шаг base64 с помощью stringData
В примере выше используется data:, что является стандартом Kubernetes для Secrets — каждое значение уже должно быть закодировано в base64. Если вы предпочитаете задавать Secret в виде обычного текста, замените блок data: на stringData: и укажите значения напрямую. API server прозрачно кодирует их в base64 в момент записи, поэтому итоговый сохраненный Secret будет побайтно идентичен форме data:, а controller DCS Provider увидит тот же самый содержимое в любом случае.
stringData: — только для записи: после создания Secret команда kubectl get secret -o yaml будет показывать только форму data:, которая является каноническим представлением. Две формы взаимоисключающие в момент записи; не задавайте один и тот же ключ в обоих блоках.
Описание параметров:
Пример:
Типы пользователей учетных данных
DCS Provider поддерживает два типа пользователей учетных данных, которые выбираются с помощью необязательного ключа Secret userType:
Совместимость: существующие Secrets без ключа userType продолжают аутентифицироваться как и раньше; для использования учетных данных в стиле interconnect миграция не требуется.
Покрытие UI: текущая форма web UI не отображает поле userType. Чтобы использовать значение domain, настройте Secret через YAML.
IP-пулы
IP-пулы определяют сетевую конфигурацию (IP-адреса, маски подсети, шлюзы, DNS) для узлов кластера. Каждый пул может содержать несколько записей узлов, а каждый узел — несколько конфигураций сетевых интерфейсов.
Для кластеров DCS с несколькими NIC каждая запись IP может содержать элементы additionNic. Эти дополнительные NIC привязываются к слоту IP и применяются при создании новой VM провайдером. Обновление additionNic в существующем Pool не приводит к горячему добавлению NIC уже работающим VM.
Для постоянных дисков DCS каждая запись IP также может содержать элементы persistentDisk. Эти диски привязаны к слоту IP, а не к жизненному циклу VM, поэтому их можно отсоединить от старой VM и присоединить к VM-замене во время rolling upgrade. Используйте этот механизм для обязательного платформой диска /var/cpaas и для любых других локальных данных узла, которые должны переживать операции удаления и повторного создания. Начиная с DCS provider v1.0.16, такое объявление persistentDisk поддерживается только через YAML.
Использование Web UI
Предварительные требования
- Учетные данные облака должны быть созданы
Начиная с DCS provider v1.0.16, web UI для IP Pool охватывает только стандартные настройки IP, hostname и сети. Поле DCSIpHostnamePool.spec.pool[].persistentDisk в нем не отображается. Настраивайте постоянные диски через YAML-манифесты.
Создание IP-пула
Путь в интерфейсе: Clusters → Virtual Machine → IP Pools → Create IP Pool → Select Credential
Структура формы:
Форма IP Pool состоит из списка Pools. Каждый Pool представляет один узел и содержит:
- Node IP (обязательно, ровно один на Pool)
- Additional NIC IPs (необязательно, несколько на Pool)
Поля Node IP:
Поля Additional NIC IPs:
Правила валидации:
- IP-адреса должны быть уникальны в пределах одного IP Pool
- IP-адреса должны иметь корректный формат IPv4
- Маска подсети должна быть указана как допустимая длина CIDR-префикса, например
24. Не используйте/и не задавайте dotted-decimal формат, например255.255.255.0. - IP-адрес должен находиться в пределах настроенного диапазона подсети
- Gateway должен быть корректным IPv4-адресом в пределах диапазона подсети
Советы:
- Требуется как минимум одна запись узла
- Для каждого узла требуется ровно одна конфигурация Node IP
- Записи
additionNic[]необязательны для сценариев с несколькими NIC, например при разделении сети хранения
Управление IP-пулами
Просмотр пулов: перейдите в Clusters → Virtual Machine → IP Pools, чтобы просмотреть все настроенные пулы с их IP узлов и временем создания.
Обновление пулов: нажмите Update, чтобы добавить или удалить записи узлов и изменить сетевые конфигурации.
Удаление пулов: нажмите Delete, чтобы удалить пул. Подтвердите удаление в диалоговом окне.
Использование YAML
Создайте ресурс DCSIpHostnamePool:
Описание параметров:
*Поля, помеченные как Yes*, требуются провайдеру для определения целевой сети и подключения дополнительного NIC. Поля, помеченные как Recommended*, нужны для сгенерированной статической гостевой сетевой конфигурации. CRD не накладывает обязательность на эти поля.
Необходимо настроить информацию о машинах для количества машин, большего либо равного числу узлов, которое вы планируете развернуть. Недостаточное количество записей не позволит развернуть узлы.
Дополнительные NIC в IP-пуле
Объявляйте дополнительные NIC в DCSIpHostnamePool.spec.pool[].additionNic[].
Используйте это поле, когда узлу требуется дополнительная сеть, например сеть хранения, управления или изоляции приложений. Оставляйте основной .spec.pool[].ip как IP узла Kubernetes, если вы намеренно не планируете смену IP узла.
Как это применяется:
- Провайдер копирует
additionNic[]из слота Pool вDCSMachine.status.additionalNic, когда новыйDCSMachineзанимает этот слот. - Провайдер добавляет эти NIC при клонировании DCS VM.
- Гостевая ОС настраивает интерфейсы при первом запуске с помощью сгенерированной конфигурации NetworkManager.
- Существующие VM не обновляются на лету при последующем изменении Pool.
Границы сети:
- DCS Provider не резервирует IP-адреса дополнительных NIC на платформе DCS. Избегайте конфликтов IP до применения Pool.
- Ссылочные DVS и Port Group должны уже существовать, и целевые хосты DCS должны иметь к ним доступ.
- Для каждого дополнительного NIC указывайте и
dvSwitchName, иportGroupName. Провайдер использует их для определения URN Port Group перед клонированием VM. - Провайдер моделирует только IP, mask, gateway, DNS, DVS и Port Group. Метрики маршрутов, статические маршруты и роли NIC должны настраиваться через MCP или конфигурацию гостевой ОС.
- Если у дополнительного NIC задан gateway, убедитесь, что он неожиданно не перехватывает маршрут по умолчанию у основного NIC.
Постоянные диски в IP-пуле
Объявляйте диски, сохраняемые при обновлении, в DCSIpHostnamePool.spec.pool[].persistentDisk, а не в DCSMachineTemplate.
Начиная с DCS provider v1.0.16, YAML — единственный поддерживаемый способ объявлять такие постоянные диски.
- Используйте запись IP, чтобы привязать каждый постоянный диск к фиксированной идентичности
(ip, slot). - Используйте эту модель для обязательного платформой диска
/var/cpaas. - Оставляйте
DCSMachineTemplateсосредоточенным на системном диске и любых локальных для шаблона дисках, которые могут быть пересозданы вместе с VM. - Когда загружается VM-замена, скрипт настройки дисков в гостевой системе проверяет наличие существующей файловой системы. Если она уже есть, форматирование пропускается, и диск монтируется напрямую.
- Постоянные диски, управляемые пулом, требуют замены по одному. Если вы полагаетесь на эту функцию, установите
KubeadmControlPlane.spec.rolloutStrategy.rollingUpdate.maxSurge = 0иMachineDeployment.spec.strategy.rollingUpdate.maxSurge = 0.
Если вы планируете использовать постоянные диски, убедитесь, что шаблон DCS VM имеет версию 4.2.1 или новее, поскольку безопасное завершение работы и отсоединение диска зависят от guest tools внутри гостевой ОС.
Пример:
Описание полей постоянного диска:
Правила обновления:
- Вы можете добавлять новые записи
persistentDiskв существующий слот IP. Controller подключает вновь добавленный диск к работающей VM на стороне DCS, но не форматирует и не монтирует диск внутри гостевой ОС. Форматирование и монтирование в гостевой системе вступают в силу только после замены VM и выполнения сгенерированной настройки диска при bootstrap. - Controller создает новые постоянные тома как независимые persistent normal volumes. При повторном использовании существующего тома требуется только, чтобы том был независимым и постоянным; конкретный тип тома DCS не требуется.
- Не удаляйте существующие записи
persistentDiskиз spec. Webhook отклоняет удаление. - Считайте
format,optionsиpciTypeнеизменяемыми после создания. - Считайте изменения
quantityGBи datastore как изменения, чувствительные к rollout. Когда пул имеет cluster label, webhook выполняет лучшую по усилиям проверку на стороне платформы.isThinдействует только при создании: его изменение не приводит к валидации, reconciliation или конвертации существующих томов и влияет только на постоянные тома, созданные позже. - Считайте изменения
pathиmountOptionsизменениями на стороне гостевой системы, которые применяются на машинах-заменах во время rolling update.
Емкость и размещение платформы DCS
Перед созданием ресурсов DCSMachineTemplate проверьте, что целевые site DCS, datastore и compute cluster имеют достаточно свободной емкости для размещения запланированных VM, а также что политика планирования на стороне DCS может разместить новые VM на доступных хостах. Пропуск этих проверок — самая частая причина VM, которые как будто зависают в состоянии creating без ошибки, возвращаемой API DCS.
Запуск диагностических фрагментов
Проверки емкости и размещения ниже используют только операции чтения DCS REST. Перед запуском любого фрагмента задайте следующие переменные окружения в shell:
Задайте три переменные один раз в начале диагностической сессии:
Обращение с токеном Не записывайте токен в файл и не сохраняйте его в shell history. Session token предоставляет те же привилегии, что и базовый пользователь DCS, который обычно является administrator.
Повторно используйте $DCS_BASE, $SITE и $TOKEN во всех последующих диагностических фрагментах на этой странице. Обновляйте токен, повторно выполняя команду POST /service/session, когда API начинает возвращать errorCode: 10000002 (session expired or not logged in).
Выбор datastore
Каждая запись DCSMachineDiskSpec привязывает диск к datastore DCS через одно из двух взаимоисключающих полей:
datastoreName— закрепляет диск за конкретным datastore. Планировщик DCS не учитывает соседние datastores, даже если у них есть свободное место. Это самое жесткое привязывание.datastoreClusterName— закрепляет диск за datastore cluster (группой datastores на стороне DCS). Планировщик DCS выбирает из кластера конкретный datastore, удовлетворяющий требованиям по емкости. Это более безопасное значение по умолчанию, когда платформа предоставляет datastore cluster.
Предпочитайте datastoreClusterName, когда администратор DCS настроил datastore cluster, чтобы один почти заполненный datastore не блокировал развертывание, пока соседние datastores еще имеют свободное место.
Предварительная проверка емкости:
Перед применением нового DCSMachineTemplate перечислите существующие datastores DCS и убедитесь, что целевой имеет достаточно свободной емкости для худшего случая system disk + ∑(размер spec disk) × количество реплик. Из среды с доступом к API DCS список только для чтения выглядит так:
Пара cp / worker в каждом DCSMachineTemplate обычно требует системный диск (значение по умолчанию шаблона, часто ~80 GB) плюс явные data disks, указанные в spec, поэтому один control-plane node с etcd 10G + kubelet 100G + containerd 100G + /var/cpaas 100G потребляет примерно 390 GB еще до учета системного диска шаблона. Datastore, занятый более чем примерно на 70 %, — явный сигнал выбрать другой datastore: даже если абсолютный свободный объем кажется достаточным, фрагментация и резервы могут привести к зависанию размещения новой VM.
Размещение хостов и высокая доступность
Размещение хостов на платформе DCS выполняет DCS scheduler. DCS Provider не предоставляет способ закрепить виртуальную машину за конкретным DCS Host через DCSMachineTemplate. Поэтому виртуальные машины, созданные из одного шаблона, могут оказаться на одном и том же физическом хосте.
Из этого следуют два последствия:
- Локальные перегрузки емкости: если нагрузка хостов в DCS cluster распределена неравномерно (например, один хост сильно перегружен по CPU, а другой почти без нагрузки), DCS scheduler может отклонить новые размещения на перегруженном хосте. Задача развертывания может зависнуть, пока нагрузка не будет перераспределена на стороне DCS или не будет включен DRS. Используйте фрагмент ниже, чтобы проверить, является ли причиной именно нагрузка хоста.
- Разнесение control plane зависит от DRS: виртуальные машины control plane не привязываются через machine template к конкретным хостам. Для высокодоступных развертываний включите provider-managed правило DRS mutual exclusion, как описано ниже в разделе Cross-Host High Availability for Control Plane.
Чтобы проверить текущую нагрузку на хосты перед применением нового шаблона:
Значение cpuMuxRatio (allocation CPU / physical cores) выше примерно 3× на каждом хосте кластера указывает на то, что cluster уже насыщен и, вероятно, будет отклонять новые размещения, пока нагрузка не будет перераспределена на стороне DCS.
Межхостовая высокая доступность для Control Plane
DCS Provider не реализует закрепление хостов и распределение Cluster API FailureDomain. Вместо этого он может поддерживать управляемое провайдером правило DCS DRS для виртуальных машин control plane, если включен DCSCluster.spec.controlPlaneHA.
Провайдер создает и обновляет правило DRS ruleType=2 mutual-exclusion после появления VM control plane и определения их VM URN. В правиле перечисляются текущие VM control plane для одного workload cluster, и DCS scheduler получает указание размещать их на разных физических хостах. DCS по-прежнему отвечает за выполнение решения о размещении и любую миграцию во время работы.
Провайдер не вызывает DCS Run DRS API и не применяет рекомендации DRS. Если ControlPlaneHAReady остается False с причиной ControlPlaneHAPending после того, как правило уже было поддержано, значит DCS scheduler еще не сошелся по размещению. Подождите, пока выполнится планирование на стороне DCS, или используйте процесс операций платформы DCS, чтобы запустить DRS и применить сгенерированные рекомендации.
Перед включением этой функции проверьте следующие требования на стороне DCS:
- Для целевого compute cluster DCS включен DRS.
- У целевого compute cluster DCS достаточно исправных хостов и емкости. Для control plane с тремя репликами обычно требуется как минимум три пригодных хоста.
- Выбранные datastores видимы со всех хостов, на которых могут работать VM control plane.
- Runtime DRS migration не блокируется ограничениями со стороны DCS, например подключенным устройством CD-ROM.
Включите функцию в DCSCluster.spec.controlPlaneHA, когда пишете манифест кластера. Пример манифеста и отслеживаемые поля статуса см. в Configure DCSCluster и Verify Control Plane HA.
После создания кластера проверьте condition и status в DCSCluster:
ControlPlaneHAReady=True означает, что управляемое провайдером правило DRS существует и провайдер наблюдает текущие VM control plane на разных хостах DCS. ControlPlaneHAReady=False с причиной ControlPlaneHAPending обычно означает, что controller ждет URN VM, ждет достаточного числа участников или ждет, пока размещение на стороне DCS придет к устойчивому состоянию. ControlPlaneHAReady=False с причиной ControlPlaneHAFailed означает, что провайдер не смог запросить, проверить, создать, обновить, удалить или проверить правило DRS. Прочитайте message condition перед просмотром логов controller.
Устранение неполадок: VM зависает в creating
Если DCSMachine остается в состоянии Provisioning, при этом у него задан status.cdRomFile (то есть аутентификация в API DCS и загрузка ISO прошли успешно), но VM на стороне DCS так и не выходит из status=creating и не получает hostName, ошибка почти всегда находится на уровне размещения DCS, а не в controller.
Диагностика по шагам:
-
Убедитесь, что это зависание на этапе размещения, а не медленная загрузка. Запросите VM и соответствующую deploy task в DCS:
Признаки зависания на этапе размещения:
status=creating,hostName=(пусто / не назначен), массивdisksпустой или не меняется, а deploy task находится на одном и том же значенииprogressбез ошибок более чем ~5 минут. -
Проверьте свободное место в datastore и нагрузку хостов с помощью фрагментов из разделов Choosing a datastore и Host placement requirements. Наиболее частые причины — datastore, занятый более чем на 70 %, или все хосты с высоким
cpuMuxRatio. -
Перераспределите нагрузку на стороне DCS. Если один хост перегружен, а на других есть свободная емкость, попросите команду платформы DCS перераспределить нагрузку (ручной
Migrateили перебалансировка через DRS) перед повторной попыткой. DCS Provider не предоставляет закрепление хоста на уровне шаблона, поэтому это исправление находится в зоне ответственности команды платформы DCS. -
Если deploy task на стороне DCS действительно завис в состоянии deadlock (его можно отменить, но он не реагирует на ACP-driven
DeleteVm), эскалируйте проблему администратору DCS с учетными данными portal-admin, чтобы он отменил задачу. REST API 7443 не предоставляет endpoint отмены задачи для неадминистраторских пользователей, поэтому путь восстановления также относится к зоне ответственности команды платформы DCS, а не ACP. -
Учитывайте побочные эффекты сериализации. В средах с общей блокировкой DeployVM одна зависшая задача может привести к тому, что все новые развертывания будут останавливаться на одном и том же проценте выполнения. Обычно устранение исходной зависшей задачи разблокирует очередь.
DCSMachine, у которого conditions статуса показывают InfrastructureReady=False reason=WaitingForInfrastructure более 10 минут вместе с описанными выше симптомами, следует рассматривать как инцидент на платформе DCS, а не как регрессию Cluster API или DCS Provider.
Шаблоны машин
Шаблоны машин определяют спецификацию виртуальной машины (VM template, CPU, память, диск, сеть) для узлов кластера. Каждый шаблон машины имеет Type, который определяет его назначение:
- Control Plane: для узлов control plane
- Worker Node: для рабочих узлов
Использование Web UI
Предварительные требования
- IP Pool должен быть создан
- VM Template должен быть создан на платформе DCS с использованием образа Alauda OS
- ConfigMap YAML должен быть применен к глобальному кластеру
VM Template и ConfigMap:
Каждый релиз Alauda OS включает YAML ConfigMap, который сопоставляет VM templates с версиями Kubernetes. Примените этот YAML перед созданием шаблонов машин:
Важно: значение метки cpaas.io/dcs-vm-template должно совпадать с именем VM template на платформе DCS.
Создание шаблона машины
Путь в интерфейсе: Clusters → Virtual Machine → Machine Templates → Create Machine Template → Select Credential
Поля формы:
Конфигурация диска:
Конфигурация диска зависит от типа шаблона.
Обязательные диски для Control Plane:
Обязательные диски для Worker Node:
Вы можете добавлять дополнительные диски, но должны сохранить все обязательные диски, перечисленные выше.
Постоянный диск, обязательный для платформы
/var/cpaas по-прежнему требуется платформой, но больше не документируется как диск DCSMachineTemplate. Настраивайте его в соответствующей записи DCSIpHostnamePool.spec.pool[].persistentDisk, чтобы он мог переживать замену VM.
Описание полей диска:
Совет по выбору VM Template:
Если несколько VM templates имеют одну и ту же версию Kubernetes, выбирайте шаблон с более новой версией OS, чтобы получить последние обновления безопасности и улучшения системы.
Управление шаблонами машин
Просмотр шаблонов: перейдите в Clusters → Virtual Machine → Machine Templates, чтобы просмотреть все шаблоны с их VM Template Name, Location, Specs и IP Pool.
Обновление шаблонов: нажмите Update, чтобы изменить спецификации. Обратите внимание, что поле Name нельзя изменить после создания.
Удаление шаблонов: нажмите Delete, чтобы удалить шаблон. Подтвердите удаление в диалоговом окне.
Использование YAML
Создайте ресурс DCSMachineTemplate:
Описание параметров:
*Обязательно, если указан родительский объект
Продвинутый сценарий: развертывание в нескольких кластерах с общим хранилищем
Сценарий по умолчанию предполагает, что DCS VM Template (vmTemplateName) и клонированные виртуальные машины находятся в одном и том же DCS Cluster. Для большинства развертываний это предположение верно, и поле spec.template.spec.location используется только для организационной группировки в виде VM Folder.
Развертывания, которые охватывают несколько DCS Clusters и хотят клонировать одну общую DCS VM Template в другой целевой DCS Cluster, требуют выполнения следующих условий:
- DCS Datastore, в котором хранится DCS VM Template, должен быть видим для целевого DCS Cluster. Это верно для datastores SAN, IPSAN, NAS или FusionStorage, настроенных для межкластерного доступа; это не верно для datastore на локальном диске хоста.
- Сетевые ресурсы на стороне DCS (distributed virtual switches и port groups), на которые ссылается
vmConfig, также должны быть видимы целевому DCS Cluster.
Когда оба условия выполнены, клонированная виртуальная машина может быть размещена в целевом DCS Cluster путем установки spec.template.spec.location.type: cluster и spec.template.spec.location.name: <target-cluster-name> вместо значения по умолчанию type: folder. Если datastore не является общим для DCS Clusters, задача клонирования завершается ошибкой на стороне платформы DCS. Рекомендуемая альтернатива — подготовить отдельный DCS VM Template внутри каждого целевого DCS Cluster, чтобы каждый DCSMachineTemplate ссылался на шаблон, который уже находится в том cluster, где будут работать виртуальные машины.
Подтвердите межкластерную видимость datastore у администратора платформы DCS перед использованием этой конфигурации.
Требования к хранилищу
Межхостовый доступ к Datastore
Datastore clusters (datastoreClusterName) должны поддерживать межхостовый доступ на всех физических машинах в платформе DCS. Если datastore доступен только на определенных хостах, создание VM завершится ошибкой, когда платформа DCS попытается запланировать VM на другом хосте.
Общее хранилище для Ignition Если ваш datastore не поддерживает прямую загрузку файлов (это требуется для конфигураций Ignition), необходимо предоставить решение с общим хранилищем, например NFS, поддерживающее монтирование с нескольких хостов.
Правила конфигурации дисков Вы можете добавлять пользовательские диски шаблона, но должны сохранять обязательные диски в зависимости от роли узла:
- Control plane:
systemVolume,/var/lib/kubelet,/var/lib/containerd,/var/lib/etcd - Worker:
systemVolume,/var/lib/kubelet,/var/lib/containerdНастройте/var/cpaasв IP-пуле как постоянный диск.
Связи между ресурсами
Инфраструктурные ресурсы имеют следующие зависимости:
Повторное использование ресурсов:
- Одни учетные данные облака можно использовать для нескольких кластеров
- Для разных сетевых сегментов можно создавать несколько IP-пулов
- Для разных типов узлов и спецификаций можно создавать несколько шаблонов машин
Следующие шаги
После настройки инфраструктурных ресурсов: