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 die Network Fabric vor dieser lokalen Bereitstellung erstellen. Jede lokale Operator Nexus-Instanz weist eine 1:1-Zuordnung mit einem Netzwerkfabric auf.
Erstellen Sie den Cluster unter Verwendung von AZ 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"
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 |
NF_ID | Verweis auf Network Fabric |
SP_APP_ID | App-ID des Dienstprinzipals |
SP_PASS | Kennwort des Dienstprinzipals |
SP_ID | Dienstprinzipal-ID: |
TENANT_ID | ID des Abonnementmandanten |
SUBSCRIPTION_ID | Abonnement-ID |
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 |
Erstellen des Clusters mithilfe des Azure Resource Manager-Vorlagen-Editors
Eine alternative Möglichkeit zum Erstellen eines Clusters ist der ARM-Vorlagen-Editor.
Um den Cluster auf diese Weise zu erstellen, müssen Sie eine Vorlagendatei (cluster.jsonc) und eine Parameterdatei (cluster.parameters.jsonc) bereitstellen.
Beispiele für einen 8-Rack 2M16C-SKU-Cluster finden Sie unter Verwendung dieser beiden Dateien:
cluster.jsonc , cluster.parameters.jsonc
Hinweis
Um die richtige Formatierung zu erhalten, kopieren Sie die Rohcodedatei. Die Werte in der Datei cluster.parameters.jsonc sind kundenspezifisch und stellen möglicherweise keine vollständige Liste dar. Aktualisieren Sie dann die Werte entsprechend Ihrer jeweiligen Umgebung.
- Navigieren Sie in einem Webbrowser zum Azure-Portal, und melden Sie sich an.
- Suchen Sie über die Suchleiste im Azure-Portal nach 'Benutzerdefinierte Vorlage' bereitstellen, und wählen Sie sie dann aus den verfügbaren Diensten aus.
- Klicken Sie auf Eigene Vorlage im Editor erstellen.
- Klicken Sie auf "Datei laden". Suchen Sie die Vorlagendatei "cluster.jsonc", und laden Sie sie hoch.
- Klicken Sie auf Speichern.
- Klicken Sie auf Parameter bearbeiten.
- Klicken Sie auf "Datei laden". Suchen Sie die Parameterdatei "cluster.parameters.jsonc", und laden Sie sie hoch.
- Klicken Sie auf Speichern.
- Wählen Sie das richtige Abonnement aus.
- Suchen Sie nach der Ressourcengruppe, um festzustellen, ob sie bereits vorhanden ist. Falls nicht, erstellen Sie eine neue Ressourcengruppe.
- Stellen Sie sicher, dass alle Instanzendetails korrekt sind.
- Klicken Sie auf Überprüfen + erstellen.
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" \
--cluster-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
Nach dem Erstellen des Clusters kann die Bereitstellungsclusteraktion 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_RG" \
--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_RG" \
--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" \
--name "$CLUSTER_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_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"
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für