Condividi tramite


Creare ed effettuare il provisioning di un cluster usando l'interfaccia della riga di comando di Azure

Questo articolo descrive come creare un cluster usando l'interfaccia della riga di comando di Azure (AzCLI). Questo documento illustra anche come controllare lo stato, aggiornare o eliminare un cluster.

Prerequisiti

  • Verificare che Il controller di infrastruttura di rete e Cluster Manger esistano nell'area di Azure
  • Verificare che il provisioning di Network Fabric sia stato eseguito correttamente

Guida api e metriche

La guida all'API fornisce informazioni sui provider di risorse e sui modelli di risorse e sulle API.

Le metriche generate dai dati di registrazione sono disponibili nelle metriche di Monitoraggio di Azure.

Creare un cluster

La risorsa Cluster infrastruttura rappresenta una distribuzione locale della piattaforma all'interno di Cluster Manager. Tutte le altre risorse specifiche della piattaforma dipendono dal ciclo di vita.

È necessario creare Network Fabric prima di questa distribuzione locale. Ogni istanza locale di Operator Nexus ha un'associazione uno-a-uno con un'infrastruttura di rete.

Creare il cluster usando l'interfaccia della riga di comando az:

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"

Parametri per le operazioni del cluster

Nome parametro Descrizione
CLUSTER_NAME Nome risorsa del cluster
LOCATION Area di Azure in cui viene distribuito il cluster
CL_NAME Percorso personalizzato di Gestione cluster da portale di Azure
CLUSTER_RG Nome del gruppo di risorse del cluster
LAW_ID ID area di lavoro Log Analytics per il cluster
CLUSTER_LOCATION Nome locale del cluster
AGGR_RACK_RESOURCE_ID RackID per Aggregator Rack
AGGR_RACK_SKU SKU rack per Aggregator Rack
AGGR_RACK_SN Numero di serie rack per aggregator rack
AGGR_RACK_LOCATION Posizione fisica rack per Aggregator Rack
AGGR_RACK_BMM Usato solo per la distribuzione a rack singolo, vuoto per multi-rack
SA_NAME nome dispositivo Archiviazione appliance
SA_PASS password amministratore dell'appliance Archiviazione
SA_U edizione Standard R Archiviazione utente amministratore dell'appliance
SA_SN Numero di serie dell'appliance Archiviazione
COMPX_RACK_RESOURCE_ID RackID per CompX Rack; ripetizione per ogni rack nelle definizioni di calcolo-rack
COMPX_RACK_SKU SKU rack per CompX Rack; ripetizione per ogni rack nelle definizioni di calcolo-rack
COMPX_RACK_SN Numero di serie rack per CompX Rack; ripetizione per ogni rack nelle definizioni di calcolo-rack
COMPX_RACK_LOCATION Posizione fisica rack per CompX Rack; ripetizione per ogni rack nelle definizioni di calcolo-rack
COMPX_SVRY_BMC_PASS Password BMC di CompX Rack ServerY, ripetere per ogni rack nelle definizioni di calcolo-rack e per ogni server nel rack
COMPX_SVRY_BMC_U edizione Standard R Utente BMC CompX Rack ServerY, ripetere per ogni rack nelle definizioni dei rack di calcolo e per ogni server nel rack
COMPX_SVRY_BMC_MAC Indirizzo MAC CompX Rack ServerY BMC, ripetere per ogni rack nelle definizioni di calcolo-rack e per ogni server nel rack
COMPX_SVRY_BOOT_MAC Indirizzo MAC dell'avvio di CompX Rack ServerY, ripetere per ogni rack nelle definizioni compute-rack e per ogni server nel rack
COMPX_SVRY_edizione Standard RVER_DETAILS Dettagli di CompX Rack ServerY, ripetizione per ogni rack nelle definizioni di rack di calcolo e per ogni server nel rack
COMPX_SVRY_edizione Standard RVER_NAME Nome ServerY compX Rack, ripetere per ogni rack nelle definizioni di calcolo-rack e per ogni server nel rack
MRG_NAME Nome del gruppo di risorse gestite del cluster
MRG_LOCATION Area di Azure del cluster
NF_ID Riferimento a Network Fabric
SP_APP_ID ID app dell'entità servizio
SP_PASS Password dell'entità servizio
SP_ID ID entità servizio
TENANT_ID ID tenant della sottoscrizione
SUBSCRIPTION_ID ID sottoscrizione
KV_RESOURCE_ID ID insieme di credenziali delle chiavi
CLUSTER_TYPE Tipo di cluster, singolo o multirack
CLUSTER_VERSION Versione nc del cluster
TAG_KEY1 Tag1 facoltativo da passare a Creazione cluster
TAG_VALUE1 Valore tag1 facoltativo da passare a Creazione cluster
TAG_KEY2 Tag2 facoltativo da passare a Creazione cluster
TAG_VALUE2 Valore tag2 facoltativo da passare a Creazione cluster

Creare il cluster usando l'editor di modelli di Azure Resource Manager

Un modo alternativo per creare un cluster consiste nell'editor di modelli di Resource Manager.

Per creare il cluster in questo modo, è necessario fornire un file di modello (cluster.jsonc) e un file di parametri (cluster.parameters.jsonc).
È possibile trovare esempi per un cluster SKU 2M16C a 8 rack usando questi due file:

cluster.jsonc , cluster.parameters.jsonc

Nota

Per ottenere la formattazione corretta, copiare il file di codice non elaborato. I valori all'interno del file cluster.parameters.jsonc sono specifici del cliente e potrebbero non essere un elenco completo. Aggiornare i campi valore per l'ambiente specifico.

  1. In un Web browser passare al portale di Azure ed eseguire l'accesso.
  2. Nella barra di ricerca portale di Azure cercare "Distribuisci un modello personalizzato" e quindi selezionarlo dai servizi disponibili.
  3. Fare clic su Compila un modello personalizzato nell'editor.
  4. Fare clic su Carica file. Individuare il file del modello cluster.jsonc e caricarlo.
  5. Fare clic su Salva.
  6. Fare clic su Modifica parametri.
  7. Fare clic su Carica file. Individuare il file di parametri cluster.parameters.jsonc e caricarlo.
  8. Fare clic su Salva.
  9. Selezionare la sottoscrizione corretta.
  10. Cercare il gruppo di risorse per verificare se esiste già. In caso contrario, creare un nuovo gruppo di risorse.
  11. Assicurarsi che tutti i dettagli dell'istanza siano corretti.
  12. Fare clic su Rivedi e crea.

Convalida del cluster

La creazione del cluster Operator Nexus ha esito positivo nella creazione di un cluster del servizio Azure Kubernetes all'interno della sottoscrizione. L'ID del cluster, lo stato di provisioning del cluster e lo stato di distribuzione vengono restituiti in seguito a un esito positivo cluster create.

Visualizzare lo stato del cluster:

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

La creazione del cluster viene completata quando viene visualizzato l'oggetto provisioningState della risorsa: "provisioningState": "Succeeded"

Registrazione di cluster

I log di creazione del cluster possono essere visualizzati nei percorsi seguenti:

  1. portale di Azure log attività resource/resourcegroup.
  2. Interfaccia della riga di comando di Azure con --debug flag passato nella riga di comando.

Distribuire il cluster

Dopo aver creato il cluster, è possibile attivare l'azione di distribuzione del cluster. L'azione deploy Cluster crea l'immagine bootstrap e distribuisce il cluster.

Deploy Cluster avvia una sequenza di eventi che si verificano in Gestione cluster.

  1. Convalida delle proprietà cluster/rack
  2. Generazione di un'immagine di avvio per il cluster bootstrap temporaneo (convalida dell'infrastruttura).
  3. Interazione con l'interfaccia IPMI del computer bootstrap di destinazione.
  4. Eseguire controlli di convalida hardware
  5. Monitoraggio del processo di distribuzione del cluster.

Distribuire il cluster locale:

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

Suggerimento

Per controllare lo stato del az networkcloud cluster deploy comando, è possibile eseguirlo usando il --debug flag . In questo modo sarà possibile ottenere l'intestazione Azure-AsyncOperation o Location usata per eseguire query sulla operationStatuses risorsa. Vedere la sezione Distribuzione cluster non riuscita per i passaggi più dettagliati. Facoltativamente, il comando può essere eseguito in modo asincrono usando il --no-wait flag .

Distribuzione del cluster con convalida hardware

Durante un processo di distribuzione cluster, uno dei passaggi eseguiti è la convalida hardware. La procedura di convalida hardware esegue vari test e controlli sui computer forniti tramite la definizione del rack del cluster. In base ai risultati di questi controlli e a qualsiasi computer ignorato dall'utente, viene eseguita una determinazione sul fatto che i nodi sufficienti passati e/o siano disponibili per soddisfare le soglie necessarie per continuare la distribuzione.

Importante

Il processo di convalida hardware scriverà i risultati nell'oggetto specificato analyticsWorkspaceId in Creazione cluster. Inoltre, l'entità servizio fornita nell'oggetto Cluster viene usata per l'autenticazione con l'API raccolta dati dell'area di lavoro Log Analytics. Questa funzionalità è visibile solo durante una nuova distribuzione (campo verde); il cluster esistente non avrà i log disponibili in modo retroattivo.

Per impostazione predefinita, il processo di convalida hardware scrive i risultati nel cluster analyticsWorkspaceIdconfigurato. Tuttavia, a causa della natura della raccolta dei dati e della valutazione dello schema dell'area di lavoro Log Analytics, può essere necessario attendere alcuni minuti o più. Per questo motivo, la distribuzione del cluster procede anche se non è stato possibile scrivere i risultati nell'area di lavoro Log Analytics. Per risolvere questo possibile evento, i risultati, per la ridondanza, vengono registrati anche all'interno di Gestione cluster.

Nell'area di lavoro Log Analytics dell'oggetto Cluster specificato viene visualizzata una nuova tabella personalizzata con il nome del cluster come prefisso e il suffisso *_CL . Nella sezione Log della risorsa LAW è possibile eseguire una query sulla nuova *_CL tabella log personalizzata.

Azione di distribuzione del cluster con ignorando un computer bare metal specifico

È possibile passare un parametro al comando deploy che rappresenta i nomi dei computer bare metal nel cluster che devono essere ignorati durante la convalida hardware. I nodi ignorati non vengono convalidati e non vengono aggiunti al pool di nodi. Inoltre, i nodi ignorati non vengono conteggiati rispetto al totale usato dai calcoli di soglia.

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

Distribuzione del cluster non riuscita

Per tenere traccia dello stato di un'operazione asincrona, eseguire con un --debug flag abilitato. Quando --debug viene specificato, è possibile monitorare lo stato di avanzamento della richiesta. È possibile trovare l'URL dello stato dell'operazione esaminando l'output di debug che cerca l'intestazione Azure-AsyncOperation o Location nella risposta HTTP alla richiesta di creazione. Le intestazioni possono fornire il OPERATION_ID campo usato nella chiamata 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"

L'output è simile all'esempio di struct JSON. Quando il codice di errore è HardwareValidationThresholdFailed, il messaggio di errore contiene un elenco di computer bare metal che non hanno superato la convalida hardware ( ad esempio , COMP0_SVR0_SERVER_NAME). COMP1_SVR1_SERVER_NAME Questi nomi possono essere usati per analizzare i log per altri dettagli.

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

Per un altro esempio, vedere l'articolo Rilevamento delle operazioni asincrone con l'interfaccia della riga di comando di Azure .

Convalida della distribuzione del cluster

Visualizzare lo stato del cluster nel portale o tramite l'interfaccia della riga di comando di Azure:

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

La distribuzione del cluster è in corso quando detailedStatus è impostato su Deploying e detailedStatusMessage mostra lo stato di avanzamento della distribuzione. Alcuni esempi di avanzamento della distribuzione illustrati in dettaglioStatusMessage sono Hardware validation is in progress. (se il cluster viene distribuito con convalida hardware), ,Cluster is bootstrapping.KCP initialization in progress. , Management plane deployment in progress.Cluster extension deployment in progress., , waiting for "<rack-ids>" to be readye così via.

Screenshot di portale di Azure che mostra l'avanzamento della distribuzione del cluster kcp init.

Screenshot di portale di Azure che mostra l'applicazione dell'estensione dello stato di distribuzione del cluster.

La distribuzione del cluster è completa quando detailedStatus è impostato su Running e detailedStatusMessage visualizza il messaggio Cluster is up and running.

Screenshot di portale di Azure che mostra la distribuzione del cluster completata.

Visualizzare la versione di gestione del cluster:

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"

Registrazione della distribuzione del cluster

I log di creazione del cluster possono essere visualizzati nei percorsi seguenti:

  1. portale di Azure log attività resource/resourcegroup.
  2. Interfaccia della riga di comando di Azure con --debug flag passato nella riga di comando.

Screenshot di portale di Azure che mostra il log attività di distribuzione del cluster.