Erstellen und Bereitstellen eines Clusters mithilfe der Azure CLI
In diesem Artikel wird das Erstellen eines Clusters mithilfe der Azure-Befehlszeilenschnittstelle (AzCLI) erstellen beschrieben. Außerdem veranschaulicht dieses Dokument, wie Sie den Status überprüfen, Updates durchführen oder einen Cluster löschen.
Voraussetzungen
- Vergewissern Sie sich, dass der Netzwerk-Fabric Controller und der Cluster-Manager in Ihrer Azure-Region vorhanden sind.
- Überprüfen, ob Network Fabric erfolgreich bereitgestellt wurde
API-Leitfaden und -Metriken
Der API-Leitfaden enthält Informationen zu den Ressourcenanbietern, Ressourcenmodellen und APIs.
Die aus den Protokollierungsdaten generierten Metriken finden Sie unter Azure Monitor-Metriken.
Erstellen eines Clusters
Die Infrastrukturclusterressource stellt eine lokale Bereitstellung der Plattform im Cluster-Manager dar. Alle anderen plattformspezifischen Ressourcen sind in Bezug auf ihren Lebenszyklus davon abhängig.
Sie sollten das Netzwerkfabric für diese lokale Bereitstellung erfolgreich erstellt haben. Jede lokale Operator Nexus-Instanz weist eine 1:1-Zuordnung mit einem Netzwerkfabric auf.
Erstellen Sie den Cluster:
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"
Sie können stattdessen einen Cluster mit ARM-Vorlagen-/Parameterdateien im ARM-Vorlagen-Editor erstellen:
Parameter für Clustervorgänge
Parametername | Beschreibung |
---|---|
CLUSTER_NAME | Ressourcenname des Clusters |
LOCATION | Die Azure-Region, in der der Cluster bereitgestellt wird |
CL_NAME | Der benutzerdefinierte Cluster Manager-Speicherort aus dem Azure-Portal |
CLUSTER_RG | Der Name der Clusterressourcengruppe |
LAW_ID | ID des Log Analytics-Arbeitsbereichs für den Cluster |
CLUSTER_LOCATION | Der lokale Name des Clusters |
AGGR_RACK_RESOURCE_ID | Rack-ID für das Aggregator-Rack |
AGGR_RACK_SKU | Rack-SKU für das Aggregator-Rack |
AGGR_RACK_SN | Rackseriennummer für das Aggregator-Rack |
AGGR_RACK_LOCATION | Physischer Rackstandort für das Aggregator-Rack |
AGGR_RACK_BMM | Nur für die Bereitstellung eines Einzelracks verwendet, leer bei mehreren Racks |
SA_NAME | Gerätename der Speicherappliance |
SA_PASS | Administratorkennwort der Speicherappliance |
SA_USER | Administratorbenutzer der Speicherappliance |
SA_SN | Seriennummer der Speicherappliance |
COMPX_RACK_RESOURCE_ID | Rack-ID für CompX-Rack, für jedes Rack in „compute-rack-definitions“ wiederholen |
COMPX_RACK_SKU | Rack-SKU für CompX-Rack, für jedes Rack in „compute-rack-definitions“ wiederholen |
COMPX_RACK_SN | Rackseriennummer für CompX-Rack, für jedes Rack in „compute-rack-definitions“ wiederholen |
COMPX_RACK_LOCATION | Physischer Standort für CompX-Rack, für jedes Rack in „compute-rack-definitions“ wiederholen |
COMPX_SVRY_BMC_PASS | Kennwort für CompX-Rack-ServerY-BMC, für jedes Rack in „compute-rack-definitions“ und für jeden Server im Rack wiederholen |
COMPX_SVRY_BMC_USER | Benutzer für CompX-Rack-ServerY-BMC, für jedes Rack in „compute-rack-definitions“ und für jeden Server im Rack wiederholen |
COMPX_SVRY_BMC_MAC | MAC-Adresse für CompX-Rack-ServerY-BMC, für jedes Rack in „compute-rack-definitions“ und für jeden Server im Rack wiederholen |
COMPX_SVRY_BOOT_MAC | MAC-Adresse für CompX-Rack-ServerY-Boot-Netzwerkadapter, für jedes Rack in „compute-rack-definitions“ und für jeden Server im Rack wiederholen |
COMPX_SVRY_SERVER_DETAILS | Details für CompX-Rack-ServerY, für jedes Rack in „compute-rack-definitions“ und für jeden Server im Rack wiederholen |
COMPX_SVRY_SERVER_NAME | Name für CompX-Rack-ServerY, für jedes Rack in „compute-rack-definitions“ und für jeden Server im Rack wiederholen |
MRG_NAME | Name der verwalteten Clusterressourcengruppe |
MRG_LOCATION | Azure-Region für Cluster |
NFC_ID | Verweis auf den Netzwerk-Fabric Controller |
SP_APP_ID | App-ID des Dienstprinzipals |
SP_PASS | Kennwort des Dienstprinzipals |
SP_ID | Dienstprinzipal-ID: |
TENANT_ID | ID des Abonnementmandanten |
KV_RESOURCE_ID | Key Vault-ID |
CLUSTER_TYPE | Art des Clusters: einzeln oder MultiRack |
CLUSTER_VERSION | NC-Version des Clusters |
TAG_KEY1 | Optionales tag1 zum Übergeben an die Clustererstellung |
TAG_VALUE1 | Wert des optionalen tag1 zum Übergeben an die Clustererstellung |
TAG_KEY2 | Optionales tag2 zum Übergeben an die Clustererstellung |
TAG_VALUE2 | Wert des optionalen tag2 zum Übergeben an die Clustererstellung |
Clustervalidierung
Bei erfolgreicher Erstellung des Operator Nexus-Clusters wird in Ihrem Abonnement ein AKS-Cluster erstellt. Die Cluster-ID, der Clusterbereitstellungsstatus und der Bereitstellungsstatus werden als Ergebnis eines erfolgreichen cluster create
-Vorgangs zurückgegeben.
Zeigen Sie den Status des Clusters an:
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--resource-name "$CLUSTER_RESOURCE_NAME"
Die Clustererstellung ist abgeschlossen, wenn für provisioningState
der Ressource Folgendes angezeigt wird: "provisioningState": "Succeeded"
Clusterprotokollierung
Protokolle zur Clustererstellung können an den folgenden Stellen angezeigt werden:
- Aktivitätsprotokolle für Ressourcen/Ressourcengruppen im Azure-Portal
- Azure CLI mit in der Befehlszeile übergebenem Flag
--debug
Bereitstellen eines Clusters
Nachdem ein Cluster erstellt wurde, kann die Aktion für die Clusterbereitstellung ausgelöst werden. Die Aktion für die Clusterbereitstellung erstellt das Bootstrapimage und stellt den Cluster bereit.
Der Bereitstellungsvorgang initiiert eine Reihe von Ereignissen im Cluster-Manager.
- Überprüfung der Cluster-/Rackeigenschaften
- Generierung eines startbaren Images für den kurzlebigen Bootstrap-Cluster (Überprüfung der Infrastruktur)
- Interaktion mit der IPMI-Schnittstelle des gewünschten Bootstrap-Computers
- Ausführen von Hardwareüberprüfungen
- Überwachung des Clusterbereitstellungsprozesses
Stellen Sie den lokalen Cluster bereit:
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--subscription "$SUBSCRIPTION_ID" \
--no-wait --debug
Tipp
Um den Status des az networkcloud cluster deploy
-Befehls zu überprüfen, kann er mithilfe des --debug
-Flags ausgeführt werden.
Auf diese Weise können Sie den Header Azure-AsyncOperation
oder Location
abrufen, der zum Abfragen der operationStatuses
-Ressource verwendet wird.
Ausführlichere Schritte finden Sie im Abschnitt Clusterbereitstellung fehlgeschlagen.
Optional kann der Befehl asynchron mit dem --no-wait
-Flag ausgeführt werden.
Clusterbereitstellung mit Hardwareprüfung
Während der Bereitstellung eines Clusters ist einer der Schritte, die ausgeführt werden, die Hardwareprüfung. Bei der Hardwareprüfungsprozedur werden verschiedene Tests und Überprüfungen der über die Rackdefinition des Clusters bereitgestellten Maschinen durchgeführt. Basierend auf den Ergebnissen dieser Prüfungen und allen übersprungenen Computern wird festgestellt, ob genügend Knoten bestanden haben und/oder verfügbar sind, um die für die weitere Bereitstellung erforderlichen Schwellenwerte zu erreichen.
Wichtig
Der Hardwareprüfungsprozess schreibt die Ergebnisse in die bei der Clustererstellung angegebene analyticsWorkspaceId
.
Darüber hinaus wird der bereitgestellte Dienstprinzipal im Clusterobjekt für die Authentifizierung für die Datensammlungs-API des Log Analytics-Arbeitsbereichs verwendet.
Diese Funktion ist nur während einer neuen Bereitstellung (Greenfield) sichtbar. Vorhandene Cluster verfügen nicht über die rückwirkend verfügbaren Protokolle.
Standardmäßig schreibt der Hardwareprüfungsprozess die Ergebnisse in die analyticsWorkspaceId
des konfigurieren Clusters.
Aufgrund der Art der Datenerfassung und der Schemaauswertung des Log Analytics-Arbeitsbereichs kann es jedoch zu Verzögerungen bei der Erfassung kommen, die einige Minuten oder länger dauern können.
Aus diesem Grund wird die Clusterbereitstellung fortgesetzt, auch wenn die Ergebnisse nicht in den Log Analytics-Arbeitsbereich geschrieben wurden.
Um dieses mögliche Ereignis zu vermeiden, werden die Ergebnisse aus Redundanzgründen auch im Cluster-Manager protokolliert.
Im Log Analytics-Arbeitsbereich des bereitgestellten Clusterobjekts sollte eine neue benutzerdefinierte Tabelle mit dem Namen des Clusters als Präfix und dem Suffix *_CL
angezeigt werden.
Im Abschnitt Protokolle der LAW-Ressource kann eine Abfrage für die neue benutzerdefinierte Protokolltabelle *_CL
ausgeführt werden.
Clusterbereitstellungsaktion mit Überspringen eines bestimmten Bare-Metal-Computers
Dem Bereitstellungsbefehl kann ein Parameter übergeben werden, der die Namen der Bare-Metal-Computer im Cluster angibt, die bei der Hardwareprüfung übersprungen werden sollen. Übersprungene Knoten werden nicht überprüft und nicht zum Knotenpool hinzugefügt. Außerdem werden übersprungene Knoten nicht auf die Gesamtzahl angerechnet, die für die Berechnung der Schwellenwerte verwendet wird.
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--subscription "$SUBSCRIPTION_ID" \
--skip-validations-for-machines "$COMPX_SVRY_SERVER_NAME"
Fehler bei der Clusterbereitstellung
Um den Status eines asynchronen Vorgangs nachzuverfolgen, nehmen Sie die Ausführung mit einem aktivierten --debug
-Flag vor.
Wenn --debug
angegeben ist, kann der Fortschritt der Anforderung überwacht werden.
Die Vorgangsstatus-URL lässt sich ermitteln, indem man in der Debugausgabe in der HTTP-Antwort auf die Erstellungsanforderung nach dem Header Azure-AsyncOperation
oder Location
sucht.
Die Header können das im HTTP-API-Aufruf verwendete Feld OPERATION_ID
bereitstellen.
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"
Die Ausgabe ähnelt dem JSON-Strukturbeispiel. Wenn der Fehlercode HardwareValidationThresholdFailed
ist, enthält die Fehlermeldung eine Liste der Bare-Metal-Computer mit Fehlern bei der Hardwareprüfung (z. B. COMP0_SVR0_SERVER_NAME
, COMP1_SVR1_SERVER_NAME
). Diese Namen können verwendet werden, um die Protokolle nach weiteren Details zu parsen.
{
"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"
}
Ein weiteres Beispiel finden Sie im Artikel Nachverfolgen asynchroner Vorgänge mithilfe der Azure CLI.
Überprüfung der Clusterbereitstellung
Zeigen Sie den Status des Clusters im Portal oder über die Azure CLI an:
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--resource-name "$CLUSTER_RESOURCE_NAME"
Die Clusterbereitstellung ist in Bearbeitung, wenn detailedStatus auf Deploying
festgelegt ist, und detailedStatusMessage zeigt den Fortschritt der Bereitstellung an.
Einige Beispiele für den Bereitstellungsfortschritt in detailedStatusMessage sind Hardware validation is in progress.
(wenn Cluster mit Hardwareüberprüfung bereitgestellt wird),Cluster is bootstrapping.
, KCP initialization in progress.
, Management plane deployment in progress.
, Cluster extension deployment in progress.
, waiting for "<rack-ids>" to be ready
usw.
Die Clusterbereitstellung ist abgeschlossen, wenn „detailedStatus“ auf Running
gesetzt ist und „detailedStatusMessage“ die Meldung Cluster is up and running
anzeigt.
Anzeigen der Verwaltungsversion des Clusters:
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"
Protokollierung der Clusterbereitstellung
Protokolle zur Clustererstellung können an den folgenden Stellen angezeigt werden:
- Aktivitätsprotokolle für Ressourcen/Ressourcengruppen im Azure-Portal
- Azure CLI mit in der Befehlszeile übergebenem Flag
--debug