Vytvoření a zřízení clusteru pomocí Azure CLI

Tento článek popisuje, jak vytvořit cluster pomocí rozhraní příkazového řádku Azure (AzCLI). Tento dokument také ukazuje, jak zkontrolovat stav, aktualizovat nebo odstranit cluster.

Požadavky

  • Ověřte, že ve vaší oblasti Azure existuje síťový adaptér a správce clusteru.
  • Ověření úspěšného zřízení síťových prostředků infrastruktury

Průvodce rozhraním API a metrikami

Průvodce rozhraním API poskytuje informace o poskytovatelích prostředků a modelech prostředků a rozhraníCH API.

Metriky vygenerované z dat protokolování jsou k dispozici v metrikách služby Azure Monitor.

Omezení

  • Pojmenování – Pravidla pojmenování najdete tady.

Vytvoření clusteru

Prostředek clusteru infrastruktury představuje místní nasazení platformy v rámci Správce clusteru. Všechny ostatní prostředky specifické pro platformu jsou na něm závislé na jejich životním cyklu.

Před tímto místním nasazením byste měli vytvořit prostředky infrastruktury sítě. Každá místní instance operátoru Nexus má přidružení 1:1 se síťovými prostředky infrastruktury.

Vytvoření clusteru pomocí 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"

Parametry pro operace clusteru

Název parametru Popis
CLUSTER_NAME Název prostředku clusteru
UMÍSTĚNÍ Oblast Azure, ve které je cluster nasazený
CL_NAME Vlastní umístění Správce clusteru z webu Azure Portal
CLUSTER_RG Název skupiny prostředků clusteru
LAW_ID ID pracovního prostoru služby Log Analytics pro cluster
CLUSTER_LOCATION Místní název clusteru
AGGR_RACK_RESOURCE_ID RackID pro rack agregátoru
AGGR_RACK_SKU Skladová položka racku pro agregátorový rack *See Operator Nexus Network Cloud SKUs
AGGR_RACK_SN Sériové číslo racku pro rack agregátoru
AGGR_RACK_LOCATION Fyzické umístění racku pro agregátorový rack
AGGR_RACK_BMM Používá se pouze pro nasazení s jedním rackem, prázdné pro více racků.
SA_NAME Název zařízení úložiště
SA_PASS Heslo správce zařízení úložiště
SA_USER Uživatel správce zařízení úložiště
SA_SN Sériové číslo zařízení úložiště
COMPX_RACK_RESOURCE_ID RackID pro CompX Rack; opakování pro každý rack v definicích výpočetního racku
COMPX_RACK_SKU Skladová položka racku pro Rack CompX; opakování pro každý rack v definicích výpočetních racků *Viz SKU Cloud Cloud Operator Nexus Network
COMPX_RACK_SN Sériové číslo racku pro Rack CompX; opakování pro každý rack v definicích výpočetního racku
COMPX_RACK_LOCATION Fyzické umístění racku pro Rack CompX; opakování pro každý rack v definicích výpočetního racku
COMPX_SVRY_BMC_PASS CompX Rack ServerY Baseboard Management Controller (BMC) heslo; pro každý rack v definicích výpočetních racků a pro každý server v racku
COMPX_SVRY_BMC_USER CompX Rack Servery BMC uživatel; pro každý rack v definicích výpočetních racků a pro každý server v racku
COMPX_SVRY_BMC_MAC CompX Rack ServerY BMC ADRESA MAC; pro každý rack v definicích výpočetních racků a pro každý server v racku
COMPX_SVRY_BOOT_MAC CompX Rack ServerY spouštěcí síťová karta (NIC) MAC adresa; pro každý rack v definicích výpočetních racků a pro každý server v racku
COMPX_SVRY_SERVER_DETAILS CompX Rack ServerY podrobnosti; pro každý rack v definicích výpočetních racků a pro každý server v racku
COMPX_SVRY_SERVER_NAME CompX Rack ServerY name; pro každý rack v definicích výpočetních racků a pro každý server v racku
MRG_NAME Název skupiny prostředků spravované clusterem
MRG_LOCATION Oblast Azure clusteru
NF_ID Odkaz na síťové prostředky infrastruktury
SP_APP_ID ID aplikace instančního objektu
SP_PASS Heslo instančního objektu
SP_ID ID instančního objektu
TENANT_ID ID tenanta předplatného
SUBSCRIPTION_ID Subscription ID
KV_RESOURCE_ID Key Vault ID
CLUSTER_TYPE Typ clusteru, single nebo MultiRack
CLUSTER_VERSION Verze clusteru v síťovém cloudu (NC)
TAG_KEY1 Volitelná značka 1 pro předání do vytvoření clusteru
TAG_VALUE1 Volitelná hodnota značky1 pro předání do vytvoření clusteru
TAG_KEY2 Volitelná značka 2 pro předání do vytvoření clusteru
TAG_VALUE2 Volitelná hodnota značky2 pro předání do vytvoření clusteru

Identita clusteru

Od verze rozhraní API z 7. 7. 2024 může zákazník přiřadit spravovanou identitu ke clusteru. Podporují se spravované identity přiřazené systémem i spravované uživatelem.

Spravovanou identitu je možné přiřadit ke clusteru během operací vytváření nebo aktualizací zadáním následujících parametrů:

  • --mi-system-assigned - Enable System-assigned managed identity. Po přidání je možné identitu odebrat pouze prostřednictvím volání rozhraní API v tuto chvíli.
  • --mi-user-assigned - ID prostředků oddělených mezerami spravovaných identit přiřazených uživatelem, které se mají přidat. Po přidání je možné identitu odebrat pouze prostřednictvím volání rozhraní API v tuto chvíli.

Vytvoření clusteru pomocí editoru šablon Azure Resource Manageru

Alternativní způsob vytvoření clusteru je s editorem šablon ARM.

Pokud chcete cluster vytvořit tímto způsobem, musíte zadat soubor šablony (cluster.jsonc) a soubor parametrů (cluster.parameters.jsonc). Příklady pro cluster SKU 8-Rack 2M16C najdete pomocí těchto dvou souborů:

cluster.jsonc , cluster.parameters.jsonc

Poznámka:

Pokud chcete získat správné formátování, zkopírujte nezpracovaný soubor kódu. Hodnoty v souboru cluster.parameters.jsonc jsou specifické pro zákazníky a nemusí se jednat o úplný seznam. Aktualizujte pole hodnot pro vaše konkrétní prostředí.

  1. Ve webovém prohlížeči přejděte na Web Azure Portal a přihlaste se.
  2. Na panelu hledání na webu Azure Portal vyhledejte "Nasadit vlastní šablonu" a pak ji vyberte z dostupných služeb.
  3. V editoru klikněte na Vytvořit vlastní šablonu.
  4. Klikněte na Načíst soubor. Vyhledejte soubor šablony cluster.jsonc a nahrajte ho.
  5. Klikněte na Uložit.
  6. Klikněte na Upravit parametry.
  7. Klikněte na Načíst soubor. Vyhledejte soubor parametrů cluster.parameters.jsonc a nahrajte ho.
  8. Klikněte na Uložit.
  9. Vyberte správné předplatné.
  10. Vyhledejte skupinu prostředků a zjistěte, jestli už existuje. Pokud ne, vytvořte novou skupinu prostředků.
  11. Ujistěte se, že jsou všechny podrobnosti instance správné.
  12. Klikněte na Zkontrolovat a vytvořit.

Ověření clusteru

Výsledkem úspěšného vytvoření clusteru Nexus operátora je vytvoření prostředku Azure v rámci vašeho předplatného. ID clusteru, stav zřizování clusteru a stav nasazení se vrátí v důsledku úspěšného cluster create.

Zobrazení stavu clusteru:

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

Vytvoření clusteru se dokončí po provisioningState zobrazení prostředku: "provisioningState": "Succeeded"

Protokolování clusteru

Protokoly vytvoření clusteru můžete zobrazit v následujících umístěních:

  1. Protokoly aktivit resource/resourcegroup na webu Azure Portal.
  2. Azure CLI s příznakem --debug předaným na příkazovém řádku

Nasazení clusteru

Akci nasazení clusteru je možné aktivovat po vytvoření clusteru. Akce nasazení clusteru vytvoří image bootstrap a nasadí cluster.

Nasazení clusteru zahájí posloupnost událostí, ke kterým dochází ve Správci clusteru.

  1. Ověření vlastností clusteru nebo racku
  2. Generování spouštěcí image pro dočasný cluster bootstrap (ověření infrastruktury).
  3. Interakce s rozhraním IPMI (Intelligent Platform Management Interface) cílového počítače bootstrap
  4. Provádí kontroly ověření hardwaru.
  5. Monitorování procesu nasazení clusteru

Nasazení místního clusteru:

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

Tip

Pokud chcete zkontrolovat stav az networkcloud cluster deploy příkazu, můžete ho spustit pomocí příznaku --debug . To vám umožní získat hlavičku nebo Location hlavičku Azure-AsyncOperation použitou k dotazování operationStatuses prostředku. Podrobnější kroky najdete v části Nasazení clusteru se nezdařilo . Volitelně můžete příkaz spustit asynchronně pomocí příznaku --no-wait .

Nasazení clusteru s ověřováním hardwaru

Během procesu nasazení clusteru je jedním z provedených kroků ověření hardwaru. Postup ověření hardwaru spouští různé testy a kontroluje počítače poskytované prostřednictvím definice racku clusteru. Na základě výsledků těchto kontrol a všech počítačů přeskočených uživatelem se určí, jestli byly předány dostatečné uzly a/nebo jsou k dispozici pro splnění prahových hodnot potřebných k tomu, aby nasazení pokračovalo.

Důležité

Proces ověření hardwaru zapíše výsledky zadanému analyticsWorkspaceId při vytváření clusteru. Kromě toho se zadaný instanční objekt v objektu clusteru používá k ověřování pomocí rozhraní API pro shromažďování dat pracovního prostoru služby Log Analytics. Tato funkce je viditelná pouze během nového nasazení (Zelené pole); stávající cluster nebude mít protokoly k dispozici zpětně.

Poznámka:

Kontroler RAID se resetuje během nasazování clusteru, který vymaže všechna data z virtuálních disků serveru. Všechna upozornění virtuálního disku řadiče pro správu základní desky (BMC) se obvykle dají ignorovat, pokud neexistují další výstrahy fyzických disků nebo řadičů RAID.

Ve výchozím nastavení zapíše proces ověření hardwaru výsledky do nakonfigurovaného clusteru analyticsWorkspaceId. Vzhledem k povaze shromažďování dat a vyhodnocení schématu pracovního prostoru služby Log Analytics ale může docházet ke zpoždění příjmu dat, které může trvat několik minut nebo déle. Z tohoto důvodu pokračuje nasazení clusteru i v případě, že nedošlo k selhání zápisu výsledků do pracovního prostoru služby Log Analytics. Aby se tato možná událost vyřešila, výsledky pro redundanci se protokolují také ve Správci clusteru.

V zadaném pracovním prostoru Log Analytics objektu clusteru by se měla zobrazit nová vlastní tabulka s názvem clusteru jako předponou a přípona *_CL . V oddílu Protokoly prostředku LAW je možné provést dotaz na novou *_CL tabulku vlastního protokolu.

Nasazení clusteru s přeskočením konkrétního holého počítače

Parametr --skip-validation-for-machines představuje názvy holých počítačů v clusteru, které by se měly během ověřování hardwaru přeskočit. Vynechány uzly se neověřují a nepřidávají se do fondu uzlů. Kromě toho se uzly přeskočeny nezapočítávají do celkového využití při výpočtech prahových hodnot.

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

Nasazení clusteru selhalo

Pokud chcete sledovat stav asynchronní operace, spusťte ji s povoleným příznakem --debug . Po --debug zadání je možné sledovat průběh požadavku. Adresu URL stavu operace najdete tak, že se podíváte na výstup ladění a vyhledáte Azure-AsyncOperation Location hlavičku odpovědi HTTP na požadavek na vytvoření. Hlavičky můžou poskytnout OPERATION_ID pole použité ve volání rozhraní 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"

Výstup je podobný příkladu struktury JSON. Pokud je HardwareValidationThresholdFailedkód chyby , pak chybová zpráva obsahuje seznam holých počítačů, které selhaly ověření hardwaru (například COMP0_SVR0_SERVER_NAME, COMP1_SVR1_SERVER_NAME). Tyto názvy lze použít k analýze protokolů pro další podrobnosti.

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

Další příklad najdete v článku Sledování asynchronních operací pomocí Azure CLI . Další informace, které můžou být užitečné při selhání nebo nasazení konkrétních počítačů, najdete v článku Řešení potíží se zřizováním nástroje BMM.

Ověření nasazení clusteru

Zobrazení stavu clusteru na portálu nebo prostřednictvím Azure CLI:

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

Nasazení clusteru probíhá, když je podrobný stav nastavený na Deploying a podrobné zprávyStatusMessage ukazuje průběh nasazení. Mezi příklady průběhu nasazení, které se zobrazují v podrobné zprávěStatusMessage, patří Hardware validation is in progress. (pokud je cluster nasazen s ověřováním hardwaru), Cluster is bootstrapping., , KCP initialization in progress., Management plane deployment in progress., Cluster extension deployment in progress.atd waiting for "<rack-ids>" to be ready.

Snímek obrazovky webu Azure Portal znázorňující inicializaci průběhu nasazení clusteru

Snímek obrazovky webu Azure Portal zobrazující aplikaci rozšíření průběhu nasazení clusteru

Nasazení clusteru je dokončeno, když je podrobnéStatus nastavena na Running a detailedStatusMessage zobrazí zprávu Cluster is up and running.

Snímek obrazovky webu Azure Portal zobrazující dokončení nasazení clusteru

Zobrazení verze správy clusteru:

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"

Protokolování nasazení clusteru

Protokoly vytvoření clusteru můžete zobrazit v následujících umístěních:

  1. Protokoly aktivit resource/resourcegroup na webu Azure Portal.
  2. Azure CLI s příznakem --debug předaným na příkazovém řádku

Snímek obrazovky webu Azure Portal zobrazující protokol aktivit průběhu nasazení clusteru

Aktualizace identit clusteru prostřednictvím rozhraní API

Spravované identity clusteru je možné přiřadit prostřednictvím rozhraní příkazového řádku. Zrušení přiřazení identit je možné provést prostřednictvím volání rozhraní API. Všimněte si, <APIVersion> že rozhraní API verze 2024-07-01 nebo novější.

  • Pokud chcete odebrat všechny spravované identity, spusťte:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
    
  • Pokud byly přidány spravované identity přiřazené uživatelem i systémem, můžete přiřazení uživatele odebrat aktualizací na type SystemAssigned:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    Příklad textu požadavku (uai-body.json):

    {
      "identity": {
          "type": "SystemAssigned"
      }
    }
    
  • Pokud byly přidány spravované identity přiřazené uživatelem i systémem, můžete přiřazení systému odebrat aktualizací na type UserAssigned:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    Příklad textu požadavku (uai-body.json):

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {}
      	}
      }
    }
    
  • Pokud bylo přidáno více spravovaných identit přiřazených uživatelem, můžete jednu z nich odebrat provedením tohoto příkazu:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    Příklad textu požadavku (uai-body.json):

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null
      	}
      }
    }
    

Odstranění clusteru

Odstraněním clusteru se odstraní prostředky v Azure a cluster, který se nachází v místním prostředí.

Poznámka:

Pokud v clusteru existují nějaké prostředky tenanta, neodstraní se, dokud se tyto prostředky neodstraní.

Snímek obrazovky portálu znázorňující selhání odstranění kvůli prostředkům tenanta

az networkcloud cluster delete --name "$CLUSTER_NAME" --resource-group "$CLUSTER_RG"