Share via


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:

  1. Aktivitätsprotokolle für Ressourcen/Ressourcengruppen im Azure-Portal
  2. 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.

  1. Überprüfung der Cluster-/Rackeigenschaften
  2. Generierung eines startbaren Images für den kurzlebigen Bootstrap-Cluster (Überprüfung der Infrastruktur)
  3. Interaktion mit der IPMI-Schnittstelle des gewünschten Bootstrap-Computers
  4. Ausführen von Hardwareüberprüfungen
  5. Ü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.

Momentaufnahme des Azure-Portals, mit der Anzeige des Fortschritts der Cluster-Bereitstellung kcp init.

Momentaufnahme des Azure-Portals mit der Anzeige des Fortschritts bei der Bereitstellung der Cluster-Erweiterungsanwendung.

Die Clusterbereitstellung ist abgeschlossen, wenn „detailedStatus“ auf Running gesetzt ist und „detailedStatusMessage“ die Meldung Cluster is up and running anzeigt.

Momentaufnahme des Azure-Portals, mit der Anzeige des Fortschritts der Cluster-Bereitstellung abgeschlossen.

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:

  1. Aktivitätsprotokolle für Ressourcen/Ressourcengruppen im Azure-Portal
  2. Azure CLI mit in der Befehlszeile übergebenem Flag --debug

Momentaufnahme des Azure-Portals, mit der Anzeige des Fortschritts der Cluster-Bereitstellung Aktivitätsprotokoll.