Před každým upgradem pořiďte konzistentní zálohu se zastaveným Ayakaleaf Pro. Přečtěte si poznámky k vydání, kde najdete kroky pro verzi, na kterou upgradujete.
sudo docker pull všechny obrazy TeX Live, které uvádí nová verze nebo vaše nová konfigurace.
- Jedna replika
- Více replik
1
Zastavte Ayakaleaf Pro
2
Zálohujte
MongoDB, z libovolného člena:Datový svazek, přes krátce žijící pod, který jej připojí (spustí se na uzlu svazku):Totéž proveďte se svazkem git-bridge (
data-git-bridge-0) a uschovejte si kopii Secretu overleaf-secrets. Pokud vaše úložiště podporuje VolumeSnapshots, snapshot svazků poslouží stejně.3
Změňte verzi a spusťte
Nastavte nový tag v Deployment používá
40-overleaf.yaml (a v 45-git-bridge.yaml, který musí používat stejný tag) a poté:strategy: Recreate, takže ani při změně tagu nikdy neběží dvě verze současně.MongoDB a Redis
Upgradujte je odděleně od Ayakaleaf Pro. U MongoDB postupujte podle části Aktualizace MongoDB (vždy o jednu hlavní verzi, po každém krokufeatureCompatibilityVersion); replica set převezme nový obraz po jednotlivých členech, když změníte obraz v 10-mongo.yaml, protože StatefulSet postupně nahradí mongo-2, mongo-1 a mongo-0.
Návrat k předchozí verzi
Zastavte Ayakaleaf Pro jako výše, obnovte MongoDB z archivu (mongorestore --drop --archive --gzip) a svazky nebo buckety ze zálohy, nastavte starý tag a znovu spusťte. Migrace nové verze jinak vrátit nelze.
Q&A
Replika zůstává nepřipravená a ostatní repliky se nikdy nespustí
Replika zůstává nepřipravená a ostatní repliky se nikdy nespustí
Odpověď: S Na to jsme narazili na našem testovacím clusteru poté, co nastavení bránilo
podManagementPolicy: OrderedReady se overleaf-1 spustí až poté, co je overleaf-0 připraven, a rolling update nenahradí pod, který se nikdy nestal připraveným. Poté, co odstraníte příčinu, například chybné nastavení v ConfigMapu, smažte zaseknutý pod, aby jej StatefulSet znovu vytvořil z aktuální šablony:overleaf-0 stát se připraveným; smazání podu umožnilo spustit všechny tři repliky.
