Mettre à niveau des environnements

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Cette page explique comment mettre à niveau votre environnement vers une nouvelle version d'Airflow.

À propos des opérations de mise à niveau

Dans Cloud Composer 3, vous ne gérez pas la version Cloud Composer de votre environnement:

  • Cloud Composer met automatiquement à niveau les composants d'infrastructure de votre environnement. Ces composants sont liés aux fonctionnalités de Cloud Composer et ne modifient pas le fonctionnement d'Airflow ni l'exécution de vos DAG Airflow.
  • Cloud Composer ne met pas automatiquement à niveau la version et le build d'Airflow, les composants Airflow ni les composants étroitement liés aux charges de travail Airflow. Ils ne sont pas modifiés lorsque les composants de l'infrastructure sont mis à niveau automatiquement.
  • Vous pouvez mettre à niveau manuellement vers une nouvelle version ou version de compilation d'Airflow.

Par exemple, vous pouvez utiliser la même version et la même version d'Airflow pendant plusieurs mois, sans effectuer de mises à niveau. Votre environnement continuera de recevoir les dernières mises à jour, corrections et améliorations de Cloud Composer pour les composants d'infrastructure de l'environnement. Lorsque vous décidez ultérieurement de passer à une nouvelle version ou à une nouvelle compilation d'Airflow, vous mettez à niveau la version d'Airflow dans votre environnement.

À propos de la mise à niveau de la version d'Airflow

Votre environnement modifie la version ou le build d'Airflow comme suit:

  • Vous contrôlez la version (et la compilation) d'Airflow de votre environnement. Vous pouvez effectuer l'opération de mise à niveau de la version d'Airflow lorsque vous choisissez de passer à une autre version d'Airflow dans votre environnement. Par exemple, cela peut se produire si la version et le build actuels d'Airflow ne sont plus compatibles.

  • Cloud Composer redéploye les composants Airflow de votre environnement à l'aide de la version et du build Airflow spécifiés.

  • Cloud Composer applique les modifications de configuration Airflow, telles que les packages PyPI personnalisés ou les remplacements d'options de configuration Airflow, si votre environnement les possédait avant la mise à niveau.

  • Cloud Composer met à jour la connexion Airflow airflow_db pour qu'elle pointe vers la nouvelle base de données Cloud SQL.

Modifier la version d'Airflow ne modifie pas la manière dont vous vous connectez aux ressources de votre environnement, comme l'URL du bucket de votre environnement ou le serveur Web Airflow.

À propos des opérations de migration d'infrastructure automatiques

Cloud Composer effectue régulièrement des opérations de mise à niveau automatique de l'infrastructure:

  • Les opérations de mise à niveau automatique de l'infrastructure s'exécutent régulièrement pendant les intervalles de maintenance spécifiés pour l'environnement.

  • Vous ne pouvez pas désactiver les mises à niveau automatiques de l'infrastructure dans Cloud Composer 3. Vous pouvez contrôler les périodes pendant lesquelles les mises à niveau automatiques peuvent s'exécuter en spécifiant des intervalles de maintenance personnalisés pour votre environnement.

  • Cette opération est visible dans la console Google Cloud et les journaux de l'environnement, comme toute autre opération de longue durée. Pendant l'exécution de l'opération, vous ne pouvez pas démarrer d'autres opérations au niveau de l'environnement (mais vous pouvez toujours exécuter des DAG Airflow).

  • Dans certains cas, les mises à niveau automatiques de l'infrastructure peuvent redémarrer les composants Airflow. Lors de ces redémarrages, les nœuds de calcul Airflow sont arrêtés de manière concertée avec un délai de grâce de 24 heures. Si des tâches prennent plus de 24 heures à s'exécuter, envisagez d'utiliser des opérateurs différables. Une mise à niveau peut entraîner une courte période d'indisponibilité des composants d'infrastructure de l'environnement, tels que la surveillance de l'environnement.

Limites des opérations de mise à niveau

Les opérations de mise à niveau sont soumises aux limites suivantes:

  • Vous ne pouvez pas revenir à une version ou à un build antérieurs d'Airflow.

  • Vous ne pouvez pas mettre à niveau votre environnement si la base de données Airflow contient plus de 20 Go de données. Lors d'une mise à niveau, un avertissement s'affiche si la taille de la base de données Airflow dépasse 20 Go. Dans ce cas, effectuez la maintenance de la base de données pour réduire la taille.

  • Si vous utilisez le mécanisme XCom pour transférer des fichiers, assurez-vous de l'utiliser conformément aux consignes d'Airflow. Le transfert de fichiers volumineux ou d'un grand nombre de fichiers à l'aide de XCom a un impact sur les performances de la base de données Airflow et peut entraîner des échecs lors du chargement d'instantanés ou de la mise à niveau de votre environnement. Pensez à utiliser des solutions alternatives telles que Cloud Storage pour transférer de grands volumes de données.

Avant de commencer

  • Nous vous recommandons de créer un nouvel instantané de l'environnement afin de pouvoir le recréer si nécessaire.

  • Votre compte doit disposer d'un rôle permettant de déclencher des opérations de mise à niveau d'environnement. De plus, le compte de service de l'environnement doit disposer d'un rôle doté d'autorisations suffisantes pour effectuer des opérations de mise à niveau. Pour en savoir plus, consultez la section Contrôle des accès.

Vérifier que votre environnement est à jour

Cloud Composer affiche des avertissements lorsque le build Airflow de votre environnement approche de la date de fin de prise en charge. Vous pouvez utiliser ces avertissements pour que votre environnement reste toujours compatible.

Un message d'abandon s'affiche sur la page "Détails de l'environnement".
Figure 1. Un message d'abandon s'affiche sur la page des détails de l'environnement.

Cloud Composer effectue le suivi de la version et du build Airflow sur lesquels repose votre environnement. Lorsque l'image approche de la date de fin de prise en charge, un avertissement apparaît dans la liste des environnements et sur la page Détails de l'environnement.

Pour vérifier si votre environnement est à jour:

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans le champ Version de l'image, l'un des messages suivants s'affiche :

    • Dernière version disponible Votre image d'environnement est entièrement compatible.

    • Nouvelle version disponible Votre image d'environnement est entièrement compatible et vous pouvez la mettre à niveau vers une version ultérieure.

    • La prise en charge de cette version de l'image prendra fin dans… Votre image d'environnement approche de la fin de la période de prise en charge pcomplète.

    • Cette version n'est plus compatible depuis le… Votre environnement a dépassé la période de prise en charge complète.

gcloud

Cette fonctionnalité n'est pas disponible via la Google Cloud CLI. Vous pouvez plutôt afficher les suggestions de mises à niveau, qui indiquent les nouvelles versions disponibles.

API

Cette fonctionnalité n'est pas disponible via l'API. Vous pouvez plutôt afficher les suggestions de mises à niveau, qui indiquent les nouvelles versions disponibles.

Afficher les suggestions de mise à niveau

Cloud Composer fournit une liste des builds Airflow vers lesquels vous pouvez mettre à niveau votre environnement.

Pour afficher les versions Cloud Composer suggérées pour une mise à niveau:

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement, puis cliquez sur Mettre à niveau la version d'image.

  4. Pour afficher la liste des versions suggérées, cliquez sur le menu déroulant Version de l'image de Cloud Composer.

gcloud

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.

Exemple :

gcloud composer environments list-upgrades example-environment \
  --location us-central1

API

Vous pouvez consulter les versions disponibles pour un établissement. Pour ce faire, créez une requête API imageVersions.list.

Exemple :

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

Vérifier les conflits de packages PyPI avant la mise à niveau

Vous pouvez vérifier si les packages PyPI installés dans votre environnement présentent des conflits avec les packages préinstallés dans la nouvelle version ou version d'Airflow.

Une vérification réussie signifie qu'il n'y a pas de conflits de dépendance des packages PyPI entre la version actuelle et la version spécifiée. Toutefois, une opération de mise à niveau peut échouer pour d'autres raisons.

Console

Pour exécuter une vérification des mises à niveau de votre environnement, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement, recherchez l'entrée Version de l'image, puis cliquez sur Mettre à niveau.

  4. Dans la boîte de dialogue Mise à niveau des versions d'environnement, dans la liste déroulante Nouvelle version, sélectionnez une version ou un build Airflow vers lesquels vous souhaitez effectuer la mise à niveau.

  5. Dans la section Compatibilité des packages PyPI, cliquez sur Rechercher des conflits.

  6. Attendez la fin de la vérification. En cas de conflits de dépendance du package PyPI, les messages d'erreur affichés contiennent des détails sur les packages en conflit et les versions de package.

gcloud

Pour exécuter une vérification de la mise à niveau de votre environnement, exécutez la commande environments check-upgrade avec la version ou la version de compilation d'Airflow vers laquelle vous souhaitez effectuer la mise à niveau.

gcloud composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • VERSION avec la version et la version de compilation d'Airflow vers laquelle vous souhaitez effectuer la mise à niveau, au format airflow-x.y.z-build.t. Vous pouvez également utiliser tous les alias de version.

Exemple :

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --airflow-version airflow-2.10.2-build.11

Exemple de résultat :

Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-3-airflow-2.10.2-build.11. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: https://console.cloud.google.com/cloud-build/builds/79738aa7-...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at https://console.cloud.google.com/
cloud-build/builds/79738aa7-...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.

Vous pouvez également exécuter une vérification de mise à niveau de manière asynchrone. Utilisez l'argument --async pour effectuer un appel asynchrone, puis vérifiez le résultat à l'aide de la commande gcloud composer operations describe.

API

Rédigez une requête d'API environments.checkUpgrade.

Spécifiez la version de l'image dans le champ imageVersion :

{
  "imageVersion": "VERSION"
}

Remplacez VERSION par la nouvelle version vers laquelle vous souhaitez effectuer la mise à niveau, au format composer-3-airflow-x.y.z-build.t.

Mettre à niveau votre environnement

Pour mettre à niveau votre environnement vers une nouvelle version ou version d'Airflow:

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Recherchez l'élément Version de l'image, puis cliquez sur Mettre à niveau.

  5. Dans le menu déroulant Version de l'image, sélectionnez la version ou le build d'Airflow vers lesquels vous souhaitez effectuer la mise à niveau.

  6. Cliquez sur Mettre à jour.

gcloud

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • VERSION avec la version et la version de compilation d'Airflow vers laquelle vous souhaitez effectuer la mise à niveau, au format airflow-x.y.z-build.t. Vous pouvez également utiliser tous les alias de version.

Exemple :

gcloud composer environments update
  example-environment \
  --location us-central1 \
  --airflow-version airflow-2.10.2-build.11

API

  1. Rédigez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.softwareConfig.imageVersion.

    2. Dans le corps de la requête, dans le champ imageVersion, spécifiez la nouvelle version à laquelle vous souhaitez passer.

Exemple :

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-3-airflow-2.10.2-build.11"
      }
    }
  }

Terraform

Le champ image_version du bloc config.software_config contrôle la version et la compilation d'Airflow de votre environnement. Dans ce champ, spécifiez une nouvelle version et une nouvelle version d'Airflow.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement. la nouvelle version et version de compilation d'Airflow vers laquelle vous souhaitez effectuer la mise à niveau, au format airflow-x.y.z-build.t. Vous pouvez également utiliser tous les alias de version.

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "airflow-2.10.2-build.11"
    }
  }
}

Étape suivante