Skapa och etablera ett kluster med Azure CLI
Den här artikeln beskriver hur du skapar ett kluster med hjälp av Azure-kommandoradsgränssnittet (AzCLI). Det här dokumentet visar också hur du kontrollerar status, uppdaterar eller tar bort ett kluster.
Förutsättningar
- Kontrollera att Network Fabric Controller och Cluster Manger finns i din Azure-region
- Kontrollera att Network Fabric har etablerats
API-guide och mått
API-guiden innehåller information om resursprovidrar och resursmodeller samt API:erna.
De mått som genereras från loggningsdata är tillgängliga i Azure Monitor-mått.
Begränsningar
- Namngivning – Namngivningsregler finns här.
Skapa ett kluster
Infrastrukturklusterresursen representerar en lokal distribution av plattformen i Klusterhanteraren. Alla andra plattformsspecifika resurser är beroende av dem för sin livscykel.
Du bör skapa Nätverksinfrastrukturen före den här lokala distributionen. Varje lokal Operator Nexus-instans har en en-till-en-association med en Nätverksinfrastruktur.
Skapa klustret med Azure 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"
Parametrar för klusteråtgärder
Parameternamn | beskrivning |
---|---|
CLUSTER_NAME | Resursnamn för klustret |
PLATS | Den Azure-region där klustret distribueras |
CL_NAME | Den anpassade platsen för Klusterhanteraren från Azure Portal |
CLUSTER_RG | Namnet på klusterresursgruppen |
LAW_ID | Log Analytics-arbetsyte-ID för klustret |
CLUSTER_LOCATION | Klustrets lokala namn |
AGGR_RACK_RESOURCE_ID | RackID för Aggregator Rack |
AGGR_RACK_SKU | Rack-SKU för Aggregator Rack *Se Operator Nexus Network Cloud SKU:er |
AGGR_RACK_SN | Rackserienummer för Aggregator Rack |
AGGR_RACK_LOCATION | Rack fysisk plats för Aggregator Rack |
AGGR_RACK_BMM | Används endast för distribution av enkel rack, tom för flera rack |
SA_NAME | Enhetsnamn för lagringsenhet |
SA_PASS | Administratörslösenord för lagringsinstallation |
SA_USER | Administratörsanvändare för lagringsinstallation |
SA_SN | Serienummer för lagringsinstallation |
COMPX_RACK_RESOURCE_ID | RackID för CompX-rack; upprepa för varje rack i compute-rack-definitioner |
COMPX_RACK_SKU | Rack-SKU för CompX-rack; upprepa för varje rack i compute-rack-definitioner *Se Operator Nexus Network Cloud SKU:er |
COMPX_RACK_SN | Rackserienummer för CompX-rack; upprepa för varje rack i compute-rack-definitioner |
COMPX_RACK_LOCATION | Rack fysisk plats för CompX Rack; upprepa för varje rack i compute-rack-definitioner |
COMPX_SVRY_BMC_PASS | CompX Rack ServerY BMC-lösenord (Baseboard Management Controller). upprepa för varje rack i compute-rack-definitioner och för varje server i rack |
COMPX_SVRY_BMC_USER | CompX Rack ServerY BMC-användare; upprepa för varje rack i compute-rack-definitioner och för varje server i rack |
COMPX_SVRY_BMC_MAC | CompX Rack ServerY BMC MAC-adress; upprepa för varje rack i compute-rack-definitioner och för varje server i rack |
COMPX_SVRY_BOOT_MAC | Mac-adress för CompX Rack ServerY-startkort för nätverksgränssnitt (NIC). upprepa för varje rack i compute-rack-definitioner och för varje server i rack |
COMPX_SVRY_SERVER_DETAILS | Information om CompX-rackservery; upprepa för varje rack i compute-rack-definitioner och för varje server i rack |
COMPX_SVRY_SERVER_NAME | CompX Rack ServerY-namn; upprepa för varje rack i compute-rack-definitioner och för varje server i rack |
MRG_NAME | Namn på klusterhanterad resursgrupp |
MRG_LOCATION | Azure-klusterregion |
NF_ID | Referens till Nätverksinfrastruktur |
SP_APP_ID | App-ID för tjänstens huvudnamn |
SP_PASS | Lösenord för tjänstens huvudnamn |
SP_ID | Tjänstens huvudnamn-ID |
TENANT_ID | Prenumerationsklient-ID |
SUBSCRIPTION_ID | Prenumerations-ID:t |
KV_RESOURCE_ID | Key Vault-ID |
CLUSTER_TYPE | Typ av kluster, enkel eller MultiRack |
CLUSTER_VERSION | Nätverksmolnversion (NC) av kluster |
TAG_KEY1 | Valfri tagg1 som ska skickas till Skapa kluster |
TAG_VALUE1 | Valfritt tag1-värde som ska skickas till Klusterskapa |
TAG_KEY2 | Valfri tagg2 som ska skickas till Klusterskapa |
TAG_VALUE2 | Valfritt tag2-värde som ska skickas till Klusterskapa |
Klusteridentitet
Från och med API-versionen 2024-07-01 kan en kund tilldela hanterad identitet till ett kluster. Både systemtilldelade och användartilldelade hanterade identiteter stöds.
Hanterad identitet kan tilldelas till klustret när du skapar eller uppdaterar åtgärder genom att ange följande parametrar:
- --mi-system-assigned – Aktivera systemtilldelad hanterad identitet. När identiteten har lagts till kan den bara tas bort via API-anropet just nu.
- --mi-user-assigned – Utrymmesavgränsade resurs-ID:n för de användartilldelade hanterade identiteter som ska läggas till. När identiteten har lagts till kan den bara tas bort via API-anropet just nu.
Skapa klustret med hjälp av Azure Resource Manager-mallredigeraren
Ett alternativt sätt att skapa ett kluster är med ARM-mallredigeraren.
För att kunna skapa klustret på det här sättet måste du ange en mallfil (cluster.jsonc) och en parameterfil (cluster.parameters.jsonc). Du hittar exempel för ett 8-Rack 2M16C SKU-kluster med hjälp av följande två filer:
cluster.jsonc , cluster.parameters.jsonc
Kommentar
Kopiera den råa kodfilen för att få rätt formatering. Värdena i filen cluster.parameters.jsonc är kundspecifika och är kanske inte en fullständig lista. Uppdatera värdefälten för din specifika miljö.
- Gå till Azure Portal i en webbläsare och logga in.
- Sök efter "Distribuera en anpassad mall" i sökfältet Azure Portal och välj den sedan från de tillgängliga tjänsterna.
- Klicka på Skapa en egen mall i redigeraren.
- Klicka på Läs in fil. Leta upp mallfilen cluster.jsonc och ladda upp den.
- Klicka på Spara.
- Klicka på Redigera parametrar.
- Klicka på Läs in fil. Leta upp parameterfilen cluster.parameters.jsonc och ladda upp den.
- Klicka på Spara.
- Välj rätt prenumeration.
- Sök efter resursgruppen för att se om den redan finns. Om inte skapar du en ny resursgrupp.
- Kontrollera att all instansinformation är korrekt.
- Klicka på Granska och skapa.
Klusterverifiering
En lyckad skapande av operatören Nexus-kluster resulterar i skapandet av en Azure-resurs i din prenumeration. Kluster-ID, klusteretableringstillstånd och distributionstillstånd returneras till följd av ett lyckat cluster create
.
Visa status för klustret:
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--cluster-name "$CLUSTER_RESOURCE_NAME"
Klusterskapandet är klart när resursen provisioningState
visar: "provisioningState": "Succeeded"
Klusterloggning
Klusterskapningsloggar kan visas på följande platser:
- Azure Portal resurs-/resursgruppsaktivitetsloggar.
- Azure CLI med
--debug
flagga som skickas på kommandoraden.
Distribuera kluster
Åtgärden distribuera kluster kan utlösas när klustret har skapats. Åtgärden distribuera kluster skapar bootstrap-avbildningen och distribuerar klustret.
Distribuera kluster initierar en sekvens med händelser som inträffar i Klusterhanteraren.
- Validering av egenskaperna för kluster/rack.
- Generering av en startbar avbildning för det tillfälliga bootstrap-klustret (validering av infrastruktur).
- Interaktion med IPMI-gränssnittet (Intelligent Platform Management Interface) för den riktade bootstrap-datorn.
- Utföra maskinvaruverifieringskontroller.
- Övervakning av klusterdistributionsprocessen.
Distribuera det lokala klustret:
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RG" \
--subscription "$SUBSCRIPTION_ID" \
--no-wait --debug
Dricks
Om du vill kontrollera status för az networkcloud cluster deploy
kommandot kan det köras med hjälp av --debug
flaggan.
På så sätt kan du hämta Azure-AsyncOperation
rubriken eller Location
som används för att fråga resursen operationStatuses
.
Mer detaljerade steg finns i avsnittet Klusterdistribution misslyckades .
Du kan också köra kommandot asynkront med hjälp av --no-wait
flaggan.
Klusterdistribution med maskinvaruverifiering
Under en klusterdistributionsprocess är ett av stegen som körs maskinvaruverifiering. Valideringsproceduren för maskinvara kör olika tester och kontroller mot de datorer som tillhandahålls via klustrets rackdefinition. Baserat på resultatet av dessa kontroller och alla datorer som användaren hoppades över görs en bedömning av om tillräckligt många noder har skickats och/eller är tillgängliga för att uppfylla de tröskelvärden som krävs för att distributionen ska fortsätta.
Viktigt!
Maskinvaruverifieringsprocessen skriver resultatet till det som angavs analyticsWorkspaceId
vid skapande av kluster.
Dessutom används det angivna tjänstens huvudnamn i klusterobjektet för autentisering mot Log Analytics-API:et för arbetsyteinsamling.
Den här funktionen visas endast under en ny distribution (grönt fält); befintliga klustret kommer inte att ha loggarna tillgängliga retroaktivt.
Kommentar
RAID-kontrollanten återställs under klusterdistributionen och rensar alla data från serverns virtuella diskar. Alla aviseringar om baskortshanteringsstyrenhet (BMC) för virtuella diskar kan vanligtvis ignoreras om det inte finns ytterligare aviseringar om fysiska diskar och/eller RAID-styrenheter.
Som standard skriver maskinvaruverifieringsprocessen resultatet till det konfigurerade klustret analyticsWorkspaceId
.
På grund av typen av Log Analytics-datainsamling och schemautvärdering kan det dock uppstå inmatningsfördröjningar som kan ta flera minuter eller mer.
Därför fortsätter klusterdistributionen även om det inte gick att skriva resultatet till Log Analytics-arbetsytan.
För att åtgärda den här möjliga händelsen loggas även resultaten för redundans i Klusterhanteraren.
I det angivna klusterobjektets Log Analytics-arbetsyta ska en ny anpassad tabell med klustrets namn som prefix och suffixet *_CL
visas.
I avsnittet Loggar i LAW-resursen kan en fråga köras mot den nya *_CL
tabellen Anpassad logg.
Klusterdistribution med hoppa över specifik bare metal-dator
Parametern --skip-validation-for-machines
representerar namnen på datorer utan operativsystem i klustret som ska hoppas över under maskinvaruvalidering.
Noder som hoppas över verifieras inte och läggs inte till i nodpoolen.
Dessutom räknas inte överhoppade noder mot det totala antalet som används av tröskelvärdesberäkningar.
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RG" \
--subscription "$SUBSCRIPTION_ID" \
--skip-validations-for-machines "$COMPX_SVRY_SERVER_NAME"
Klusterdistributionen misslyckades
Om du vill spåra status för en asynkron åtgärd kör du med en --debug
flagga aktiverad.
När --debug
har angetts kan förloppet för begäran övervakas.
Åtgärdens status-URL kan hittas genom att undersöka felsökningsutdata som Azure-AsyncOperation
Location
letar efter eller huvudet på HTTP-svaret på begäran om att skapa.
Rubrikerna kan ange det OPERATION_ID
fält som används i HTTP API-anropet.
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"
Utdata liknar JSON-struct-exemplet. När felkoden är HardwareValidationThresholdFailed
innehåller felmeddelandet en lista över datorer utan operativsystem som misslyckades med maskinvaruverifieringen (till exempel COMP0_SVR0_SERVER_NAME
, COMP1_SVR1_SERVER_NAME
). Dessa namn kan användas för att parsa loggarna för ytterligare information.
{
"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"
}
I artikeln Spåra asynkrona åtgärder med Azure CLI finns ett annat exempel. Se artikeln Felsöka BMM-etablering för mer information som kan vara till hjälp när specifika datorer misslyckas med validering eller distribution.
Validering av klusterdistribution
Visa status för klustret på portalen eller via Azure CLI:
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--name "$CLUSTER_NAME"
Klusterdistributionen pågår när detailedStatus är inställt på Deploying
och detailedStatusMessage visar distributionens förlopp.
Några exempel på distributionsförlopp som visas i detailedStatusMessage är Hardware validation is in progress.
(om klustret distribueras med maskinvaruverifiering), Cluster is bootstrapping.
, KCP initialization in progress.
, Management plane deployment in progress.
, Cluster extension deployment in progress.
, waiting for "<rack-ids>" to be ready
osv.
Klusterdistributionen är klar när detailedStatus är inställt på Running
och detailedStatusMessage visar meddelandet Cluster is up and running
.
Visa hanteringsversionen av klustret:
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"
Loggning av klusterdistribution
Klusterskapningsloggar kan visas på följande platser:
- Azure Portal resurs-/resursgruppsaktivitetsloggar.
- Azure CLI med
--debug
flagga som skickas på kommandoraden.
Uppdatera klusteridentiteter via API:er
Klusterhanterade identiteter kan tilldelas via CLI. Avtilldelningen av identiteterna kan göras via API-anrop.
<APIVersion>
Obs! är API-versionen 2024-07-01 eller senare.
Om du vill ta bort alla hanterade identiteter kör du:
az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
Om både Användartilldelade och Systemtilldelade hanterade identiteter har lagts till kan den användartilldelade tas bort genom att uppdatera
type
tillSystemAssigned
:az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
Exempel på begärandetext (uai-body.json):
{ "identity": { "type": "SystemAssigned" } }
Om både användartilldelade och systemtilldelade hanterade identiteter har lagts till kan systemtilldelade tas bort genom att uppdatera
type
tillUserAssigned
:az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
Exempel på begärandetext (uai-body.json):
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {} } } }
Om flera användartilldelade hanterade identiteter har lagts till kan en av dem tas bort genom att köra:
az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
Exempel på begärandetext (uai-body.json):
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null } } }
Ta bort ett kluster
När du tar bort ett kluster tas resurserna i Azure bort och klustret som finns i den lokala miljön.
Kommentar
Om det finns några klientresurser i klustret tas de inte bort förrän resurserna har tagits bort.
az networkcloud cluster delete --name "$CLUSTER_NAME" --resource-group "$CLUSTER_RG"