Skip to main content
Un aggiornamento sostituisce il tag dell’immagine. La nuova versione esegue la migrazione del database al suo avvio, e queste migrazioni devono essere eseguite una sola volta, da un solo pod, mentre nessun pod precedente è in esecuzione. Su Kubernetes questo esclude un semplice rolling update di uno StatefulSet scalato.
Esegui un backup coerente prima di ogni aggiornamento, con Ayakaleaf Pro arrestato. Leggi le note di rilascio per i passaggi specifici della versione a cui stai aggiornando.
Prima di iniziare, su ogni nodo che esegue Ayakaleaf Pro, scarica con sudo docker pull ogni immagine TeX Live elencata dalla nuova versione o dalla tua nuova configurazione.
1

Arresta Ayakaleaf Pro

2

Esegui il backup

MongoDB, da un membro qualsiasi:
Il volume dei dati, tramite un pod di breve durata che lo monta (viene pianificato sul nodo del volume):
Fai lo stesso per il volume di git-bridge (data-git-bridge-0) e conserva una copia del Secret overleaf-secrets. Se il tuo storage supporta i VolumeSnapshot, uno snapshot dei volumi ottiene lo stesso risultato.
3

Cambia la versione e avvia

Imposta il nuovo tag in 40-overleaf.yaml (e in 45-git-bridge.yaml, che deve usare lo stesso tag), poi:
Il Deployment usa strategy: Recreate, quindi anche con un tag modificato non vengono mai eseguite due versioni contemporaneamente.

MongoDB e Redis

Aggiornali separatamente da Ayakaleaf Pro. Per MongoDB, segui Aggiornare MongoDB (una versione principale alla volta, featureCompatibilityVersion dopo ogni passaggio); un replica set adotta la nuova immagine un membro alla volta quando cambi l’immagine in 10-mongo.yaml, perché lo StatefulSet sostituisce a turno mongo-2, mongo-1 e mongo-0.

Tornare alla versione precedente

Arresta Ayakaleaf Pro come sopra, ripristina MongoDB dall’archivio (mongorestore --drop --archive --gzip) e i volumi o i bucket dal backup, imposta il vecchio tag e riavvia. Altrimenti, le migrazioni della nuova versione non possono essere annullate.

Q&A

Risposta: Con podManagementPolicy: OrderedReady, overleaf-1 si avvia solo quando overleaf-0 è pronto, e un rolling update non sostituisce un pod che non è mai diventato pronto. Dopo aver risolto la causa, ad esempio un’impostazione errata nella ConfigMap, elimina il pod bloccato in modo che lo StatefulSet lo ricrei dal template corrente:
Ci è capitato sul nostro cluster di test dopo che un’impostazione aveva impedito a overleaf-0 di diventare pronto; eliminare il pod ha permesso a tutte e tre le repliche di avviarsi.
Ultima modifica il 2 novembre 2026