Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (1re génération héritée)
Cette page explique comment mettre à jour un environnement.
À propos des opérations de mise à jour
Lorsque vous modifiez les paramètres de votre environnement, par exemple en spécifiant de nouveaux paramètres d'évolutivité et de performances, ou en installant des packages PyPI personnalisés, votre environnement est mis à jour.
Une fois cette opération terminée, les modifications sont disponibles dans votre environnement.
Pour un seul environnement Managed Airflow, vous ne pouvez démarrer qu'une seule opération de mise à jour à la fois. Vous devez attendre la fin d'une opération de mise à jour avant de démarrer une autre opération d'environnement.
Impact des mises à jour sur les tâches Airflow en cours d'exécution
Lorsque vous exécutez une opération de mise à jour, les programmeurs et les nœuds de calcul Airflow de votre environnement peuvent nécessiter un redémarrage. Dans ce cas, toutes les tâches en cours d'exécution sont arrêtées. Une fois l'opération de mise à jour terminée, Airflow planifie une nouvelle tentative pour ces tâches, en fonction de la façon dont vous configurez les nouvelles tentatives pour vos DAG.
Les modifications suivantes entraînent l'arrêt des tâches Airflow :
- Mettre à niveau votre environnement vers une nouvelle version.
- Ajouter, modifier ou supprimer des packages PyPI personnalisés.
- Modifier les variables d'environnement Managed Airflow.
- Ajouter ou supprimer des remplacements d'options de configuration Airflow, ou modifier leurs valeurs.
- Modifier l'allocation de processeur, de mémoire ou de stockage des nœuds de calcul Airflow.
Réduire le nombre maximal de nœuds de calcul Airflow, si la nouvelle valeur est inférieure au nombre de nœuds de calcul actuellement en cours d'exécution. Par exemple, si un environnement exécute actuellement trois nœuds de calcul et que le nombre maximal est réduit à deux.
Les modifications suivantes n'entraînent pas l'arrêt des tâches Airflow :
- Créer, modifier ou supprimer un DAG (pas une opération de mise à jour).
- Suspendre ou réactiver des DAG (pas une opération de mise à jour).
- Modifier les variables Airflow (pas une opération de mise à jour).
- Modifier les connexions Airflow (pas une opération de mise à jour).
- Activer ou désactiver l'intégration de la traçabilité des données Knowledge Catalog.
- Modifier la taille de l'environnement.
- Modifier le nombre de programmeurs.
- Modifier l'allocation de processeur, de mémoire ou de stockage des programmeurs Airflow.
- Modifier le nombre de déclencheurs.
- Modifier l'allocation de processeur, de mémoire ou de stockage des déclencheurs Airflow.
- Modifier l'allocation de processeur, de mémoire ou de stockage du serveur Web Airflow.
- Augmenter ou diminuer le nombre minimal de nœuds de calcul.
- Réduire le nombre maximal de nœuds de calcul Airflow. Par exemple, si un environnement exécute actuellement deux nœuds de calcul et que le nombre maximal est réduit à trois.
- Modifier les intervalles de maintenance.
- Modifier les paramètres des instantanés planifiés.
- Modifier les libellés de l'environnement.
Mettre à jour avec Terraform
Exécutez terraform plan avant terraform apply pour voir si Terraform crée un environnement au lieu de le mettre à jour.
Avant de commencer
Vérifiez que votre compte, le compte de service de votre environnement et le compte de l'agent de service Managed Airflow de votre projet disposent des autorisations requises :
Votre compte doit disposer d'un rôle qui peut déclencher des opérations de mise à jour d'environnement.
Le compte de service de votre environnement doit disposer d'un rôle qui dispose d'autorisations suffisantes pour effectuer des opérations de mise à jour.
La commande
gcloud composer environments updateprend fin une fois l'opération terminée. Vous pouvez utiliser l'option--asyncpour éviter d'attendre la fin de l'opération.
Mettre à jour des environnements
Pour en savoir plus sur la mise à jour de votre environnement, consultez d'autres pages de documentation sur des opérations de mise à jour spécifiques. Exemple :
- Remplacer les options de configuration Airflow
- Définir des variables d'environnement
- Installer des dépendances Python
Afficher les détails de l'environnement
Console
Dans la Google Cloud console, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
gcloud
Exécutez la commande gcloud suivante :
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.LOCATIONpar la région dans laquelle se trouve l'environnement.
API
Rédigez une requête API environments.get.
Exemple :
GET https://composer.googleapis.com/v1/projects/example-project/
locations/us-central1/environments/example-environment
Terraform
Exécutez la commande terraform state show pour la ressource de votre environnement.
Le nom de la ressource Terraform de votre environnement peut être différent du nom de votre environnement.
terraform state show google_composer_environment.RESOURCE_NAME
Remplacez :
RESOURCE_NAMEpar le nom de la ressource de votre environnement.
Restaurer les modifications de mise à jour
Dans certains cas rares, une opération de mise à jour peut être interrompue (par exemple, en raison d'un délai avant expiration) et les modifications demandées peuvent ne pas être restaurées dans tous les composants de l'environnement (tels que le serveur Web Airflow).
Par exemple, une opération de mise à jour peut installer ou supprimer des modules PyPI supplémentaires, redéfinir ou définir une nouvelle variable d'environnement Airflow ou Managed Airflow, ou modifier certains paramètres liés à Airflow.
Une telle situation peut se produire si une opération de mise à jour est déclenchée lorsque d'autres opérations sont en cours, par exemple l'autoscaling du cluster Managed Airflow ou une opération de maintenance.
Dans ce cas, il est recommandé de répéter l'opération.
Durée des opérations de mise à jour ou de mise à niveau
La durée des opérations de mise à jour et de mise à niveau est affectée par les facteurs suivants :
La plupart des opérations de mise à jour ou de mise à niveau nécessitent le redémarrage de composants Airflow tels que les programmeurs, les nœuds de calcul et les serveurs Web Airflow. Une fois un composant redémarré, il doit être initialisé. Lors de l'initialisation, les programmeurs et les nœuds de calcul Airflow téléchargent le contenu des dossiers
/dagset/pluginsà partir du bucket de l'environnement. Le processus de synchronisation des fichiers avec les programmeurs et les nœuds de calcul Airflow n'est pas instantané et dépend de la taille totale et du nombre de tous les objets de ces dossiers.Nous vous recommandons de ne conserver que les fichiers DAG et de plug-in dans les dossiers
/dagset/plugins(respectivement) et de supprimer tous les autres fichiers. Un volume de données trop important dans les dossiers/dagset/pluginspeut ralentir l'initialisation des composants Airflow et, dans certains cas, la rendre impossible.Nous vous recommandons de conserver moins de 30 Mo de données dans les dossiers
/dagset/plugins, et de ne surtout pas dépasser 100 Mo de données. Pour en savoir plus, consultez Gérer un grand nombre de DAG et de plug-ins.La taille de la base de données Airflow peut augmenter considérablement la durée des opérations de mise à niveau. Nous vous recommandons de maintenir la taille de la base de données Airflow de votre environnement.
Mettre à niveau le type de machine pour les nœuds GKE
Vous pouvez mettre à niveau manuellement le type de machine pour le cluster GKE de votre environnement
. Pour ce faire, supprimez le default-pool existant et
créez-en un default-pool avec le type de machine souhaité.
Nous vous recommandons de spécifier un type de machine adapté au type de calcul qui se produit dans votre environnement Managed Airflow lorsque vous créez un environnement.
Si vous exécutez des tâches qui effectuent des calculs gourmands en ressources, vous pourriez vouloir utiliser les opérateurs GKE.
Après une mise à niveau, le type de machine précédent est toujours indiqué dans les détails de votre environnement. Par exemple, la page d'informations de l'environnement n'indique pas le nouveau type de machine.
Console
Pour mettre à niveau le type de machine :
Dans la Google Cloud console, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Obtenez des informations sur le pool de nœuds par défaut :
Accédez à l'onglet Configuration de l'environnement.
Cliquez sur le lien Afficher les détails du cluster.
Sur la page Clusters de la section Nœuds, cliquez sur default-pool.
Notez toutes les informations concernant le pool default-pool sur la page "Détails du pool de nœuds". Vous utiliserez ces informations afin de créer un nouveau pool de nœuds par défaut pour votre environnement.
Pour supprimer le pool default-pool :
Sur la page Détails du pool de nœuds, cliquez sur la flèche de retour pour revenir à la page Clusters de votre environnement.
Dans la section Pools de nœuds, cliquez sur l'icône de corbeille pour le pool default-pool. Cliquez ensuite sur Supprimer pour confirmer l'opération.
Pour créer le nouveau pool default-pool , procédez comme suit :
Sur la page Clusters, cliquez sur Ajouter un pool de nœuds.
Dans le champ "Nom", saisissez
default-pool. Vous devez utiliser le nomdefault-poolpour que les workflows de votre environnement puissent s'exécuter dans ce pool.Saisissez les paramètres "Taille" et "Nœuds".
(Pour les comptes de service Compute Engine par défaut uniquement) Sous "Niveaux d'accès", sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud.
Cliquez sur Enregistrer.
Si vous remarquez que les charges de travail sont réparties de manière inégale, ramenez le déploiement airflow-worker à zéro et effectuez à nouveau un scaling à la hausse.