Mise à niveau des environnements

Cette page explique comment mettre à niveau la version Airflow ou la version Cloud Composer exécutée par votre environnement.

Pendant la mise à niveau, Cloud Composer effectue les opérations suivantes :

  • Redéploiement des pods de planificateur et de nœud de calcul Airflow dans un nouvel espace de noms Kubernetes. Une fois la mise à niveau terminée, Airflow utilisera une nouvelle base de données Cloud SQL. Le nom de la base de données correspond à l'espace de noms Kubernetes. L'historique d'exécution du DAG est conservé.

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

Ces modifications affectent la manière dont vous accédez aux pods et dont vous vous connectez à la base de données Cloud SQL.

  • Pour accéder aux pods du cluster GKE après la mise à niveau, vous devez utiliser des commandes kubectl compatibles avec les espaces de noms. Par exemple, pour répertorier les pods du cluster, utilisez kubectl get pods -A. Pour exécuter une commande sur un pod, utilisez kubectl exec -n <NAMESPACE> ....
  • Si vous utilisez des charges de travail et des connexions Airflow faisant directement référence au proxy SQL, indiquez un nom d'hôte qui comporte l'espace de noms par défaut : airflow-sqlproxy-service.default, et non pas airflow-sqlproxy-service.

La mise à niveau de Cloud Composer ne modifie pas la manière dont vous vous connectez aux ressources de votre environnement, comme les adresses IP de VM de nœuds Google Kubernetes Engine, l'adresse IP de l'instance Cloud SQL, le bucket Cloud Storage ou le nom de domaine du serveur Web Airflow.

Avant de commencer

  • La mise à niveau des environnements est actuellement en aperçu. Utilisez cette fonctionnalité avec prudence dans les environnements de production.

  • Vous devez disposer d'un rôle pouvant déclencher des opérations de mise à niveau de l'environnement. En outre, le compte de service de l'environnement doit disposer d'un rôle comportant des autorisations suffisantes pour effectuer des opérations de mise à niveau. Pour en savoir plus, consultez la page sur le contrôle des accès.

  • Suspendez tous les DAG et attendez la fin des tâches en cours avant de procéder à la mise à niveau.

  • Vous pouvez mettre à niveau Cloud Composer, la version Airflow ou les deux en même temps.

  • La combinaison Cloud Composer-Airflow que vous mettez à niveau doit être une version publiée.

    • Pour connaître les mises à niveau disponibles, consultez la page Afficher les mises à niveau disponibles. Pour obtenir les dernières fonctionnalités et les derniers correctifs, envisagez de passer à la version la plus récente de Cloud Composer.
    • Pour obtenir la liste des packages PyPI et des personnalisations dans une version compatible, consultez la liste des versions de Cloud Composer.

      Avant de procéder à la mise à niveau, assurez-vous de connaître les différences entre les versions actuelles Airflow et Cloud Composer et les versions vers lesquelles vous effectuez la mise à niveau. Des modifications incompatibles peuvent entraîner le dysfonctionnement des DAG.

Restrictions

  • Vous ne pouvez pas revenir à une version antérieure de Cloud Composer ou Airflow.
  • Cloud Composer permet de transférer manuellement les DAG et la configuration de vos environnements Airflow 1.10* vers les environnements Airflow 2. Il n'est pas possible d'effectuer des mises à niveau sur place vers Airflow 2 pour les environnements équipés d'Airflow 1.10*.
  • Vous ne pouvez effectuer une mise à niveau que vers la dernière version de Cloud Composer au sein de la même version majeure, par exemple de composer-1.12.4-airflow-1.10.10 vers composer-1.13.0-airflow-1.10.10. La mise à niveau de composer-1.4.0-airflow-1.10.0 vers composer-2.0.0-airflow-1.10.0 n'est pas autorisée, car la version majeure de Cloud Composer passe de 1 à 2.
  • La version d'image que vous mettez à niveau doit être compatible avec la version Python actuelle de votre environnement.
  • Vous ne pouvez pas mettre à niveau votre environnement si la base de données Airflow contient plus de 16 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 16 Go. Dans ce cas, répétez la maintenance de la base de données pour réduire sa taille.

Messages d'obsolescence

Cloud Composer envoie des avertissements lorsque votre image d'environnement arrive à expiration. Vous pouvez utiliser ces avertissements pour toujours garder vos environnements dans la période d'assistance complète.

Message d&#39;abandon

Cloud Composer garde la version de l'image Cloud Composer basée sur votre environnement. Lorsque l'image approche de la date de fin d'assistance, un avertissement s'affiche dans la liste des environnements et sur la page Détails de l'environnement.

Pour vérifier si votre image d'environnement est à jour, procédez comme suit:

  1. Ouvrez la page Environnements dans Google Cloud Console.

    Ouvrir la page "Environnements"

  2. Cliquez sur le nom de l'environnement pour en afficher les détails.

  3. Sous Configuration de l'environnement, recherchez le champ Version de l'image.

  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.

    • Cette version ne sera plus compatible avec... L'image de votre environnement approche de la fin de la période d'assistance complète.

    • Cette version n'est plus compatible à partir du... Votre environnement a dépassé la période d'assistance complète.

Afficher les mises à niveau disponibles

Pour afficher les versions Cloud Composer que vous pouvez mettre à niveau, procédez comme suit :

Console

  1. Ouvrez la page Environnements dans Google Cloud.

    Ouvrir la page Environnements

  2. Cliquez sur le Nom de l'environnement.

  3. Dans l'onglet Configuration de l'environnement, cliquez sur Mettre à niveau la version d'image.

  4. Pour les versions disponibles, cliquez sur le menu déroulant Version de l'image de Cloud Composer.

gcloud

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

Où :

  • ENVIRONMENT_NAME est le nom de l'environnement.
  • LOCATION est la région Compute Engine dans laquelle se trouve l'environnement.

Exemple :

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

Pour afficher les versions disponibles à l'aide de l'API REST Cloud Composer, effectuez une requête API imageVersions.list, et indiquez le projet et l'emplacement au format projects/{projectId}/locations/{locationId}.

Exemple :

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"
      ]
    }
  ]
} 

Rechercher les conflits de package 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 image Cloud Composer.

Une vérification réussie signifie qu'il n'existe aucun conflit de dépendance entre le package PyPI entre la version actuelle et la version spécifiée. Notez qu'une opération de mise à niveau peut échouer pour d'autres raisons.

Console

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

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

    Accéder à la page "Environnements"

  2. Sélectionnez votre environnement.

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

  4. Dans la boîte de dialogue Mise à niveau de la version d'environnement, dans la liste déroulante Nouvelle version, sélectionnez la version de Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau.

  5. Dans la section Compatibilité des packages PyPI, cliquez sur Vérifier les conflits.

  6. Attendez la fin de la vérification. En cas de conflits de dépendance des packages 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 d'image Cloud Composer que vous vous souhaitez effectuer la mise à niveau.

gcloud beta composer environments check-upgrade ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version COMPOSER_IMAGE

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région Compute Engine dans laquelle se trouve l'environnement.
  • COMPOSER_IMAGE par la version de l'image Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau.

Exemple :

gcloud beta composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-1.16.6-airflow-1.10.15

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-1.16.6-airflow-
1.10.15. Operation [projects/example-project/locations/us-central1/operations
/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1beta1.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 effectuer 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

Envoyez une requête API environments.checkUpgrade.

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

{
  "imageVersion": "COMPOSER_IMAGE"
}

Remplacez COMPOSER_IMAGE par la version de l'image Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau.

Mettre à niveau la version Cloud Composer

Pour mettre à niveau la version Cloud Composer que votre environnement exécute, procédez comme suit :

Console

  1. Ouvrez la page Environnements dans Google Cloud.

    Ouvrir la page Environnements

  2. Cliquez sur le Nom de l'environnement à modifier.

  3. Dans l'onglet Configuration de l'environnement, cliquez sur Mettre à niveau la version d'image.

  4. Cliquez sur le menu déroulant Version de l'image de Cloud Composer et sélectionnez une version.

  5. Cliquez sur Envoyer.

gcloud

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

Où :

  • ENVIRONMENT_NAME est le nom de l'environnement.
  • LOCATION est la région Compute Engine dans laquelle se trouve l'environnement.
  • VERSION est la version de Cloud Composer et la version d'Airflow à utiliser pour votre environnement, au format composer-a.b.c-airflow-x.y.z ou composer-a.b.c-airflow-x.y. Si vous ne spécifiez pas le correctif Airflow, c'est la version de correctif la plus élevée disponible pour la version majeure et mineure donnée qui est utilisée.

Exemple :

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

API

Pour procéder à la mise à niveau à l'aide de l'API REST Cloud Composer, effectuez une requête API environments.patch. Indiquez la version au format composer-a.b.c-airflow-x.y.z.

Exemple :

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

Le corps de la requête inclut le paramètre imageVersion :

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

Mettre à niveau la version d'Airflow

Lorsque votre environnement utilise la dernière version de Cloud Composer, vous pouvez utiliser le SDK Cloud pour ne mettre à niveau que la version d'Airflow, par exemple pour passer de composer-1.6.1-airflow-1.9.0 à composer-1.6.1-airflow-1.10.0.

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

où :

  • ENVIRONMENT_NAME est le nom de l'environnement.
  • LOCATION est la région Compute Engine dans laquelle se trouve l'environnement.
  • VERSION est la version d'Airflow à utiliser pour votre environnement, au format x.y.z ou x.y.

Exemple :

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