Upgrade für Umgebungen ausführen

Auf dieser Seite wird beschrieben, wie Sie die Airflow-Version oder Cloud Composer-Version aktualisieren, die in Ihrer Umgebung ausgeführt wird.

Während des Upgrades führt Cloud Composer folgende Aufgaben aus:

  • Stellt den Airflow-Planer und die Worker-Pods in einem neuen Kubernetes-Namespace neu bereit. Nach Abschluss des Upgrades verwendet Airflow eine neue MySQL-Datenbank. Der Datenbankname stimmt mit dem Kubernetes-Namespace überein. Der DAG-Ausführungsverlauf wird beibehalten.

  • Die Airflow-airflow_db-Verbindung wird aktiviert, damit sie auf die neue Cloud SQL-Datenbank verweist.

Diese Änderungen wirken sich darauf aus, wie Sie auf Pods zugreifen und eine Verbindung zur Cloud SQL-Datenbank herstellen.

  • Für den Zugriff auf Pods im GKE-Cluster nach dem Upgrade sind Namespace-fähige kubectl-Befehle erforderlich. Zum Auflisten von Pods im Cluster verwenden Sie beispielsweise kubectl get pods -A. Für das Ausführen eines Befehls in einem Pod verwenden Sie kubectl exec -n <NAMESPACE> ....
  • Wenn Sie Airflow-Verbindungen und Arbeitslasten verwenden, die direkt auf den SQL-Proxy verweisen, geben Sie den Standard-Namespace in folgender Weise als Teil des Hostnamens an: airflow-sqlproxy-service.default, nicht airflow-sqlproxy-service.

Upgrades von Cloud Composer haben keinen Einfluss auf die Art und Weise, wie Sie eine Verbindung zu Ressourcen in Ihrer Umgebung herstellen: VM-IP-Adressen des Cloud Kubernetes Engine-Knotens, IP-Adressen der Cloud SQL-Instanz, Cloud Storage-Bucket oder Domainname des Airflow-Webservers.

Vorbereitung

  • Derzeit befindet sich die Upgrade-Umgebung in der Betaphase. Achten Sie darauf, dass Betafunktionen aktivieren rechts oben auf der Seite Umgebungen aktiviert ist.
  • Zum Upgrade ist die Rolle roles/editor oder roles/composer.admin erforderlich.
  • Halten Sie alle DAGs an und warten Sie, bis die laufenden Aufgaben abgeschlossen sind, bevor Sie ein Upgrade ausführen.
  • Sie können für die Cloud Composer-Version, für die Airflow-Version oder für beides gleichzeitig ein Upgrade ausführen.
  • Die Kombination aus Cloud Composer und Airflow, für die Sie ein Upgrade durchführen, muss eine veröffentlichte Version sein.
    • Informationen zu verfügbaren Upgrades finden Sie unter Verfügbare Upgrades aufrufen. Zum Abrufen der neuesten Features und Korrekturen ziehen Sie ein Upgrade auf die neueste Cloud Composer-Version in Betracht.
    • Eine Liste der PyPi-Pakete und -Anpassungen in einer unterstützten Version finden Sie in der Liste der Cloud Composer-Versionen.

      Bevor Sie das Upgrade durchführen, machen Sie sich mit den Unterschieden zwischen den aktuellen Versionen von Airflow und Cloud Composer vertraut. Inkompatible Änderungen können die ordnungsgemäße Ausführung der DAGs beeinträchtigen.

Beschränkungen

  • Ein Downgrade auf eine frühere Version von Cloud Composer oder Airflow ist nicht möglich.
  • Upgrades können nur auf die neueste Cloud Composer-Version innerhalb der gleichen Hauptversion ausgeführt werden, z. B. von composer-1.4.0-airflow-1.10.0 auf composer-1.5.0-airflow-1.10.0. Ein Upgrade von composer-1.4.0-airflow-1.10.0 auf composer-2.0.0-airflow-1.10.0 ist nicht zulässig, da sich die Hauptversion von Cloud Composer von 1 zu 2 ändert.
  • Die Image-Version, auf die Sie upgraden, muss die aktuelle Python-Version Ihrer Umgebung unterstützen.
  • Derzeit ist kein Image-Versionsupgrade für eine Umgebung möglich, die sich in einem Projekt mit aktivierten VPC Service Controls befindet.
  • Composer-Umgebungen, die keine private IP-Adresse verwenden, sollten GKE nicht auf Version 1.14 oder höher aktualisieren. Diese Versionen haben Swagger zugunsten von OpenAPI eingestellt. Eine künftige Cloud Composer-Version erstellt Cluster, die OpenAPI verwenden, und ermöglicht die Aktualisierung bestehender Umgebungen auf die GKE-Versionen 1.14 und höher.

Verfügbare Upgrades aufrufen

So lassen Sie eine Liste der Cloud Composer-Versionen anzeigen, auf die Sie ein Upgrade durchführen können:

Console

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

    Seite "Umgebungen" öffnen

  2. Klicken Sie unter Name auf den Namen der Umgebung.

  3. Klicken Sie im Tab Umgebung konfigurieren auf Upgrade für Image-Version ausführen.

  4. Klicken Sie auf das Drop-down-Menü Image-Version für Cloud Composer, um die verfügbaren Versionen aufzurufen.

gcloud

gcloud beta composer environments list-upgrades ENVIRONMENT_NAME \
    --location LOCATION 

Dabei gilt:

  • ENVIRONMENT_NAME ist der Name der Umgebung.
  • LOCATION ist die Compute Engine-Region, in der sich die Umgebung befindet.

Beispiel:

gcloud beta composer environments list-upgrades test-environment \
    --location us-central1
┌─────────────────────────────────────────────────────────────────────────────┐
│                              AVAILABLE UPGRADES                             │
├──────────────────────────────┬──────────────────┬───────────────────────────┤
│        IMAGE VERSION         │ COMPOSER DEFAULT │ SUPPORTED PYTHON VERSIONS │
├──────────────────────────────┼──────────────────┼───────────────────────────┤
│ composer-1.4.0-airflow-1.9.0 │ True             │ 2,3                       │
└──────────────────────────────┴──────────────────┴───────────────────────────┘

API

Zur Darstellung der verfügbaren Versionen mit der Cloud Composer REST API erstellen Sie eine imageVersions.list-API-Anfrage und geben das Projekt und den Standort im Format projects/{projectId}/locations/{locationId} an.

Beispiel:

GET https://composer.googleapis.com/v1/projects/test-project-id/locations/us-central1/imageVersions

{
  "imageVersions": [
    {
      "imageVersionId": "composer-1.4.2-airflow-1.10.0",
      "supportedPythonVersions": [
        "2",
        "3"
      ]
    },
    {
      "imageVersionId": "composer-1.4.2-airflow-1.9.0",
      "isDefault": true,
      "supportedPythonVersions": [
        "2",
        "3"
      ]
    }
  ]
} 

Upgrade der Cloud Composer-Version durchführen

So führen Sie ein Upgrade der Cloud Composer-Version durch, die in Ihrer Umgebung ausgeführt wird:

Console

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

    Seite "Umgebungen" öffnen

  2. Klicken Sie unter Name auf den Namen der Umgebung, die Sie ändern möchten.

  3. Klicken Sie im Tab Umgebung konfigurieren auf Upgrade für Image-Version ausführen. Vergewissern Sie sich, dass Betafunktionen aktiviert sind. Andernfalls ist diese Schaltfläche nicht sichtbar.

  4. Klicken Sie auf das Drop-down-Menü Image-Version für Cloud Composer und wählen Sie eine Version aus.

  5. Klicken Sie auf Senden.

gcloud

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION --image-version VERSION

Dabei gilt:

  • ENVIRONMENT_NAME ist der Name der Umgebung.
  • LOCATION ist die Compute Engine-Region, in der sich die Umgebung befindet.
  • VERSION ist die Cloud Composer-Version oder die Airflow-Version für die Umgebung im Format composer-a.b.c-airflow-x.y.z oder composer-a.b.c-airflow-x.y. Wenn Sie den Airflow-Patch nicht angeben, wird die höchste verfügbare Patchversion für die angegebene Haupt- und Nebenversion verwendet.

Beispiel:

gcloud beta composer environments update test-environment \
    --location us-central1 --image-version composer-latest-airflow-1.10.1 

API

Zum Ausführen eines Upgrades mit der Cloud Composer REST API erstellen Sie eine environments.patch-API-Anfrage. Geben Sie die Version im Format composer-a.b.c-airflow-x.y.z an.

Beispiel:

PATCH https://composer.googleapis.com/v1beta1/projects/test-project/locations/us-central1/environments/test-environment?updateMask=config.software_config.image_version

Der Anfragetext enthält imageVersion:

{
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-1.6.0-airflow-1.10.1"
    }
  }
}

Upgrade der Airflow-Version ausführen

Wenn in Ihrer Umgebung bereits die aktuelle Cloud Composer-Version ausgeführt wird, können Sie mit dem Cloud SDK nur die Airflow-Version aktualisieren, z. B. ein Upgrade von composer-1.6.1-airflow-1.9.0 auf composer-1.6.1-airflow-1.10.0.

gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION --airflow-version VERSION

Dabei gilt:

  • ENVIRONMENT_NAME ist der Name der Umgebung.
  • LOCATION ist die Compute Engine-Region, in der sich die Umgebung befindet.
  • VERSION ist die Airflow-Version für Ihre Umgebung im Format x.y.z oder x.y.

Beispiel:

gcloud beta composer environments update test-environment \
--location us-central1 --airflow-version=1.10.1