Freigeben über


Aktualisieren eines indirekt verbundenen Azure Arc-Datencontrollers mithilfe der CLI

In diesem Artikel wird beschrieben, wie Sie einen indirekt verbundenen Datencontroller mit Azure Arc-Unterstützung mithilfe des Azure CLI (az) upgraden.

Während des Upgrades eines Datencontrollers kann ein Upgrade für Teile der Datensteuerungsebene, z. B. benutzerdefinierte Ressourcendefinitionen (Custom Resource Definitions, CRDs) und Container durchgeführt werden. Ein Upgrade des Datencontrollers hat keine Downtime für die Datendienste (SQL Managed Instance oder PostgreSQL-Server) zur Folge.

Voraussetzungen

Sie benötigen einen indirekt verbundenen Datencontroller mit imageTag v1.0.0_2021-07-30 oder höher.

Führen Sie Folgendes aus, um die Version zu überprüfen:

kubectl get datacontrollers -n <namespace> -o custom-columns=BUILD:.spec.docker.imageTag

Installieren von Tools

Bevor Sie mit den Aufgaben in diesem Artikel fortfahren können, müssen Sie Folgendes installieren:

Beispiele in diesem Artikel verwenden eckige Klammern < ... >, um Werte zu identifizieren, die Sie ersetzen müssen, bevor Sie das Skript ausführen. Ersetzen Sie die Klammern und die Werte in den Klammern.

Die Version der arcdata-Erweiterung und die Imageversion stehen zueinander in Beziehung. Überprüfen Sie anhand des Versionsprotokolls, ob Sie über die richtige Version der arcdata-Erweiterung verfügen, die der Imageversion entspricht, auf die Sie ein Upgrade durchführen möchten.

Anzeigen verfügbarer Images und Auswahl einer Version

Pullen Sie die Liste der verfügbaren Images für den Datencontroller mit dem folgenden Befehl:

az arcdata dc list-upgrades --k8s-namespace <namespace>

Der obige Befehl gibt eine Ausgabe wie im folgenden Beispiel zurück:

Found 2 valid versions.  The current datacontroller version is v1.0.0_2021-07-30.
v1.1.0_2021-11-02
v1.0.0_2021-07-30

Upgraden des Datencontrollers

In diesem Abschnitt wird gezeigt, wie Sie einen indirekt verbundenen Datencontroller aktualisieren.

Hinweis

Einige der Datendienstebenen und -modi sind allgemein verfügbar, einige befinden sich in der Vorschau. Wenn Sie allgemein verfügbare Dienste und Vorschaudienste auf demselben Datencontroller installieren, können Sie kein direktes Upgrade ausführen. Für ein Upgrade löschen Sie alle nicht allgemein verfügbaren (GA) Datenbankinstanzen. Die Liste der allgemein verfügbaren Dienste und Vorschaudienste finden Sie in den Versionshinweisen.

Informationen zu unterstützten Upgradepfaden finden Sie unter Durchführen eines Upgrades für Azure Arc-fähige Datendienste.

Upgraden

Sie müssen eine Verbindung mit einem Kubernetes-Cluster herstellen und sich authentifizieren sowie einen vorhandenen Kubernetes-Kontext auswählen, bevor Sie mit dem Upgrade des Azure Arc-Datencontrollers beginnen.

Sie können zuerst einen Testlauf durchführen. Der Testlauf überprüft, ob die Registrierung vorhanden ist, sowie das Versionsschema und das Autorisierungstoken des privaten Repositorys (sofern verwendet). Um einen Testlauf auszuführen, verwenden Sie den Parameter --dry-run in dem Befehl az arcdata dc upgrade. Beispiel:

az arcdata dc upgrade --desired-version <version> --k8s-namespace <namespace> --dry-run --use-k8s

Die Ausgabe für den vorherigen Befehl lautet:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>

Führen Sie zum Upgrade des Datencontrollers den Befehl az arcdata dc upgrade aus, wobei Sie das Imagetag als --desired-version angeben.

az arcdata dc upgrade --name <data controller name> --desired-version <image tag> --k8s-namespace <namespace> --use-k8s

Beispiel:

az arcdata dc upgrade --name arcdc --desired-version v1.7.0_2022-05-24 --k8s-namespace arc --use-k8s

Die Ausgabe für den vorherigen Befehl zeigt den Status der Schritte an:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Creating service account: arc:cr-upgrade-worker
Creating cluster role: arc:cr-upgrade-worker
Creating cluster role binding: arc:crb-upgrade-worker
Cluster role binding: arc:crb-upgrade-worker created successfully.
Cluster role: arc:cr-upgrade-worker created successfully.
Service account arc:cr-upgrade-worker has been created successfully.
Creating privileged job arc-elevated-bootstrapper-job

Überwachen des Upgradestatus

Das Upgrade ist ein zweiteiliger Prozess. Zuerst erfolgt das Upgrade des Controllers, dann das Upgrade des Überwachungsstapels. Sie können den Fortschritt des Upgrades mit der CLI überwachen.

Befehlszeilenschnittstelle (CLI)

 az arcdata dc status show --name <data controller name> --k8s-namespace <namespace> --use-k8s

Wenn das Upgrade abgeschlossen ist, sieht die Ausgabe wie folgt aus:

Ready

Problembehandlung

Wenn die gewünschte Version auf eine bestimmte Version festgelegt ist, versucht der Bootstrapperauftrag solange ein Upgrade darauf durchzuführen, bis er erfolgreich ist. Wenn das Upgrade erfolgreich ist, wird die Eigenschaft RunningVersion der Spezifikation auf die neue Version aktualisiert. Bei Upgrades können Fehler auftreten, wenn z. B. das Imagetag falsch ist, keine Verbindung mit der Registrierung oder dem Repository hergestellt werden kann, den Containern nicht genügend CPU oder Arbeitsspeicher zugewiesen ist oder der Speicherplatz nicht ausreicht.

  1. Führen Sie den folgenden Befehl aus, um festzustellen, ob einer der Pods den Status Error anzeigt oder eine hohe Anzahl von Neustarts aufweist:

    kubectl get pods --namespace <namespace>
    
  2. Um sich Ereignisse anzusehen, um zu sehen, ob ein Fehler vorliegt, führen Sie Folgendes aus

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Führen Sie zum Abrufen einer Liste der Container in den Pods aus

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Um die Protokolle für einen Container zu erhalten, führen Sie Folgendes aus

    kubectl logs <pod name> <container name> --namespace <namespace>
    

Um häufige Fehler zu sehen und zu erfahren, wie Sie diese beheben können, gehen Sie zu Ressourcen zur Problembehandlung.