Share via


Criar e provisionar um cluster usando a CLI do Azure

Este artigo descreve como criar um cluster usando a interface de linha de comando do Azure (AzCLI). Este documento também mostra como verificar o status, atualizar ou excluir um Cluster.

Pré-requisitos

  • Verifique se o Controlador de Malha de Rede e o Gerenciador de Cluster existem em sua região do Azure
  • Verifique se o Network Fabric foi provisionado com êxito

Guia e métricas da API

O guia da API fornece informações sobre os provedores de recursos e modelos de recursos e as APIs.

As métricas geradas a partir dos dados de log estão disponíveis nas métricas do Azure Monitor.

Criar um cluster

O recurso Cluster de Infraestrutura representa uma implantação local da plataforma no Gerenciador de Clusters. Todos os outros recursos específicos da plataforma dependem dele para o seu ciclo de vida.

Você deve ter criado com êxito o Network Fabric para essa implantação local. Cada instância local do Operator Nexus tem uma associação um-para-um com uma malha de rede.

Crie o cluster:

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 "$NFC_ID" \
  --cluster-service-principal application-id="$SP_APP_ID" \
    password="$SP_PASS" principal-id="$SP_ID" tenant-id="$TENANT_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"

Em vez disso, você pode criar um cluster com arquivos de modelo/parâmetro ARM no Editor de modelos ARM:

Parâmetros para operações de cluster

Nome do parâmetro Description
CLUSTER_NAME Nome do recurso do cluster
LOCALIZAÇÃO A Região do Azure onde o Cluster é implantado
CL_NAME O Local Personalizado do Gerenciador de Cluster do portal do Azure
CLUSTER_RG O nome do grupo de recursos de cluster
LAW_ID ID do espaço de trabalho do Log Analytics para o cluster
CLUSTER_LOCATION O nome local do cluster
AGGR_RACK_RESOURCE_ID RackID para rack agregador
AGGR_RACK_SKU Rack SKU para rack agregador
AGGR_RACK_SN Número de série do rack para rack agregador
AGGR_RACK_LOCATION Localização física do rack para rack agregador
AGGR_RACK_BMM Usado apenas para implantação de rack único, vazio para vários racks
SA_NAME Nome do dispositivo do dispositivo de armazenamento
SA_PASS Palavra-passe de administrador do Storage Appliance
SA_USER Usuário administrador do Storage Appliance
SA_SN Número de série do Storage Appliance
COMPX_RACK_RESOURCE_ID RackID para CompX Rack, repita para cada rack em definições de compute-rack
COMPX_RACK_SKU Rack SKU para CompX Rack, repita para cada rack em definições de rack de computação
COMPX_RACK_SN Número de série do rack para rack CompX, repita para cada rack em definições de rack de computação
COMPX_RACK_LOCATION Localização física do rack para CompX Rack, repita para cada rack em definições de rack de computação
COMPX_SVRY_BMC_PASS CompX Rack ServerY BMC senha, repita para cada rack em compute-rack-definições e para cada servidor em rack
COMPX_SVRY_BMC_USER Usuário do CompX Rack ServerY BMC, repita para cada rack em definições de rack de computação e para cada servidor em rack
COMPX_SVRY_BMC_MAC CompX Rack ServerY BMC MAC endereço, repita para cada rack em compute-rack-definitions e para cada servidor em rack
COMPX_SVRY_BOOT_MAC Endereço MAC da NIC de inicialização do CompX Rack ServerY, repita para cada rack em definições de rack de computação e para cada servidor em rack
COMPX_SVRY_SERVER_DETAILS CompX Rack ServerY detalhes, repita para cada rack em compute-rack-definições e para cada servidor em rack
COMPX_SVRY_SERVER_NAME Nome CompX Rack ServerY, repita para cada rack em definições de rack de computação e para cada servidor em rack
MRG_NAME Nome do grupo de recursos gerenciados pelo cluster
MRG_LOCATION Região do Azure do cluster
NFC_ID Referência ao controlador de malha de rede
SP_APP_ID ID do aplicativo da entidade de serviço
SP_PASS Palavra-passe da entidade de serviço
SP_ID ID da entidade de serviço
TENANT_ID ID do locatário da assinatura
KV_RESOURCE_ID ID do Cofre da Chave
CLUSTER_TYPE Tipo de cluster, Single ou MultiRack
CLUSTER_VERSION Versão NC do cluster
TAG_KEY1 Tag1 opcional para passar para Criar Cluster
TAG_VALUE1 Valor tag1 opcional a ser passado para Cluster Create
TAG_KEY2 Tag2 opcional para passar para a Criação de Cluster
TAG_VALUE2 Valor tag2 opcional a ser passado para Cluster Create

Validação de cluster

Uma criação bem-sucedida do Operator Nexus Cluster resulta na criação de um cluster AKS dentro da sua assinatura. A ID do cluster, o estado de provisionamento do cluster e o estado de implantação são retornados como resultado de um cluster createarquivo .

Veja o estado do Cluster:

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

A criação do cluster é concluída quando o provisioningState recurso mostra: "provisioningState": "Succeeded"

Registo de cluster

Os logs de criação de cluster podem ser visualizados nos seguintes locais:

  1. Logs de atividade de Resource/ResourceGroup do portal do Azure.
  2. CLI do Azure com --debug sinalizador passado na linha de comando.

Implantar cluster

Depois que um cluster for criado, a ação de implantação do cluster poderá ser acionada. A ação implantar Cluster cria a imagem de bootstrap e implanta o Cluster.

Implantar Cluster inicia uma sequência de eventos a ocorrer no Gerenciador de Cluster

  1. Validação das propriedades do cluster/rack
  2. Geração de uma imagem inicializável para o cluster de bootstrap efêmero (Validação de Infraestrutura).
  3. Interação com a interface IPMI da máquina de bootstrap direcionada.
  4. Executar verificações de validação de hardware
  5. Monitoramento do processo de implantação do Cluster.

Implante o cluster local:

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

Gorjeta

Para verificar o status do az networkcloud cluster deploy comando, ele pode ser executado usando o --debug sinalizador. Isso permitirá que você obtenha o Azure-AsyncOperation cabeçalho ou Location usado para consultar o operationStatuses recurso. Consulte a seção Falha na implantação do cluster para obter etapas mais detalhadas. Opcionalmente, o comando pode ser executado de forma assíncrona usando o --no-wait sinalizador.

Implantação de cluster com validação de hardware

Durante um processo de implantação de cluster, uma das etapas executadas é a validação de hardware. O procedimento de validação de hardware executa vários testes e verificações em relação às máquinas fornecidas através da definição de rack do Cluster. Com base nos resultados dessas verificações e em qualquer máquina ignorada pelo usuário, é feita uma determinação sobre se nós suficientes passaram e/ou estão disponíveis para atender aos limites necessários para que a implantação continue.

Importante

O processo de validação de hardware gravará os resultados no especificado analyticsWorkspaceId em Criação de Cluster. Além disso, a entidade de serviço fornecida no objeto Cluster é usada para autenticação na API de coleta de dados do espaço de trabalho do Log Analytics. Esta capacidade só é visível durante uma nova implantação (Campo Verde); O cluster existente não terá os logs disponíveis retroativamente.

Por padrão, o processo de validação de hardware grava os resultados no cluster analyticsWorkspaceIdconfigurado. No entanto, devido à natureza da coleta de dados do Log Analytics Workspace e da avaliação do esquema, pode haver um atraso de ingestão que pode levar vários minutos ou mais. Por esse motivo, a implantação do Cluster prossegue mesmo se houver uma falha ao gravar os resultados no Espaço de Trabalho do Log Analytics. Para ajudar a resolver esse possível evento, os resultados, para redundância, também são registrados no Gerenciador de Cluster.

No espaço de trabalho do Log Analytics do objeto Cluster fornecido, uma nova tabela personalizada com o nome do cluster como prefixo e o sufixo *_CL deve aparecer. Na seção Logs do recurso LAW, uma consulta pode ser executada na nova *_CL tabela Log personalizado.

Ação de implantação de cluster com pular máquina bare-metal específica

Um parâmetro pode ser passado para o comando deploy que representa os nomes de máquinas bare metal no cluster que devem ser ignorados durante a validação de hardware. Os nós ignorados não são validados e não são adicionados ao pool de nós. Além disso, os nós ignorados não contam para o total usado pelos cálculos de limite.

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

Falha na implantação do cluster

Para controlar o status de uma operação assíncrona, execute com um --debug sinalizador habilitado. Quando --debug especificado, o progresso da solicitação pode ser monitorado. A URL de status da operação pode ser encontrada examinando a saída de depuração procurando o Azure-AsyncOperation cabeçalho ou Location na resposta HTTP à solicitação de criação. Os cabeçalhos podem fornecer o OPERATION_ID campo usado na chamada de 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"

A saída é semelhante ao exemplo JSON struct. Quando o código de erro é HardwareValidationThresholdFailed, a mensagem de erro contém uma lista de máquinas bare metal que falharam na validação de hardware (por exemplo, COMP0_SVR0_SERVER_NAMECOMP1_SVR1_SERVER_NAME, ). Esses nomes podem ser usados para analisar os logs para obter mais detalhes.

{
  "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"
}

Consulte o artigo Rastreando operações assíncronas usando a CLI do Azure para obter outro exemplo.

Validação da implantação de cluster

Exiba o status do cluster no portal ou por meio da CLI do Azure:

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

A implantação do Cluster está em andamento quando detailedStatus é definido como Deploying e detailedStatusMessage mostra o progresso da implantação. Alguns exemplos de progresso da implantação mostrados em detailedStatusMessage são Hardware validation is in progress. (se o cluster for implantado com validação de hardware) ,Cluster is bootstrapping., KCP initialization in progress., Management plane deployment in progress., Cluster extension deployment in progress., waiting for "<rack-ids>" to be ready, etc.

Captura de ecrã do portal do Azure a mostrar o progresso da implementação do cluster kcp init.

Captura de tela do portal do Azure mostrando o aplicativo de extensão de progresso de implantação de cluster.

A implantação do cluster é concluída quando detailedStatus é definido como Running e detailedStatusMessage mostra a mensagem Cluster is up and running.

Captura de tela do portal do Azure mostrando a implantação do cluster concluída.

Exiba a versão de gerenciamento do cluster:

az k8s-extension list --cluster-name <cluster> --resource-group "$MANAGED_CLUSTER_RG" --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"

Log de implantação de cluster

Os logs de criação de cluster podem ser visualizados nos seguintes locais:

  1. Logs de atividade de Resource/ResourceGroup do portal do Azure.
  2. CLI do Azure com --debug sinalizador passado na linha de comando.

Captura de ecrã do portal do Azure a mostrar o registo de atividades de progresso da implementação do cluster.