Tworzenie i aprowizuj klaster przy użyciu interfejsu wiersza polecenia platformy Azure
W tym artykule opisano sposób tworzenia klastra przy użyciu interfejsu wiersza polecenia platformy Azure (AzCLI). W tym dokumencie pokazano również, jak sprawdzić stan, aktualizację lub usunąć klaster.
Wymagania wstępne
- Sprawdź, czy kontroler sieci szkieletowej i menedżer klastra istnieją w regionie świadczenia usługi Azure
- Sprawdź, czy sieć szkieletowa sieci szkieletowej została pomyślnie aprowizowana
Przewodnik i metryki interfejsu API
Przewodnik po interfejsie API zawiera informacje na temat dostawców zasobów i modeli zasobów oraz interfejsów API.
Metryki wygenerowane na podstawie danych rejestrowania są dostępne w metrykach usługi Azure Monitor.
Tworzenie klastra
Zasób klastra infrastruktury reprezentuje lokalne wdrożenie platformy w Menedżerze klastra. Wszystkie inne zasoby specyficzne dla platformy są zależne od niego na potrzeby ich cyklu życia.
Sieć szkieletowa sieci szkieletowej powinna zostać pomyślnie utworzona dla tego wdrożenia lokalnego. Każde wystąpienie lokalne Operatora Nexus ma jedno do jednego skojarzenia z siecią szkieletową sieci szkieletowej.
Utwórz klaster:
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"
Zamiast tego można utworzyć klaster z plikami szablonów/parametrów usługi ARM w Edytorze szablonów usługi ARM:
Parametry dla operacji klastra
Nazwa parametru | opis |
---|---|
CLUSTER_NAME | Nazwa zasobu klastra |
LOKALIZACJA | Region świadczenia usługi Azure, w którym wdrożono klaster |
CL_NAME | Lokalizacja niestandardowa Menedżera klastra w witrynie Azure Portal |
CLUSTER_RG | Nazwa grupy zasobów klastra |
LAW_ID | Identyfikator obszaru roboczego usługi Log Analytics dla klastra |
CLUSTER_LOCATION | Lokalna nazwa klastra |
AGGR_RACK_RESOURCE_ID | RackID dla stojaka agregatora |
AGGR_RACK_SKU | Jednostka SKU stojaka dla stojaka agregatora |
AGGR_RACK_SN | Numer seryjny stojaka dla stojaka agregatora |
AGGR_RACK_LOCATION | Lokalizacja fizyczna stojaka dla stojaka agregatora |
AGGR_RACK_BMM | Używane tylko do wdrażania w jednym stojaku, puste dla wielu stojaków |
SA_NAME | Nazwa urządzenia magazynu |
SA_PASS | Hasło administratora urządzenia magazynu |
SA_USER | Administrator urządzenia magazynu |
SA_SN | Numer seryjny urządzenia magazynu |
COMPX_RACK_RESOURCE_ID | RackID dla regałów CompX, powtarzaj dla każdego stojaka w definicjach compute-rack |
COMPX_RACK_SKU | Jednostka SKU stojaka dla regałów CompX, powtarzana dla każdego stojaka w definicjach regałów obliczeniowych |
COMPX_RACK_SN | Numer seryjny stojaka dla regałów CompX, powtarzaj dla każdego stojaka w definicjach regałów obliczeniowych |
COMPX_RACK_LOCATION | Fizyczna lokalizacja regałów CompX Rack powtarzana dla każdego stojaka w definicjach regałów obliczeniowych |
COMPX_SVRY_BMC_PASS | CompX Rack ServerY BMC hasło, powtórz dla każdego stojaka w definicjach compute-rack i dla każdego serwera w stojaku |
COMPX_SVRY_BMC_USER | CompX Rack ServerY BMC użytkownika, powtórz dla każdego stojaka w definicjach obliczeniowych stojaków i dla każdego serwera w stojaku |
COMPX_SVRY_BMC_MAC | CompX Rack ServerY adres MAC BMC, powtórz dla każdego stojaka w definicjach stojaków obliczeniowych i dla każdego serwera w stojaku |
COMPX_SVRY_BOOT_MAC | CompX Rack ServerY adres MAC karty sieciowej rozruchu, powtórz dla każdego stojaka w definicjach compute-rack i dla każdego serwera w stojaku |
COMPX_SVRY_SERVER_DETAILS | Szczegóły compX Rack ServerY, powtarzaj dla każdego stojaka w definicjach obliczeniowych stojaków i dla każdego serwera w stojaku |
COMPX_SVRY_SERVER_NAME | Nazwa CompX Rack ServerY powtórz dla każdego stojaka w definicjach regałów obliczeniowych i dla każdego serwera w stojaku |
MRG_NAME | Nazwa zarządzanej grupy zasobów klastra |
MRG_LOCATION | Region klastra platformy Azure |
NFC_ID | Odwołanie do kontrolera sieci szkieletowej sieci szkieletowej |
SP_APP_ID | Identyfikator aplikacji jednostki usługi |
SP_PASS | Hasło jednostki usługi |
SP_ID | Identyfikator jednostki usługi |
TENANT_ID | Identyfikator dzierżawy subskrypcji |
KV_RESOURCE_ID | Identyfikator usługi Key Vault |
CLUSTER_TYPE | Typ klastra, pojedynczego lub wielorackowego |
CLUSTER_VERSION | Wersja klastra NC |
TAG_KEY1 | Opcjonalny tag1 do przekazania do tworzenia klastra |
TAG_VALUE1 | Opcjonalna wartość tag1 do przekazania do tworzenia klastra |
TAG_KEY2 | Opcjonalny tag2 do przekazania do tworzenia klastra |
TAG_VALUE2 | Opcjonalna wartość tag2 do przekazania do tworzenia klastra |
Walidacja klastra
Pomyślne utworzenie klastra Operator Nexus powoduje utworzenie klastra usługi AKS w ramach subskrypcji. Identyfikator klastra, stan aprowizacji klastra i stan wdrożenia są zwracane w wyniku pomyślnego działania cluster create
.
Wyświetl stan klastra:
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--resource-name "$CLUSTER_RESOURCE_NAME"
Tworzenie klastra zostanie ukończone po provisioningState
wyświetleniu elementu zasobu: "provisioningState": "Succeeded"
Rejestrowanie klastra
Dzienniki tworzenia klastra można wyświetlić w następujących lokalizacjach:
- Dzienniki aktywności zasobu/grupy zasobów w witrynie Azure Portal.
- Interfejs wiersza polecenia platformy Azure z flagą
--debug
przekazaną w wierszu polecenia.
Wdrażanie klastra
Po utworzeniu klastra można wyzwolić akcję wdrożenia klastra. Akcja wdróż klaster tworzy obraz bootstrap i wdraża klaster.
Wdrażanie klastra inicjuje sekwencję zdarzeń, które mają wystąpić w Menedżerze klastra
- Sprawdzanie poprawności właściwości klastra/stojaka
- Generowanie obrazu rozruchowego dla efemerycznego klastra rozruchowego (walidacja infrastruktury).
- Interakcja z interfejsem IPMI docelowej maszyny rozruchowej.
- Przeprowadzanie testów weryfikacji sprzętu
- Monitorowanie procesu wdrażania klastra.
Wdróż klaster lokalny:
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--subscription "$SUBSCRIPTION_ID" \
--no-wait --debug
Napiwek
Aby sprawdzić stan az networkcloud cluster deploy
polecenia, można go wykonać przy użyciu flagi --debug
.
Umożliwi to uzyskanie nagłówka lub używanego Azure-AsyncOperation
do wykonywania zapytań dotyczących operationStatuses
zasobu.Location
Zobacz sekcję Wdrażanie klastra nie powiodło się , aby uzyskać bardziej szczegółowe instrukcje.
Opcjonalnie polecenie może być uruchamiane asynchronicznie przy użyciu flagi --no-wait
.
Wdrażanie klastra przy użyciu weryfikacji sprzętu
Podczas procesu wdrażania klastra jednym z wykonanych kroków jest weryfikacja sprzętu. Procedura sprawdzania poprawności sprzętu uruchamia różne testy i sprawdza maszyny dostarczone za pomocą definicji stojaka klastra. Na podstawie wyników tych testów i wszystkich pominiętych maszyn przez użytkownika należy określić, czy są dostępne wystarczające węzły przekazywane i/lub są dostępne, aby spełnić progi niezbędne do kontynuowania wdrażania.
Ważne
Proces weryfikacji sprzętu zapisze wyniki określone w analyticsWorkspaceId
sekcji Tworzenie klastra.
Ponadto podana jednostka usługi w obiekcie klastra jest używana do uwierzytelniania w interfejsie API zbierania danych obszaru roboczego usługi Log Analytics.
Ta funkcja jest widoczna tylko podczas nowego wdrożenia (Green Field); istniejący klaster nie będzie miał dostępnych dzienników z mocą wsteczną.
Domyślnie proces sprawdzania poprawności sprzętu zapisuje wyniki w skonfigurowanym klastrze analyticsWorkspaceId
.
Jednak ze względu na charakter zbierania danych obszaru roboczego usługi Log Analytics i oceny schematu może wystąpić opóźnienie pozyskiwania, które może potrwać kilka minut lub więcej.
Z tego powodu wdrożenie klastra przebiega nawet wtedy, gdy nie udało się zapisać wyników w obszarze roboczym usługi Log Analytics.
Aby ułatwić rozwiązanie tego możliwego zdarzenia, wyniki dla nadmiarowości są również rejestrowane w Menedżerze klastra.
W udostępnionym obszarze roboczym usługi Log Analytics obiektu klastra powinna zostać wyświetlona nowa tabela niestandardowa z nazwą klastra jako prefiksem i sufiksem *_CL
.
W sekcji Dzienniki zasobu LAW można wykonać zapytanie względem nowej *_CL
tabeli dzienników niestandardowych.
Akcja wdrażania klastra z pominięciem określonej maszyny bez systemu operacyjnego
Parametr można przekazać do polecenia deploy, które reprezentuje nazwy maszyn bez systemu operacyjnego w klastrze, które powinny zostać pominięte podczas walidacji sprzętu. Pominięte węzły nie są weryfikowane i nie są dodawane do puli węzłów. Ponadto węzły pominięte nie są liczone względem sumy używanej przez obliczenia progowe.
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--subscription "$SUBSCRIPTION_ID" \
--skip-validations-for-machines "$COMPX_SVRY_SERVER_NAME"
Wdrażanie klastra nie powiodło się
Aby śledzić stan operacji asynchronicznej, uruchom polecenie z włączoną flagą --debug
.
Po --debug
określeniu można monitorować postęp żądania.
Adres URL stanu operacji można znaleźć, sprawdzając dane wyjściowe debugowania, Azure-AsyncOperation
wyszukując nagłówek lub Location
w odpowiedzi HTTP na żądanie utworzenia.
Nagłówki mogą podać OPERATION_ID
pole używane w wywołaniu interfejsu 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"
Dane wyjściowe są podobne do przykładu struktury JSON. Gdy kod błędu to HardwareValidationThresholdFailed
, komunikat o błędzie zawiera listę maszyn bez systemu operacyjnego, które zakończyły się niepowodzeniem weryfikacji sprzętu (na przykład COMP0_SVR0_SERVER_NAME
, COMP1_SVR1_SERVER_NAME
). Te nazwy mogą służyć do analizowania dzienników, aby uzyskać więcej szczegółów.
{
"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"
}
Zobacz artykuł Śledzenie operacji asynchronicznych przy użyciu interfejsu wiersza polecenia platformy Azure, aby zapoznać się z innym przykładem.
Walidacja wdrożenia klastra
Wyświetl stan klastra w portalu lub za pośrednictwem interfejsu wiersza polecenia platformy Azure:
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--resource-name "$CLUSTER_RESOURCE_NAME"
Wdrożenie klastra jest w toku, gdy parametr detailedStatus jest ustawiony na Deploying
i szczegółoweStatusMessage pokazuje postęp wdrażania.
Niektóre przykłady postępu wdrażania pokazane w szczegółowymStatusMessage to Hardware validation is in progress.
(jeśli klaster jest wdrożony z weryfikacją sprzętu) ,Cluster is bootstrapping.
KCP initialization in progress.
, , Management plane deployment in progress.
, Cluster extension deployment in progress.
, itpwaiting for "<rack-ids>" to be ready
.
Wdrożenie klastra zostało ukończone, gdy parametr detailedStatus jest ustawiony na Running
, a element detailedStatusMessage wyświetla komunikat Cluster is up and running
.
Wyświetl wersję zarządzania klastra:
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"
Rejestrowanie wdrożenia klastra
Dzienniki tworzenia klastra można wyświetlić w następujących lokalizacjach:
- Dzienniki aktywności zasobu/grupy zasobów w witrynie Azure Portal.
- Interfejs wiersza polecenia platformy Azure z flagą
--debug
przekazaną w wierszu polecenia.