Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette page fournit des informations de dépannage pour les problèmes que vous pouvez rencontrer lors de la mise à jour ou de la mise à niveau des environnements Cloud Composer.
Pour en savoir plus sur la création d'environnements, consultez la page Dépannage pour la création d'environnements.
Lorsque les environnements Cloud Composer sont mis à jour, la majorité des problèmes se produisent pour les raisons suivantes :
- Problèmes d'autorisation de compte de service.
- Problèmes de dépendance PyPI
- Taille de la base de données Airflow
Autorisations insuffisantes pour mettre à jour ou mettre à niveau un environnement
Si Cloud Composer ne peut pas mettre à jour ou mettre à niveau un environnement en raison d'autorisations insuffisantes, le message d'erreur suivant s'affiche :
ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission
Solution: Attribuez des rôles à votre compte et au compte de service. de votre environnement, comme décrit dans la section Contrôle des accès.
Le compte de service de l'environnement ne dispose pas des autorisations nécessaires
Lorsque vous créez un environnement Cloud Composer, vous spécifiez un service qui exécute les nœuds du cluster GKE de l'environnement. Si cette ne dispose pas des autorisations suffisantes pour effectuer l'opération demandée, Cloud Composer génère une erreur:
UPDATE operation on this environment failed 3 minutes ago with the
following error message:
Composer Backend timed out. Currently running tasks are [stage:
CP_COMPOSER_AGENT_RUNNING
description: "No agent response published."
response_timestamp {
seconds: 1618203503
nanos: 291000000
}
].
Solution : Attribuez des rôles à votre compte et au compte de service de votre environnement, comme décrit dans la section Contrôle des accès.
La taille de la base de données Airflow est trop importante pour effectuer l'opération
Une opération de mise à niveau Cloud Composer peut échouer car la taille de la base de données Airflow est trop volumineuse pour que les opérations de mise à niveau aboutissent.
Si la taille de la base de données Airflow est supérieure à 16 Go, Cloud Composer génère l'erreur suivante :
Airflow database uses more than 16 GB. Please clean the database before upgrading.
Solution : effectuez le nettoyage de la base de données Airflow, comme décrit dans la section Maintenance de la base de données Airflow.
Échec de la mise à niveau vers une nouvelle version de Cloud Composer en raison de conflits de packages PyPI
Lorsque vous mettez à niveau un environnement package PyPI personnalisé, vous pouvez rencontrer liées à des conflits de packages PyPI. Cela peut se produire, car la nouvelle image Cloud Composer contient des versions plus récentes des packages préinstallés qui entraînent un conflit de dépendance avec les packages PyPI que vous avez installés dans votre environnement.
Solution :
- Pour obtenir des informations détaillées sur les conflits de packages, exécutez une vérification de mise à niveau.
- Assouplissez les contraintes de version pour les packages PyPI personnalisés installés. Par exemple, au lieu de spécifier une version en tant que
==1.0.1
, spécifiez-la en tant que>=1.0.1
. - Pour en savoir plus sur la modification des exigences de version pour résoudre les conflits de dépendances, consultez la documentation de pip.
Il n'est pas possible de mettre à niveau un environnement vers une version toujours prise en charge.
Les environnements Cloud Composer ne peuvent être mis à niveau que vers plusieurs des dernières versions et versions précédentes.
Limites de version pour la création d'environnements et la mise à niveau sont différents. La version Cloud Composer que vous choisissez lorsque vous créez un environnement peut ne pas être disponible lors de la mise à niveau d'environnements existants.
Vous pouvez effectuer l'opération de mise à niveau à l'aide de Google Cloud CLI, de l'API ou Terraform. Dans la console Google Cloud, seules les dernières versions sont disponibles comme options de mise à niveau.
L'absence de connectivité au DNS peut entraîner des problèmes lors des mises à niveau ou des mises à jour.
De tels problèmes de connectivité peuvent entraîner des entrées de journal comme suit :
WARNING - Compute Engine Metadata server unavailable attempt 1 of 5. Reason: [Errno -3] Temporary failure in name resolution Error
Cela signifie généralement qu'il n'y a pas de route vers le DNS. Assurez-vous donc que le nom DNS metadata.google.internal peut être résolu en adresse IP à partir des réseaux de cluster, de pods et de services. Vérifier si l'accès privé à Google est activé dans le VPC (dans le projet hôte ou de service) où votre environnement est créé.
Plus d'informations :
Le processeur du déclencheur dépasse la limite de 1 vCPU
Cloud Composer 2 dans les versions 2.4.4 et ultérieures introduit une autre stratégie d'allocation des ressources de déclencheur pour améliorer le scaling des performances. Si vous rencontrez une erreur liée au processeur du déclencheur lors de l'exécution d'un environnement cela signifie que vos déclencheurs actuels configuré pour utiliser plus de 1 vCPU par déclencheur.
Solution :
- Ajuster l'allocation des ressources de déclencheur pour respecter la limite d'un processeur virtuel.
- Si vous prévoyez des problèmes avec les DAG utilisant des opérateurs différables, nous vous recommandons également d'augmenter le nombre de déclencheurs.
Inspecter les avertissements de migration ayant échoué
Lors de la mise à niveau d'Airflow vers une version ultérieure, il arrive que de nouvelles contraintes soient à la base de données Airflow. Si ces contraintes ne peuvent pas être appliquées, Airflow crée des tables pour stocker les lignes pour lesquelles les contraintes n'ont pas pu être appliquées. L'interface utilisateur d'Airflow affiche un message d'avertissement jusqu'à ce que les tables de données déplacées soient renommées ou supprimées.
Solution :
Vous pouvez utiliser les deux DAG suivants pour inspecter les données déplacées et renommer le tableaux.
Le DAG list_moved_tables_after_upgrade_dag
répertorie les lignes qui ont été déplacées
tous les tableaux où des contraintes n'ont pas pu être appliquées. Examinez les données et décidez si vous souhaitez les conserver. Pour la conserver, vous devez corriger
manuellement les données dans
dans la base de données Airflow. Par exemple, en ajoutant les lignes avec les bonnes données.
Si vous n'avez pas besoin des données ou si vous avez déjà résolu le problème, vous pouvez exécuter le DAG rename_moved_tables_after_upgrade_dag
. Ce DAG renomme les tables déplacées.
Les tableaux et leurs données ne sont pas supprimés. Vous pouvez donc consulter les données
ultérieurement.
Étape suivante
- Mettre à jour des environnements
- Mise à niveau des environnements
- Résoudre les problèmes de création d'environnement