Skip to main content
Оновлення замінює тег образу. Нова версія під час запуску виконує міграцію бази даних, і ці міграції мають виконуватися один раз, з одного пода, коли не працює жоден старіший под. У Kubernetes це виключає звичайне поступове оновлення (rolling update) масштабованого StatefulSet.
Перед кожним оновленням створюйте узгоджену резервну копію, зупинивши Ayakaleaf Pro. Ознайомтеся з примітками до випуску щодо кроків для версії, до якої ви оновлюєтеся.
Перш ніж почати, на кожному вузлі, де працює Ayakaleaf Pro, завантажте командою sudo docker pull усі образи TeX Live, перелічені в новій версії або у вашій новій конфігурації.
1

Зупиніть Ayakaleaf Pro

2

Створіть резервну копію

MongoDB — з будь-якого учасника:
Том даних — через короткочасний под, який його монтує (він опиняється на вузлі тому):
Зробіть те саме для тому git-bridge (data-git-bridge-0) і збережіть копію Secret overleaf-secrets. Якщо ваше сховище підтримує VolumeSnapshots, знімок томів дасть той самий результат.
3

Змініть версію та запустіть

Укажіть новий тег у 40-overleaf.yaml (і в 45-git-bridge.yaml, який має використовувати той самий тег), а потім:
Deployment використовує strategy: Recreate, тож навіть після зміни тегу дві версії ніколи не працюють одночасно.

MongoDB і Redis

Оновлюйте їх окремо від Ayakaleaf Pro. Для MongoDB дотримуйтеся розділу Оновлення MongoDB (по одній мажорній версії за раз, featureCompatibilityVersion після кожного кроку); коли ви змінюєте образ у 10-mongo.yaml, набір реплік отримує новий образ по одному учаснику, бо StatefulSet по черзі замінює mongo-2, mongo-1 і mongo-0.

Відкат

Зупиніть Ayakaleaf Pro, як описано вище, відновіть MongoDB з архіву (mongorestore --drop --archive --gzip), а томи чи бакети — з резервної копії, встановіть старий тег і запустіть знову. Інакше міграції нової версії скасувати не можна.

Q&A

Відповідь: З podManagementPolicy: OrderedReady overleaf-1 запускається лише після того, як overleaf-0 стане готовим, а поступове оновлення не замінює под, який так і не став готовим. Після того як ви усунули причину, наприклад неправильне налаштування в ConfigMap, видаліть завислий под, щоб StatefulSet створив його знову з поточного шаблону:
Ми зіткнулися з цим у нашому тестовому кластері, коли налаштування не давало overleaf-0 стати готовим; видалення пода дозволило запуститися всім трьом реплікам.
Останнє оновлення 2 листопада 2026 р.