Skip to main content
Une mise à niveau remplace le tag de l’image. La nouvelle version migre la base de données au démarrage, et ces migrations doivent s’exécuter une seule fois, depuis un seul pod, alors qu’aucun pod plus ancien n’est en cours d’exécution. Sur Kubernetes, cela exclut une simple mise à jour progressive (rolling update) d’un StatefulSet mis à l’échelle.
Effectuez une sauvegarde cohérente avant chaque mise à niveau, avec Ayakaleaf Pro arrêté. Consultez les notes de version pour connaître les étapes propres à la version vers laquelle vous effectuez la mise à niveau.
Avant de commencer, sur chaque nœud qui exécute Ayakaleaf Pro, récupérez avec sudo docker pull toute image TeX Live listée par la nouvelle version ou par votre nouvelle configuration.
1

Arrêter Ayakaleaf Pro

2

Sauvegarder

MongoDB, depuis n’importe quel membre :
Le volume de données, via un pod éphémère qui le monte (il est planifié sur le nœud du volume) :
Faites de même pour le volume de git-bridge (data-git-bridge-0), et conservez une copie du Secret overleaf-secrets. Si votre stockage prend en charge les VolumeSnapshots, un instantané des volumes produit le même résultat.
3

Changer la version et démarrer

Définissez le nouveau tag dans 40-overleaf.yaml (et dans 45-git-bridge.yaml, qui doit utiliser le même tag), puis :
Le Deployment utilise strategy: Recreate ; même avec un tag modifié, deux versions ne s’exécutent donc jamais en même temps.

MongoDB et Redis

Mettez-les à niveau séparément d’Ayakaleaf Pro. Pour MongoDB, suivez Mettre à jour MongoDB (une version majeure à la fois, featureCompatibilityVersion après chaque étape) ; un replica set adopte la nouvelle image un membre à la fois lorsque vous modifiez l’image dans 10-mongo.yaml, car le StatefulSet remplace successivement mongo-2, mongo-1 et mongo-0.

Revenir en arrière

Arrêtez Ayakaleaf Pro comme ci-dessus, restaurez MongoDB à partir de l’archive (mongorestore --drop --archive --gzip) et les volumes ou buckets à partir de la sauvegarde, définissez l’ancien tag et redémarrez. Il n’existe pas d’autre moyen d’annuler les migrations de la nouvelle version.

Q&A

Réponse : Avec podManagementPolicy: OrderedReady, overleaf-1 ne démarre qu’une fois overleaf-0 prêt, et une mise à jour progressive ne remplace pas un pod qui n’est jamais devenu prêt. Après avoir corrigé la cause, par exemple un paramètre erroné dans le ConfigMap, supprimez le pod bloqué afin que le StatefulSet le recrée à partir du modèle actuel :
Nous avons rencontré ce cas sur notre cluster de test après qu’un paramètre a empêché overleaf-0 de devenir prêt ; la suppression du pod a permis aux trois répliques de démarrer.
Dernière modification le 2 novembre 2026