Skip to main content
Aktualizacja polega na zmianie tagu obrazu. Nowa wersja migruje bazę danych przy uruchomieniu, a migracje te muszą zostać wykonane jednokrotnie, z jednego poda, gdy nie działa żaden starszy pod. W Kubernetes wyklucza to zwykłą aktualizację kroczącą (rolling update) przeskalowanego StatefulSet.
Przed każdą aktualizacją wykonaj spójną kopię zapasową przy zatrzymanym Ayakaleaf Pro. Przeczytaj informacje o wydaniu, aby poznać kroki dla wersji, do której aktualizujesz.
Zanim zaczniesz, na każdym węźle, na którym działa Ayakaleaf Pro, pobierz poleceniem sudo docker pull każdy obraz TeX Live, który wymienia nowa wersja lub Twoja nowa konfiguracja.
1

Zatrzymaj Ayakaleaf Pro

2

Utwórz kopię zapasową

MongoDB, z dowolnego członka:
Wolumin danych, za pomocą krótkotrwałego poda, który go montuje (trafia on na węzeł woluminu):
Zrób to samo dla woluminu git-bridge (data-git-bridge-0) i zachowaj kopię Secret overleaf-secrets. Jeśli Twój magazyn obsługuje VolumeSnapshots, migawka woluminów daje ten sam efekt.
3

Zmień wersję i uruchom

Ustaw nowy tag w 40-overleaf.yaml (oraz w 45-git-bridge.yaml, który musi używać tego samego tagu), a następnie:
Deployment używa strategy: Recreate, więc nawet po zmianie tagu nigdy nie działają jednocześnie dwie wersje.

MongoDB i Redis

Aktualizuj je niezależnie od Ayakaleaf Pro. W przypadku MongoDB postępuj zgodnie z Aktualizacją MongoDB (jedna wersja główna naraz, featureCompatibilityVersion po każdym kroku); zestaw replik przyjmuje nowy obraz po jednym członku naraz, gdy zmienisz obraz w 10-mongo.yaml, ponieważ StatefulSet zastępuje kolejno mongo-2, mongo-1 i mongo-0.

Wycofywanie zmian

Zatrzymaj Ayakaleaf Pro jak powyżej, przywróć MongoDB z archiwum (mongorestore --drop --archive --gzip) oraz woluminy lub buckety z kopii zapasowej, ustaw stary tag i uruchom ponownie. Migracji nowej wersji nie da się cofnąć w inny sposób.

Pytania i odpowiedzi

Odpowiedź: Przy podManagementPolicy: OrderedReady replika overleaf-1 uruchamia się dopiero wtedy, gdy overleaf-0 jest gotowa, a aktualizacja krocząca nie zastępuje poda, który nigdy nie osiągnął gotowości. Po usunięciu przyczyny, na przykład błędnego ustawienia w ConfigMap, usuń zablokowany pod, aby StatefulSet utworzył go ponownie z bieżącego szablonu:
Napotkaliśmy ten problem w naszym klastrze testowym, gdy jedno z ustawień uniemożliwiło overleaf-0 osiągnięcie gotowości; usunięcie poda pozwoliło uruchomić wszystkie trzy repliki.
Ostatnia modyfikacja 2 listopada 2026