Поделиться через


Создание и подготовка кластера с помощью Azure CLI

В этой статье описывается, как создать кластер с помощью интерфейса командной строки Azure (AzCLI). В этом документе также показано, как проверить состояние, обновить или удалить кластер.

Необходимые компоненты

  • Убедитесь, что в регионе Azure существует контроллер Network Fabric и кластерный manger
  • Убедитесь, что Network Fabric успешно подготовлена

Руководство по API и метрики

Руководство по API содержит сведения о поставщиках ресурсов и моделях ресурсов и API.

Метрики, созданные из данных ведения журнала, доступны в метриках Azure Monitor.

Создание кластера

Ресурс кластера инфраструктуры представляет локальное развертывание платформы в диспетчере кластеров. Все остальные ресурсы, относящиеся к платформе, зависят от него в течение своего жизненного цикла.

Перед этим локальным развертыванием необходимо создать Network Fabric. Каждый локальный экземпляр Оператора Nexus имеет связь "один к одному" с Network Fabric.

Создайте кластер с помощью AZ CLI:

az networkcloud cluster create --name "$CLUSTER_NAME" --location "$LOCATION" \
  --extended-location name="$CL_NAME" type="CustomLocation" \
  --resource-group "$CLUSTER_RG" \
  --analytics-workspace-id "$LAW_ID" \
  --cluster-location "$CLUSTER_LOCATION" \
  --network-rack-id "$AGGR_RACK_RESOURCE_ID" \
  --rack-sku-id "$AGGR_RACK_SKU"\
  --rack-serial-number "$AGGR_RACK_SN" \
  --rack-location "$AGGR_RACK_LOCATION" \
  --bare-metal-machine-configuration-data "["$AGGR_RACK_BMM"]" \
  --storage-appliance-configuration-data '[{"adminCredentials":{"password":"$SA_PASS","username":"$SA_USER"},"rackSlot":1,"serialNumber":"$SA_SN","storageApplianceName":"$SA_NAME"}]' \
  --compute-rack-definitions '[{"networkRackId": "$COMPX_RACK_RESOURCE_ID", "rackSkuId": "$COMPX_RACK_SKU", "rackSerialNumber": "$COMPX_RACK_SN", "rackLocation": "$COMPX_RACK_LOCATION", "storageApplianceConfigurationData": [], "bareMetalMachineConfigurationData":[{"bmcCredentials": {"password":"$COMPX_SVRY_BMC_PASS", "username":"$COMPX_SVRY_BMC_USER"}, "bmcMacAddress":"$COMPX_SVRY_BMC_MAC", "bootMacAddress":"$COMPX_SVRY_BOOT_MAC", "machineDetails":"$COMPX_SVRY_SERVER_DETAILS", "machineName":"$COMPX_SVRY_SERVER_NAME"}]}]'\
  --managed-resource-group-configuration name="$MRG_NAME" location="$MRG_LOCATION" \
  --network fabric-id "$NF_ID" \
  --cluster-service-principal application-id="$SP_APP_ID" \
    password="$SP_PASS" principal-id="$SP_ID" tenant-id="$TENANT_ID" \
  --subscription "$SUBSCRIPTION_ID" \
  --secret-archive "{key-vault-id:$KVRESOURCE_ID, use-key-vault:true}" \
  --cluster-type "$CLUSTER_TYPE" --cluster-version "$CLUSTER_VERSION" \
  --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"

Параметры для операций кластера

Наименование параметра Description
CLUSTER_NAME Имя ресурса кластера
LOCATION Регион Azure, в котором развернут кластер
CL_NAME Пользовательское расположение диспетчера кластеров из портал Azure
CLUSTER_RG Имя группы ресурсов кластера
LAW_ID Идентификатор рабочей области Log Analytics для кластера
CLUSTER_LOCATION Локальное имя кластера
AGGR_RACK_RESOURCE_ID RackID для агрегатной стойки
AGGR_RACK_SKU Номер SKU стойки для агрегатной стойки
AGGR_RACK_SN Серийный номер стойки для агрегатной стойки
AGGR_RACK_LOCATION Физическое расположение стойки для агрегатной стойки
AGGR_RACK_BMM Используется только для развертывания одной стойки, пустой для нескольких стоек
SA_NAME Имя устройства хранилища
SA_PASS Пароль администратора устройства хранилища
SA_USER Пользователь администратора устройства хранилища
SA_SN Серийный номер устройства хранилища
COMPX_RACK_RESOURCE_ID RackID для стойки CompX; повторение для каждой стойки в определениях вычислительных стоек
COMPX_RACK_SKU Номер SKU стойки для стойки CompX; повторение для каждой стойки в определениях вычислительных стоек
COMPX_RACK_SN Серийный номер стойки для стойки CompX; повторение для каждой стойки в определениях вычислительных стоек
COMPX_RACK_LOCATION Физическое расположение стойки для стойки CompX; повторение для каждой стойки в определениях вычислительных стоек
COMPX_SVRY_BMC_PASS Пароль CompX Rack ServerY BMC, повторите для каждой стойки в определениях вычислительной стойки и для каждого сервера в стойке
COMPX_SVRY_BMC_USER Пользователь CompX Rack ServerY BMC, повторяйте каждую стойку в определениях вычислительной стойки и для каждого сервера в стойке
COMPX_SVRY_BMC_MAC Mac-адрес CompX Rack ServerY BMC, повторяйте для каждой стойки в определениях вычислительной стойки и для каждого сервера в стойке
COMPX_SVRY_BOOT_MAC Mac-адрес mac-адреса загрузки NIC CompX Rack ServerY повторяйте для каждой стойки в определениях стоек вычислений и для каждого сервера в стойке
COMPX_SVRY_SERVER_DETAILS Сведения о CompX Rack ServerY, повторите для каждой стойки в определениях вычислительной стойки и для каждого сервера в стойке
COMPX_SVRY_SERVER_NAME Имя CompX Rack ServerY, повторите для каждой стойки в определениях вычислительной стойки и для каждого сервера в стойке
MRG_NAME Имя группы управляемых ресурсов кластера
MRG_LOCATION Регион Azure кластера
NF_ID Ссылка на Network Fabric
SP_APP_ID Идентификатор приложения субъекта-службы
SP_PASS Пароль субъекта-службы
SP_ID Идентификатор субъекта-службы
TENANT_ID Идентификатор клиента подписки
SUBSCRIPTION_ID ИД подписки
KV_RESOURCE_ID Идентификатор Key Vault
CLUSTER_TYPE Тип кластера, single или MultiRack
CLUSTER_VERSION Версия кластера NC
TAG_KEY1 Необязательный тег1 для передачи в создание кластера
TAG_VALUE1 Необязательное значение тега1 для передачи в создание кластера
TAG_KEY2 Необязательный тег 2 для передачи в создание кластера
TAG_VALUE2 Необязательное значение тега 2 для передачи в создание кластера

Создание кластера с помощью редактора шаблонов Azure Resource Manager

Альтернативным способом создания кластера является редактор шаблонов ARM.

Чтобы создать кластер таким образом, необходимо предоставить файл шаблона (cluster.jsonc) и файл параметров (cluster.parameters.jsonc). Примеры для кластера SKU с 8-стойкой 2M16C можно найти с помощью этих двух файлов:

cluster.jsonc , cluster.parameters.jsonc

Примечание.

Чтобы получить правильное форматирование, скопируйте необработанный файл кода. Значения в файле cluster.parameters.jsonc зависят от клиента и не могут быть полным списком. Обновите поля значений для конкретной среды.

  1. В веб-браузере перейдите на портал Azure и войдите.
  2. На панели поиска портал Azure найдите "Развернуть пользовательский шаблон", а затем выберите его из доступных служб.
  3. Щелкните "Создать собственный шаблон" в редакторе.
  4. Щелкните "Загрузить файл". Найдите файл шаблона cluster.jsonc и отправьте его.
  5. Нажмите кнопку Сохранить.
  6. Нажмите кнопку "Изменить параметры".
  7. Нажмите кнопку "Загрузить файл". Найдите файл параметров cluster.parameters.jsonc и отправьте его.
  8. Нажмите кнопку Сохранить.
  9. Выберите правильную подписку.
  10. Найдите группу ресурсов, чтобы узнать, существует ли она. Если нет, создайте новую группу ресурсов.
  11. Убедитесь, что все сведения об экземпляре верны.
  12. Щелкните Просмотреть и создать.

Проверка кластера

Успешное создание кластера Nexus операторов приводит к созданию кластера AKS в подписке. Идентификатор кластера, состояние подготовки кластера и состояние развертывания возвращаются в результате успешного выполнения cluster create.

Просмотрите состояние кластера:

az networkcloud cluster show --resource-group "$CLUSTER_RG" \
  --cluster-name "$CLUSTER_RESOURCE_NAME"

Создание кластера завершается после того, как provisioningState ресурс отображает: "provisioningState": "Succeeded"

Ведение журнала кластера

Журналы создания кластера можно просмотреть в следующих расположениях:

  1. портал Azure журналы действий Resource/ResourceGroup.
  2. Azure CLI с --debug флагом, переданным в командной строке.

Развертывание кластера

После создания кластера можно активировать действие развертывания кластера. Действие развертывания кластера создает образ начальной загрузки и развертывает кластер.

Развертывание кластера инициирует последовательность событий, происходящих в диспетчере кластеров.

  1. Проверка свойств кластера или стойки
  2. Создание загрузочного образа для эфемерного кластера начальной загрузки (проверка инфраструктуры).
  3. Взаимодействие с интерфейсом IPMI целевого компьютера начальной загрузки.
  4. Проверка оборудования
  5. Мониторинг процесса развертывания кластера.

Разверните локальный кластер:

az networkcloud cluster deploy \
  --name "$CLUSTER_NAME" \
  --resource-group "$CLUSTER_RG" \
  --subscription "$SUBSCRIPTION_ID" \
  --no-wait --debug

Совет

Чтобы проверить состояние az networkcloud cluster deploy команды, ее можно выполнить с помощью флага --debug . Это позволит получить или Location заголовок, используемый Azure-AsyncOperation для запроса operationStatuses ресурса. Дополнительные сведения см. в разделе " Сбой развертывания кластера". При необходимости команда может выполняться асинхронно с помощью флага --no-wait .

Развертывание кластера с помощью проверки оборудования

Во время процесса развертывания кластера выполняется одна из этапов проверки оборудования. Процедура проверки оборудования выполняет различные проверки и проверяет компьютеры, предоставляемые с помощью определения стойки кластера. На основе результатов этих проверок и всех пропущенных пользователем компьютеров определяется, достаточно ли переданных узлов и /или доступны для удовлетворения пороговых значений, необходимых для продолжения развертывания.

Внимание

Процесс проверки оборудования записывает результаты в указанный analyticsWorkspaceId в разделе "Создание кластера". Кроме того, предоставленный субъект-служба в объекте кластера используется для проверки подлинности в API сбора данных рабочей области Log Analytics. Эта возможность отображается только во время нового развертывания (зеленое поле); существующий кластер не будет иметь журналы, доступные ретроактивно.

По умолчанию процесс проверки оборудования записывает результаты в настроенный кластер analyticsWorkspaceId. Однако из-за характера сбора и оценки схемы данных рабочей области Log Analytics может потребоваться задержка приема, которая может занять несколько минут или больше. По этой причине развертывание кластера продолжается, даже если не удалось записать результаты в рабочую область Log Analytics. Чтобы устранить это возможное событие, результаты для избыточности также регистрируются в диспетчере кластеров.

В предоставленной рабочей области Log Analytics объекта кластера появится новая настраиваемая таблица с именем кластера в качестве префикса и суффикса *_CL . В разделе журналов ресурса LAW запрос можно выполнить в новой *_CL таблице настраиваемого журнала.

Действие развертывания кластера с пропуском конкретного компьютера без операционной системы

Параметр можно передать в команду развертывания, представляющую имена компьютеров без операционной системы в кластере, которые должны пропускаться во время проверки оборудования. Пропущенные узлы не проверяются и не добавляются в пул узлов. Кроме того, пропущенные узлы не учитывают общий объем, используемый вычислениями пороговых значений.

az networkcloud cluster deploy \
  --name "$CLUSTER_NAME" \
  --resource-group "$CLUSTER_RG" \
  --subscription "$SUBSCRIPTION_ID" \
  --skip-validations-for-machines "$COMPX_SVRY_SERVER_NAME"

Сбой развертывания кластера

Чтобы отслеживать состояние асинхронной операции, запустите с включенным флагом --debug . При --debug указании ход выполнения запроса можно отслеживать. URL-адрес состояния операции можно найти, проверив выходные данные отладки, Azure-AsyncOperation которые ищут в Location ответе HTTP на запрос на создание. Заголовки могут предоставлять OPERATION_ID поле, используемое в вызове API HTTP.

OPERATION_ID="12312312-1231-1231-1231-123123123123*99399E995..."
az rest -m GET -u "https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/providers/Microsoft.NetworkCloud/locations/${LOCATION}/operationStatuses/${OPERATION_ID}?api-version=2022-12-12-preview"

Выходные данные аналогичны примеру структуры JSON. При возникновении кода HardwareValidationThresholdFailedошибки сообщение об ошибке содержит список компьютеров без операционной системы, которые завершили проверку оборудования (например, COMP0_SVR0_SERVER_NAME). COMP1_SVR1_SERVER_NAME Эти имена можно использовать для анализа журналов для получения дополнительных сведений.

{
  "endTime": "2023-03-24T14:56:59.0510455Z",
  "error": {
    "code": "HardwareValidationThresholdFailed",
    "message": "HardwareValidationThresholdFailed error hardware validation threshold for cluster layout plan is not met for cluster $CLUSTER_NAME in namespace nc-system with listed failed devices $COMP0_SVR0_SERVER_NAME, $COMP1_SVR1_SERVER_NAME"
  },
  "id": "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.NetworkCloud/locations/$LOCATION/operationStatuses/12312312-1231-1231-1231-123123123123*99399E995...",
  "name": "12312312-1231-1231-1231-123123123123*99399E995...",
  "resourceId": "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$CLUSTER_RESOURCE_GROUP/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME",
  "startTime": "2023-03-24T14:56:26.6442125Z",
  "status": "Failed"
}

См. статью "Отслеживание асинхронных операций с помощью Azure CLI " для другого примера.

Проверка развертывания кластера

Просмотрите состояние кластера на портале или с помощью Azure CLI:

az networkcloud cluster show --resource-group "$CLUSTER_RG" \
  --name "$CLUSTER_NAME"

Развертывание кластера выполняется, когда для подробных данныхStatus задано Deploying значение и подробное значениеStatusMessage показывает ход развертывания. Некоторые примеры хода развертывания, показанные в подробном отчетеStatusMessage Hardware validation is in progress. : (если кластер развернут с проверкой оборудования), KCP initialization in progress.Cluster is bootstrapping., , Management plane deployment in progress., Cluster extension deployment in progress.waiting for "<rack-ids>" to be readyи т. д.

Снимок экрана: портал Azure, показывающий ход развертывания кластера kcp init.

Снимок экрана: портал Azure с приложением расширения развертывания кластера.

Развертывание кластера будет завершено, когда для подробного значенияStatusMessage задано Running значение и подробно отображается сообщение Cluster is up and running.

Снимок экрана: портал Azure с полным развертыванием кластера.

Просмотрите версию управления кластера:

az k8s-extension list --cluster-name "$CLUSTER_NAME" --resource-group "$MRG_NAME" --cluster-type connectedClusters --query "[?name=='nc-platform-extension'].{name:name, extensionType:extensionType, releaseNamespace:scope.cluster.releaseNamespace,provisioningState:provisioningState,version:version}" -o table --subscription "$SUBSCRIPTION_ID"

Ведение журнала развертывания кластера

Журналы создания кластера можно просмотреть в следующих расположениях:

  1. портал Azure журналы действий Resource/ResourceGroup.
  2. Azure CLI с --debug флагом, переданным в командной строке.

Снимок экрана: портал Azure с журналом действий развертывания кластера.

Удаление кластера

При удалении кластера ресурсы в Azure и кластере, которые находятся в локальной среде, будут удалены.

Примечание.

Если в кластере существуют какие-либо ресурсы клиента, они не будут удалены до тех пор, пока эти ресурсы не будут удалены.

Снимок экрана: портал с ошибкой удаления из-за ресурсов клиента.

az networkcloud cluster delete --name "$CLUSTER_NAME" --resource-group "$CLUSTER_RG"