L’implementazione di AEM as a Cloud Service non riesce con KubernetesDeploymentTimeoutException nonostante un rollout integro
In questo articolo viene descritto come risolvere uno scenario in Adobe Experience Manager (AEM) as a Cloud Service in cui le distribuzioni di produzione non riescono con KubernetesDeploymentTimeoutException, anche se il rollout viene completato correttamente. Il problema è spesso correlato a una configurazione mancante nel livello di anteprima.
Descrizione description
Ambiente
Adobe Experience Manager (AEM) as a Cloud Service (tutte le versioni)
Problema/Sintomi
- La distribuzione di produzione tramite Cloud Manager non riesce durante il passaggio di distribuzione con
KubernetesDeploymentTimeoutException. - Il passaggio di distribuzione può essere eseguito per diverse ore prima di non riuscire.
- L’interfaccia utente di Cloud Manager segnala la distribuzione come ERRORE.
- Il rollout di produzione sottostante (ad esempio
aem-publish) raggiunge uno stato integro e completato, con tutte le repliche pronte, ben prima che si verifichi il timeout. - Nei registri delle applicazioni AEM non vengono osservati arresti anomali, problemi di memoria insufficiente o errori di arresto dopo che il rollout è diventato integro.
- L’applicazione continua a gestire il traffico normalmente mentre Cloud Manager rimane in stato di attesa.
- I pod di anteprima possono essere visualizzati al riavvio costante, con i registri del contenitore del dispatcher che mostrano errori di verifica dello stato (ad esempio, mancata connessione alla porta localhost 8080 o configurazione di reindirizzamento mancante).
Causa
Questo problema è in genere causato da contenuti di configurazione richiesti mancanti nel livello di anteprima. Anche se il livello Anteprima non viene utilizzato per il traffico, l’inizializzazione del dispatcher dipende dalla stessa configurazione del livello Pubblicazione. La configurazione mancante può causare errori di inizializzazione del dispatcher di anteprima, che bloccano la pipeline di distribuzione di produzione.
Risoluzione resolution
Per risolvere il problema, segui i passaggi seguenti:
-
Verifica che il rollout di produzione abbia raggiunto uno stato integro e completato utilizzando gli strumenti Kubernetes o Argo Rollout. Verificare che tutte le repliche previste siano pronte.
-
In Cloud Manager, controlla i dettagli di esecuzione della pipeline per individuare eventuali errori durante il passaggio di distribuzione. Nota se l’errore è un
KubernetesDeploymentTimeoutException. -
Assicurati che tutto il contenuto della configurazione di reindirizzamento richiesto sia pubblicato nel livello di anteprima. Ciò include qualsiasi configurazione o contenuto necessario per l’inizializzazione di Dispatcher, anche se il livello Anteprima non viene utilizzato per il traffico.
- Esamina il processo di distribuzione per verificare che la stessa configurazione di reindirizzamento e dispatcher utilizzata per la pubblicazione sia disponibile anche in Anteprima.
- Se utilizzi pacchetti di contenuti o gestione della configurazione, verifica che siano distribuiti sia sul livello di pubblicazione che su quello di anteprima.
-
Verificare lo stato dei pod di anteprima.
- Utilizza gli strumenti di Kubernetes, ad esempio
kubectl logs, per rivedere i registri dei contenitori dispatcher per i pod di anteprima. - Individuare gli errori di verifica dello stato o i riavvii ripetuti che potrebbero indicare una configurazione mancante.
- Utilizza gli strumenti di Kubernetes, ad esempio
-
Dopo aver pubblicato la configurazione richiesta nel livello di anteprima, esegui nuovamente la pipeline di distribuzione di produzione in Cloud Manager.
-
Verifica che la distribuzione sia stata completata correttamente e che tutti i pod, inclusi quelli di anteprima, siano integri.