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 MySQL. 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 version bêta. Utilisez cette fonctionnalité avec prudence dans les environnements de production.
  • Le rôle roles/editor ou roles/composer.admin est requis pour procéder à la mise à niveau.
  • 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.
  • 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.4.0-airflow-1.10.0 vers composer-1.5.0-airflow-1.10.0. 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.
  • Actuellement, vous ne pouvez pas effectuer de mise à niveau d'une version d'image sur un environnement qui se trouve dans un projet où VPC Service Controls est activé.

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

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