Umgebungen zu Cloud Composer 3 migrieren (Migrationsskript)

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Auf dieser Seite wird erläutert, wie Sie DAGs, Daten und Konfigurationen aus Ihrer vorhandenen Cloud Composer 2-Umgebung in eine neue Cloud Composer 3-Umgebung migrieren. Dazu verwenden Sie das Migrationsskript.

Von An Methode Leitfaden
Cloud Composer 2 Cloud Composer 3 Nebeneinander mit dem Migrationsskript Dieser Leitfaden
Cloud Composer 2 Cloud Composer 3 Nebeneinander mit Snapshots Anleitung zur Migration von Snapshots
Cloud Composer 1, Airflow 2 Cloud Composer 3 Nebeneinander mit Snapshots Anleitung zur Migration von Snapshots
Cloud Composer 1, Airflow 2 Cloud Composer 2 Nebeneinander mit Snapshots Anleitung zur Migration von Snapshots
Cloud Composer 1, Airflow 2 Cloud Composer 2 Manuelle Übertragung nebeneinander Anleitung zur manuellen Migration
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Nebeneinander mit Snapshots Anleitung zur Migration von Snapshots
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Manuelle Übertragung nebeneinander Anleitung zur manuellen Migration
Cloud Composer 1, Airflow 1 Cloud Composer 1, Airflow 2 Manuelle Übertragung nebeneinander Anleitung zur manuellen Migration

Migrationsskript

Das Migrationsskript ist ein Python-Skript für parallele Migrationen, das den Migrationsprozess von Cloud Composer 2 zu Cloud Composer 3 automatisiert. Dabei werden Umgebungs-Snapshots verwendet, um die Konfiguration der Umgebung in die neue Umgebung zu übertragen.

Das Skript führt die folgenden Aktionen aus:

  1. Ruft die Konfiguration der Cloud Composer 2-Umgebung ab.

  2. Erstellt eine Cloud Composer 3-Umgebung mit einer Konfiguration, die der abgerufenen Konfiguration entspricht.

    Da Cloud Composer 3-Umgebungen eine andere Architektur haben, müssen einige Parameter möglicherweise angepasst werden, um den Unterschieden Rechnung zu tragen. Die meisten Parameter der Umgebung lassen sich auch später anpassen.

  3. Pausiert alle DAGs in der Cloud Composer 2-Umgebung einzeln. Nur DAGs, deren Pausierung in der Cloud Composer 2-Umgebung aufgehoben wurde, werden später wieder aktiviert.

  4. Speichert einen Snapshot der Cloud Composer 2-Quellumgebung. Der Snapshot wird am Standardspeicherort für Snapshots gespeichert, dem Bucket der Cloud Composer 2-Umgebung.

  5. Lädt den Snapshot in die Cloud Composer 3-Umgebung.

    Das Skript prüft nicht die Kompatibilität von benutzerdefinierten PyPI-Paketen, Umgebungsvariablen und Überschreibungen von Airflow-Konfigurationsoptionen mit der Cloud Composer 3-Umgebung.

    Bei Konflikten schlägt die Migration nach der Erstellung der Cloud Composer 3-Umgebung während des Ladens des Snapshots fehl. In diesem Fall können Sie entweder die Konfiguration Ihrer Cloud Composer 2-Umgebung anpassen, um den Konflikt zu beheben, oder ohne das Migrationsskript migrieren und das Laden benutzerdefinierter PyPI-Pakete, Umgebungsvariablen oder Airflow-Konfigurationsüberschreibungen beim Laden des Snapshots überspringen.

  6. Hebt die Pausierung der DAGs in der Cloud Composer 3-Umgebung auf. Wenn einige DAGs bereits vor der Ausführung des Skripts pausiert waren, bleiben sie pausiert.

Für das Skript gelten die folgenden Einschränkungen:

  • Mit dem Skript wird immer eine neue Cloud Composer 3-Umgebung erstellt. Es ist nicht möglich, den Snapshot in eine vorhandene Cloud Composer 3-Umgebung zu laden. Dazu können Sie Snapshots für die Migration verwenden, ohne das Migrationsskript zu nutzen.

  • Mit dem Skript wird eine Cloud Composer 3-Umgebung nur in derselben Region und demselben Projekt wie die Cloud Composer 2-Umgebung erstellt.

  • Sie können Snapshots nur in die gleiche oder eine spätere Version von Airflow laden. Sie können beispielsweise keinen Snapshot aus Airflow 2.10.2 in Airflow 2.9.3 laden.

  • Nur Cloud Composer 2-Umgebungen können mit dem Migrationsskript migriert werden.

Hinweise

  • Da das Migrationsskript eine Umgebung erstellt und dann einen Snapshot speichert und lädt, kann der Migrationsprozess über eine Stunde dauern.

  • Das Skript verwendet Snapshots. Snapshots werden unterstützt

  • in Cloud Composer 2 ab Version 2.0.9.

  • Für Ihr Konto ist eine IAM-Rolle erforderlich, mit der Umgebungen erstellt, Snapshots gespeichert und Snapshots geladen werden können.

  • Die maximale Größe der Airflow-Datenbank, die Snapshots unterstützt, beträgt 20 GB. Wenn die Datenbank Ihrer Umgebung mehr als 20 GB umfasst, verkleinern Sie die Airflow-Datenbank.

  • Die Gesamtzahl der Objekte in den Ordnern /dags, /plugins und /data im Bucket der Umgebung muss kleiner als 100.000 sein,damit Snapshots erstellt werden können.

  • Wenn Sie den XCom-Mechanismus zum Übertragen von Dateien verwenden, achten Sie darauf, dass Sie ihn gemäß den Airflow-Richtlinien verwenden. Die Übertragung großer Dateien oder einer großen Anzahl von Dateien mit XCom wirkt sich auf die Leistung der Airflow-Datenbank aus und kann zu Fehlern beim Laden von Snapshots oder beim Aktualisieren Ihrer Umgebung führen. Erwägen Sie die Verwendung von Alternativen wie Cloud Storage, um große Datenmengen zu übertragen.

Zu Cloud Composer 3 migrieren

In diesem Abschnitt wird der Migrationsprozess mit dem Migrationsskript beschrieben.

Unterschiede zwischen Cloud Composer 2 und Cloud Composer 3

Liste der Unterschiede zwischen Cloud Composer 2 und Cloud Composer 3

Achten Sie darauf, dass in Ihrer Umgebung keine Funktionen verwendet werden, die in Cloud Composer 3 noch nicht verfügbar sind, und dass Sie mit der Verwendung und Konfiguration von Funktionen vertraut sind, die speziell für Cloud Composer 3 gelten.

Prüfen, ob Ihre DAGs mit Cloud Composer 3 kompatibel sind

Achten Sie darauf, dass Ihre DAGs mit Cloud Composer 3 kompatibel sind, indem Sie die folgenden Empfehlungen beachten:

  • Die Liste der Pakete in der Cloud Composer 3-Umgebung kann sich von der in Ihrer Cloud Composer 2-Umgebung unterscheiden. Dies kann sich auf die Kompatibilität Ihrer DAGs mit Cloud Composer 3 auswirken.

  • In Cloud Composer 3 befindet sich der Cluster der Umgebung im Mandantenprojekt. Achten Sie darauf, dass Ihre DAGs mit dieser Änderung kompatibel sind. Insbesondere werden KubernetesPodOperator-Arbeitslasten jetzt unabhängig von Ihrer Umgebung skaliert und es ist nicht möglich, Pod-Affinitätskonfigurationen zu verwenden.

Abhängigkeiten des Skripts installieren

  • Für das Skript ist Python 3.8 oder höher erforderlich.

  • Im Migrationsskript werden die gcloud CLI und curl-Dienstprogramme verwendet. Achten Sie darauf, dass beide Dienstprogramme auf Ihrem Computer installiert sind.

Skript herunterladen

Laden Sie das Migrationsskript (composer_migrate.py) aus dem Repository auf GitHub herunter.

In der gcloud CLI autorisieren

Autorisieren in der gcloud CLI:

gcloud auth login

Parameter der neuen Umgebung in der Vorschau ansehen

Sie können sich die Parameter der Cloud Composer 3-Umgebung vor der Migration ansehen. So können Sie sehen, wie die Konfiguration der Cloud Composer 2-Umgebung mit Cloud Composer 3 übereinstimmt.

Überschreibungen der Airflow-Konfigurationsoptionen, benutzerdefinierte PyPI-Pakete und Umgebungsvariablen werden aus dem Snapshot der Umgebung geladen und nicht in der Vorschau angezeigt.

Maximieren

Führen Sie dazu diesen Befehl aus:

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
    --dry_run

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • COMPOSER_2_ENV: Der Name Ihrer Cloud Composer 2-Umgebung.
  • LOCATION: die Region, in der sich die Cloud Composer 2-Umgebung befindet. Die Cloud Composer 3-Umgebung wird in derselben Region erstellt.
  • COMPOSER_3_AIRFLOW_VERSION: die Airflow-Version der Cloud Composer 3-Umgebung. Diese Version muss dieselbe oder eine neuere Version als in der Cloud Composer 2-Umgebung sein und eine der in Cloud Composer 3 verfügbaren Versionen sein.

Beispiel:

python3 composer_migrate.py \
    --project example-project \
    --location us-central1 \
    --source_environment example-composer-2-environment \
    --target_environment example-composer-3-environment \
    --target_airflow_version 2.10.2

Umgebungsstatus prüfen

Prüfen Sie, ob die Cloud Composer 2-Umgebung, die Sie migrieren möchten, fehlerfrei funktioniert.

Wenn Ihre Umgebung nicht fehlerfrei ist, schlägt die Migration nach der Erstellung einer neuen Cloud Composer 3-Umgebung fehl, da kein Snapshot erstellt werden kann.

Weitere Informationen zum Prüfen des Umgebungs- und Datenbankstatus finden Sie unter Monitoring-Dashboard verwenden.

Migrationsskript ausführen

Führen Sie dazu diesen Befehl aus:

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • COMPOSER_2_ENV: Der Name Ihrer Cloud Composer 2-Umgebung.
  • LOCATION: die Region, in der sich die Cloud Composer 2-Umgebung befindet. Die Cloud Composer 3-Umgebung wird in derselben Region erstellt.
  • COMPOSER_3_AIRFLOW_VERSION: die Airflow-Version der Cloud Composer 3-Umgebung. Diese Version muss dieselbe oder eine neuere Version als in der Cloud Composer 2-Umgebung sein und eine der in Cloud Composer 3 verfügbaren Versionen sein.

Auf DAG-Fehler prüfen

  1. Wechseln Sie in der Airflow-Weboberfläche zu DAGs und suchen Sie nach gemeldeten DAG-Syntaxfehlern.

  2. Prüfen Sie, ob DAG-Ausführungen für den richtigen Zeitpunkt geplant sind.

  3. Warten Sie, bis die DAG-Ausführungen in der Cloud Composer 3-Umgebung erfolgt sind, und prüfen Sie, ob sie erfolgreich waren. Wenn eine DAG-Ausführung erfolgreich war, heben Sie ihre Pausierung in der Cloud Composer 2-Umgebung nicht auf. Andernfalls wird in der Cloud Composer 2-Umgebung ein DAG zur selben Zeit und am selben Datum ausgeführt.

  4. Wenn eine bestimmte DAG-Ausführung fehlschlägt, versuchen Sie, eine Fehlerbehebung für den DAG durchzuführen, bis er erfolgreich in Cloud Composer 3 ausgeführt wird.

Cloud Composer 3-Umgebung überwachen

Überwachen Sie Ihre Cloud Composer 3-Umgebung auf potenzielle Probleme, fehlgeschlagene DAG-Ausführungen und den allgemeinen Umgebungsstatus.

Wenn die Cloud Composer 3-Umgebung für einen ausreichend langen Zeitraum problemlos ausgeführt wird, sollten Sie die Cloud Composer 2-Umgebung vielleicht löschen.

Nächste Schritte