Skip to main content
Ein Upgrade ersetzt den Image-Tag. Die neue Version migriert die Datenbank beim Start, und diese Migrationen müssen einmal, von einem einzigen Pod aus, während kein älterer Pod läuft ausgeführt werden. Auf Kubernetes schließt das ein einfaches Rolling Update eines skalierten StatefulSets aus.
Erstellen Sie vor jedem Upgrade bei gestopptem Ayakaleaf Pro eine konsistente Sicherung. Lesen Sie in den Versionshinweisen nach, welche Schritte die Zielversion erfordert.
Pullen Sie vor dem Start auf jedem Knoten, der Ayakaleaf Pro ausführt, mit sudo docker pull jedes TeX Live-Image, das die neue Version oder Ihre neue Konfiguration aufführt.
1

Ayakaleaf Pro stoppen

2

Sichern

MongoDB, von einem beliebigen Mitglied aus:
Das Daten-Volume, über einen kurzlebigen Pod, der es einbindet (er landet auf dem Knoten des Volumes):
Verfahren Sie ebenso mit dem Volume von git-bridge (data-git-bridge-0) und bewahren Sie eine Kopie des Secrets overleaf-secrets auf. Wenn Ihr Speicher VolumeSnapshots unterstützt, erfüllt ein Snapshot der Volumes denselben Zweck.
3

Version ändern und starten

Setzen Sie den neuen Tag in 40-overleaf.yaml (und in 45-git-bridge.yaml, das denselben Tag verwenden muss) und führen Sie dann Folgendes aus:
Das Deployment verwendet strategy: Recreate, sodass selbst bei einem geänderten Tag nie zwei Versionen gleichzeitig laufen.

MongoDB und Redis

Aktualisieren Sie diese getrennt von Ayakaleaf Pro. Folgen Sie für MongoDB MongoDB aktualisieren (jeweils eine Hauptversion, nach jedem Schritt featureCompatibilityVersion); ein Replikatset übernimmt das neue Image Mitglied für Mitglied, wenn Sie das Image in 10-mongo.yaml ändern, weil das StatefulSet mongo-2, mongo-1 und mongo-0 nacheinander ersetzt.

Zurücksetzen

Stoppen Sie Ayakaleaf Pro wie oben, stellen Sie MongoDB aus dem Archiv (mongorestore --drop --archive --gzip) und die Volumes oder Buckets aus der Sicherung wieder her, setzen Sie den alten Tag und starten Sie erneut. Die Migrationen der neuen Version lassen sich anders nicht rückgängig machen.

Q&A

Antwort: Mit podManagementPolicy: OrderedReady startet overleaf-1 erst, wenn overleaf-0 bereit ist, und ein Rolling Update ersetzt keinen Pod, der nie bereit wurde. Nachdem Sie die Ursache behoben haben, zum Beispiel eine falsche Einstellung in der ConfigMap, löschen Sie den hängenden Pod, damit das StatefulSet ihn aus der aktuellen Vorlage neu erstellt:
Das ist uns auf unserem Testcluster passiert, nachdem eine Einstellung verhindert hatte, dass overleaf-0 bereit wurde; nach dem Löschen des Pods starteten alle drei Replikate.
Zuletzt geändert am 2. November 2026