Создание и подготовка кластера с помощью 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 зависят от клиента и не могут быть полным списком. Обновите поля значений для конкретной среды.
- В веб-браузере перейдите на портал Azure и войдите.
- На панели поиска портал Azure найдите "Развернуть пользовательский шаблон", а затем выберите его из доступных служб.
- Щелкните "Создать собственный шаблон" в редакторе.
- Щелкните "Загрузить файл". Найдите файл шаблона cluster.jsonc и отправьте его.
- Нажмите кнопку Сохранить.
- Нажмите кнопку "Изменить параметры".
- Нажмите кнопку "Загрузить файл". Найдите файл параметров cluster.parameters.jsonc и отправьте его.
- Нажмите кнопку Сохранить.
- Выберите правильную подписку.
- Найдите группу ресурсов, чтобы узнать, существует ли она. Если нет, создайте новую группу ресурсов.
- Убедитесь, что все сведения об экземпляре верны.
- Щелкните Просмотреть и создать.
Проверка кластера
Успешное создание кластера Nexus операторов приводит к созданию кластера AKS в подписке. Идентификатор кластера, состояние подготовки кластера и состояние развертывания возвращаются в результате успешного выполнения cluster create
.
Просмотрите состояние кластера:
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--cluster-name "$CLUSTER_RESOURCE_NAME"
Создание кластера завершается после того, как provisioningState
ресурс отображает: "provisioningState": "Succeeded"
Ведение журнала кластера
Журналы создания кластера можно просмотреть в следующих расположениях:
- портал Azure журналы действий Resource/ResourceGroup.
- Azure CLI с
--debug
флагом, переданным в командной строке.
Развертывание кластера
После создания кластера можно активировать действие развертывания кластера. Действие развертывания кластера создает образ начальной загрузки и развертывает кластер.
Развертывание кластера инициирует последовательность событий, происходящих в диспетчере кластеров.
- Проверка свойств кластера или стойки
- Создание загрузочного образа для эфемерного кластера начальной загрузки (проверка инфраструктуры).
- Взаимодействие с интерфейсом IPMI целевого компьютера начальной загрузки.
- Проверка оборудования
- Мониторинг процесса развертывания кластера.
Разверните локальный кластер:
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
и т. д.
Развертывание кластера будет завершено, когда для подробного значенияStatusMessage задано Running
значение и подробно отображается сообщение Cluster is up and running
.
Просмотрите версию управления кластера:
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"
Ведение журнала развертывания кластера
Журналы создания кластера можно просмотреть в следующих расположениях:
- портал Azure журналы действий Resource/ResourceGroup.
- Azure CLI с
--debug
флагом, переданным в командной строке.
Удаление кластера
При удалении кластера ресурсы в Azure и кластере, которые находятся в локальной среде, будут удалены.
Примечание.
Если в кластере существуют какие-либо ресурсы клиента, они не будут удалены до тех пор, пока эти ресурсы не будут удалены.
az networkcloud cluster delete --name "$CLUSTER_NAME" --resource-group "$CLUSTER_RG"