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 create
arquivo .
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:
- Logs de atividade de Resource/ResourceGroup do portal do Azure.
- 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
- Validação das propriedades do cluster/rack
- Geração de uma imagem inicializável para o cluster de bootstrap efêmero (Validação de Infraestrutura).
- Interação com a interface IPMI da máquina de bootstrap direcionada.
- Executar verificações de validação de hardware
- 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 analyticsWorkspaceId
configurado.
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_NAME
COMP1_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.
A implantação do cluster é concluída quando detailedStatus é definido como Running
e detailedStatusMessage mostra a mensagem Cluster is up and running
.
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:
- Logs de atividade de Resource/ResourceGroup do portal do Azure.
- CLI do Azure com
--debug
sinalizador passado na linha de comando.