Umgebungen zu Cloud Composer 3 migrieren

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 zu Cloud Composer 3 übertragen.

Hinweis

  • In diesem Migrationsleitfaden werden Snapshots verwendet. Snapshots werden in Cloud Composer 2 ab Version 2.0.9 unterstützt.

  • Cloud Composer unterstützt die parallele Migration von Cloud Composer 2 zu Cloud Composer 3. Es ist nicht möglich, ein direktes Upgrade von Cloud Composer 2 auf Cloud Composer 3 durchzuführen.

  • 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.

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

  • Die Gesamtzahl der Objekte in den Ordnern /dags, /plugins und /data im Bucket der Umgebung muss unter 100.000 liegen,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 Upgraden Ihrer Umgebung führen. Für die Übertragung großer Datenmengen können Sie Alternativen wie Cloud Storage verwenden.

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

So sorgen Sie dafür, dass Ihre DAGs mit Cloud Composer 3 kompatibel sind:

  • 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.

  • Cloud Composer lädt Konfigurationsüberschreibungen, Umgebungsvariablen und PyPI-Pakete aus dem Snapshot Ihrer Cloud Composer 2-Umgebung in Cloud Composer 3, ohne sie zu ändern oder an die Kompatibilität anzupassen. Wenn benutzerdefinierte PyPI-Pakete Abhängigkeitskonflikte verursachen, können Sie deren Installation überspringen, wenn Sie den Snapshot laden.

  • 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.

  • In Cloud Composer 3 kann nicht direkt auf die Airflow-Datenbank zugegriffen werden. Achten Sie darauf, dass Ihre DAGs mit dieser Änderung kompatibel sind.

DAGs in Ihrer Cloud Composer 2-Umgebung pausieren

Um doppelte DAG-Ausführungen zu vermeiden, sollten Sie alle DAGs in Ihrer Cloud Composer 2-Umgebung pausieren, bevor Sie den Snapshot speichern. Überspringen Sie den DAG für das Aktivitäts-Monitoring (airflow_monitoring). Er wird zu Monitoring-Zwecken verwendet und ist nicht in Umgebungs-Snapshots enthalten.

Sie haben folgende Möglichkeiten, DAGs zu pausieren:

  • So pausieren Sie DAGs einzeln in der Google Cloud Console:

    1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

      Zur Seite „Umgebungen“

    2. Wählen Sie eine Umgebung aus, um die zugehörigen Details aufzurufen.

    3. Wechseln Sie auf der Seite Umgebungsdetails zum Tab DAGs.

    4. Klicken Sie auf den Namen eines DAG.

    5. Klicken Sie auf der Seite DAG-Details auf DAG pausieren.

  • Rufen Sie in der Airflow-Weboberfläche DAGs auf und pausieren Sie alle DAGs manuell.

  • Verwenden Sie das Script composer_dags, um alle DAGs zu pausieren:

    python3 composer_dags.py --environment COMPOSER_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation pause
    

    Ersetzen Sie:

    • COMPOSER_2_ENV durch den Namen der Cloud Composer 2-Umgebung.
    • PROJECT_ID durch die Projekt-ID.
    • COMPOSER_2_LOCATION durch die Region, in der sich die Umgebung befindet.

Snapshot Ihrer Cloud Composer 2-Umgebung speichern

Console

Erstellen Sie einen Snapshot Ihrer Umgebung:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Cloud Composer 2-Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Klicken Sie auf Snapshot erstellen.

  4. Klicken Sie im Dialogfeld Snapshot erstellen auf Senden. In dieser Anleitung speichern Sie den Snapshot im Bucket der Cloud Composer 2-Umgebung. Sie können aber auch einen anderen Speicherort auswählen. Wenn Sie einen benutzerdefinierten Speicherort angeben, müssen die Dienstkonten beider Umgebungen Lese- und Schreibberechtigungen für den angegebenen Speicherort haben.

  5. Warten Sie, bis Cloud Composer den Snapshot erstellt hat.

  6. Nachdem der Snapshot erstellt wurde, wird in der angezeigten Meldung der Speicherort des Snapshots ausgegeben. Speichern Sie diese Informationen, um sie später zu verwenden, wenn Sie diesen Snapshot in die Cloud Composer 3-Umgebung laden.

    Der Snapshot-Speicherort könnte beispielsweise so aussehen: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

gcloud

  1. Erstellen Sie einen Snapshot Ihrer Cloud Composer 2-Umgebung:

    gcloud composer environments snapshots save \
      COMPOSER_2_ENV \
      --location COMPOSER_2_LOCATION
    

    Ersetzen Sie:

    • COMPOSER_2_ENV durch den Namen der Cloud Composer 2-Umgebung.
    • COMPOSER_2_LOCATION durch die Region, in der sich die Cloud Composer 2-Umgebung befindet.
    • Optional: Mit dem Argument --snapshot-location können Sie einen benutzerdefinierten Speicherort angeben, an dem der Snapshot der Umgebung gespeichert werden soll.

      In dieser Anleitung speichern Sie den Snapshot im Bucket der Cloud Composer 2-Umgebung. Sie können aber auch einen anderen Speicherort auswählen. Wenn Sie einen benutzerdefinierten Speicherort angeben, müssen die Dienstkonten beider Umgebungen Lese- und Schreibberechtigungen für den angegebenen Speicherort haben.

  2. Nachdem der Snapshot erstellt wurde, wird in der angezeigten Meldung der Speicherort des Snapshots ausgegeben. Speichern Sie diese Informationen, um sie später zu verwenden, wenn Sie diesen Snapshot in die Cloud Composer 3-Umgebung laden.

    Der Snapshot-Speicherort könnte beispielsweise so aussehen: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

Cloud Composer 3-Umgebung erstellen

Erstellen Sie eine Cloud Composer 3-Umgebung. Beachten Sie dabei die folgenden Richtlinien:

  • Sie können mit derselben Konfiguration der Ressourcenlimits wie in Ihrer Cloud Composer 2-Umgebung beginnen und die Konfiguration später weiter skalieren und optimieren.

  • In Cloud Composer 3-Umgebungen wird der Airflow-DAG-Prozessor als separate Umgebungskomponente ausgeführt. Da der DAG-Prozessor das Parsen von DAGs vom Planer übernimmt, sollten Sie Ressourcen, die zuvor Airflow-Planern zugewiesen waren, neu verteilen. Sie können dies später tun, nachdem Sie zu Cloud Composer 3 migriert und die Leistung des Schedulers und des DAG-Prozessors überwacht haben.

  • Cloud Composer 3 bietet eine optimierte und vereinfachte Netzwerkeinrichtung im Vergleich zu Cloud Composer 2. Sie können zwischen der Konfiguration von öffentlichen und privaten IP-Netzwerken wechseln und VPC-Netzwerke anhängen und trennen. Sie müssen keine IP-Bereiche angeben . Die Netzwerkkonfiguration Ihrer Cloud Composer 3-Umgebung muss mit der entsprechenden Cloud Composer 2-Konfiguration übereinstimmen.

  • Sie müssen keine Konfigurationsüberschreibungen und Umgebungsvariablen angeben, da Sie sie später ersetzen, wenn Sie den Snapshot Ihrer Cloud Composer 2-Umgebung laden.

Snapshot in Ihre Cloud Composer 3-Umgebung laden

Console

So laden Sie den Snapshot in Ihre Cloud Composer 3-Umgebung:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Cloud Composer 3-Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Klicken Sie auf Snapshot laden.

  4. Klicken Sie im Dialogfeld Snapshot laden auf Durchsuchen.

  5. Wählen Sie den Ordner mit dem Snapshot aus.

    Wenn Sie den Standardspeicherort für diese Anleitung verwenden, befindet sich dieser Ordner im Bucket Ihrer Cloud Composer 2-Umgebung im Ordner /snapshots. Sein Name ist der Zeitstempel des Vorgangs zum Speichern des Snapshots. Dieser Speicherort wurde auch in der Meldung zur erfolgreichen Erstellung des Snapshots angezeigt.

    Beispiel: us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

  6. Klicken Sie auf Laden und warten Sie, bis Cloud Composer den Snapshot geladen hat.

gcloud

Laden Sie den Snapshot Ihrer Cloud Composer 2-Umgebung in Ihre Cloud Composer 3-Umgebung:

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Ersetzen Sie:

  • COMPOSER_3_ENV durch den Namen der Cloud Composer 3-Umgebung.
  • COMPOSER_3_LOCATION durch die Region, in der sich die Cloud Composer 3-Umgebung befindet.
  • SNAPSHOT_PATH durch den URI des Buckets Ihrer Cloud Composer 2-Umgebung gefolgt vom Pfad zum Snapshot. Dieser Speicherort wurde auch in der Meldung zur erfolgreichen Erstellung des Snapshots angezeigt. Beispiel: gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2024-05-15T15-23-12.

Pausierung von DAGs in der Cloud Composer 3-Umgebung aufheben

Sie haben folgende Möglichkeiten:

  • So hebst du die Pausierung von DAGs in der Google Cloud Console einzeln auf:

    1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

      Zur Seite „Umgebungen“

    2. Wählen Sie eine Umgebung aus, um die zugehörigen Details aufzurufen.

    3. Wechseln Sie auf der Seite Umgebungsdetails zum Tab DAGs.

    4. Klicken Sie auf den Namen eines DAG.

    5. Klicken Sie auf der Seite DAG-Details auf Pausierung des DAG aufheben.

  • Rufen Sie in der Airflow-Weboberfläche DAGs auf und heben Sie die Pausierung aller DAGs einzeln auf.

  • Verwenden Sie das Script composer_dags, um die Pausierung aller DAGs aufzuheben:

      python3 composer_dags.py --environment COMPOSER_3_ENV \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      --operation unpause
    

    Ersetzen Sie:

    • COMPOSER_3_ENV durch den Namen der Cloud Composer 3-Umgebung.
    • PROJECT_ID durch die Projekt-ID.
    • COMPOSER_3_LOCATION durch die Region, in der sich die Umgebung befindet.

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 die 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, haben 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

Nachdem Sie alle DAGs und Konfigurationen in die Cloud Composer 3-Umgebung übertragen haben, überwachen Sie diese 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