Le déploiement d’AEM as a Cloud Service échoue avec KubernetesDeploymentTimeoutException malgré un déploiement sain
Cet article décrit comment résoudre un scénario dans Adobe Experience Manager (AEM) as a Cloud Service où les déploiements d’exploitation échouent avec une KubernetesDeploymentTimeoutException, même si le déploiement s’est terminé avec succès. Le problème est souvent lié à une configuration manquante dans le niveau Aperçu.
Description description
Environnement
Adobe Experience Manager (AEM) as a Cloud Service (toutes les versions)
Problème/Symptômes
- Le déploiement en production via Cloud Manager échoue lors de l’étape de déploiement avec une
KubernetesDeploymentTimeoutException. - L’étape de déploiement peut durer plusieurs heures avant d’échouer.
- L’interface utilisateur de Cloud Manager signale le déploiement comme ERREUR.
- Le déploiement en production sous-jacent (tel que
aem-publish) atteint un état sain et terminé, avec toutes les répliques prêtes, bien avant la temporisation. - Aucune erreur de blocage, de mémoire insuffisante ou d’arrêt n’est observée dans les journaux des applications AEM une fois que le déploiement est sain.
- L’application continue à diffuser normalement le trafic pendant que Cloud Manager reste en attente.
- Les capsules d’aperçu peuvent redémarrer en permanence, avec des journaux de conteneur du Dispatcher affichant les échecs de vérification de l’intégrité (par exemple, échec de la connexion au port 8080 de l’hôte local ou configuration de redirection manquante).
Cause
Ce problème est généralement dû au fait qu’il manque le contenu de configuration requis au niveau Aperçu. Même si le niveau de prévisualisation n’est pas utilisé pour la diffusion du trafic, son initialisation du Dispatcher dépend de la même configuration que le niveau de publication. Une configuration manquante peut entraîner des échecs d’initialisation du Dispatcher de prévisualisation, ce qui bloque le pipeline de déploiement en production.
Résolution resolution
Suivez les étapes ci-dessous pour résoudre le problème :
-
Vérifiez que le déploiement en production a atteint un état sain et terminé à l’aide de votre outil de déploiement Kubernetes ou Argo. Vérifiez que toutes les répliques attendues sont prêtes.
-
Dans Cloud Manager, passez en revue les détails d’exécution du pipeline pour détecter les erreurs lors de l’étape de déploiement. Notez si l’erreur est une
KubernetesDeploymentTimeoutException. -
Assurez-vous que tout le contenu de configuration de redirection requis est publié au niveau Aperçu. Cela inclut toute configuration ou tout contenu requis pour l’initialisation du Dispatcher, même si le niveau de prévisualisation n’est pas utilisé pour la diffusion du trafic.
- Vérifiez votre processus de déploiement pour vous assurer que la même configuration de redirection et de Dispatcher utilisée pour la publication est également disponible sur la Prévisualisation.
- Si vous utilisez des packages de contenu ou la gestion de configuration, vérifiez qu’ils sont déployés sur les niveaux Publication et Aperçu.
-
Vérifiez l’intégrité des capsules de prévisualisation.
- Utilisez vos outils Kubernetes, tels que
kubectl logs, pour consulter les journaux de conteneur du Dispatcher pour les capsules de prévisualisation. - Recherchez les échecs de vérification d’intégrité ou les redémarrages répétés, qui peuvent indiquer une configuration manquante.
- Utilisez vos outils Kubernetes, tels que
-
Après avoir publié la configuration requise dans le niveau Aperçu, réexécutez le pipeline de déploiement en production dans Cloud Manager.
-
Vérifiez que le déploiement s’est terminé correctement et que tous les pods, y compris les pods de prévisualisation, sont en bon état.