Skip to main content
Una actualización sustituye la etiqueta de la imagen. La nueva versión migra la base de datos al arrancar, y estas migraciones deben ejecutarse una sola vez, desde un único pod, mientras no se esté ejecutando ningún pod antiguo. En Kubernetes, esto descarta una simple actualización progresiva (rolling update) de un StatefulSet escalado.
Haz una copia de seguridad coherente antes de cada actualización, con Ayakaleaf Pro detenido. Lee las notas de la versión para conocer los pasos de la versión a la que actualizas.
Antes de empezar, en cada nodo que ejecute Ayakaleaf Pro, descarga con sudo docker pull cualquier imagen de TeX Live que indique la nueva versión o tu nueva configuración.
1

Detener Ayakaleaf Pro

2

Hacer una copia de seguridad

MongoDB, desde cualquier miembro:
El volumen de datos, mediante un pod de corta duración que lo monta (se ubica en el nodo del volumen):
Haz lo mismo con el volumen de git-bridge (data-git-bridge-0) y guarda una copia del Secret overleaf-secrets. Si tu almacenamiento admite VolumeSnapshots, una instantánea de los volúmenes cumple la misma función.
3

Cambiar la versión e iniciar

Establece la nueva etiqueta en 40-overleaf.yaml (y en 45-git-bridge.yaml, que debe usar la misma etiqueta) y, después:
El Deployment usa strategy: Recreate, por lo que incluso con una etiqueta cambiada nunca se ejecutan dos versiones a la vez.

MongoDB y Redis

Actualízalos por separado de Ayakaleaf Pro. Para MongoDB, sigue Actualizar MongoDB (una versión principal cada vez, featureCompatibilityVersion después de cada paso); un replica set adopta la nueva imagen de miembro en miembro cuando cambias la imagen en 10-mongo.yaml, porque el StatefulSet reemplaza mongo-2, mongo-1 y mongo-0 sucesivamente.

Revertir

Detén Ayakaleaf Pro como se indica arriba, restaura MongoDB desde el archivo (mongorestore --drop --archive --gzip) y los volúmenes o buckets desde la copia de seguridad, establece la etiqueta antigua e inicia de nuevo. Las migraciones de la nueva versión no se pueden deshacer de otro modo.

Preguntas y respuestas

Respuesta: Con podManagementPolicy: OrderedReady, overleaf-1 solo se inicia cuando overleaf-0 está listo, y una actualización progresiva no reemplaza un pod que nunca llegó a estar listo. Después de corregir la causa, por ejemplo un ajuste incorrecto en el ConfigMap, elimina el pod bloqueado para que el StatefulSet lo vuelva a crear a partir de la plantilla actual:
Nos ocurrió en nuestro clúster de prueba después de que un ajuste impidiera que overleaf-0 llegara a estar listo; eliminar el pod permitió que se iniciaran las tres réplicas.
Última modificación el 2 de noviembre de 2026