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.
- In un Web browser passare al portale di Azure ed eseguire l'accesso.
- Nella barra di ricerca portale di Azure cercare "Distribuisci un modello personalizzato" e quindi selezionarlo dai servizi disponibili.
- Fare clic su Compila un modello personalizzato nell'editor.
- Fare clic su Carica file. Individuare il file del modello cluster.jsonc e caricarlo.
- Fare clic su Salva.
- Fare clic su Modifica parametri.
- Fare clic su Carica file. Individuare il file di parametri cluster.parameters.jsonc e caricarlo.
- Fare clic su Salva.
- Selezionare la sottoscrizione corretta.
- Cercare il gruppo di risorse per verificare se esiste già. In caso contrario, creare un nuovo gruppo di risorse.
- Assicurarsi che tutti i dettagli dell'istanza siano corretti.
- 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:
- portale di Azure log attività resource/resourcegroup.
- 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.
- Convalida delle proprietà cluster/rack
- Generazione di un'immagine di avvio per il cluster bootstrap temporaneo (convalida dell'infrastruttura).
- Interazione con l'interfaccia IPMI del computer bootstrap di destinazione.
- Eseguire controlli di convalida hardware
- 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 analyticsWorkspaceId
configurato.
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 ready
e così via.
La distribuzione del cluster è completa quando detailedStatus è impostato su Running
e detailedStatusMessage visualizza il messaggio Cluster is up and running
.
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:
- portale di Azure log attività resource/resourcegroup.
- Interfaccia della riga di comando di Azure con
--debug
flag passato nella riga di comando.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per