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), а тома или бакеты — из резервной копии, укажите старый тег и снова запустите. Иначе миграции новой версии отменить нельзя.

Вопросы и ответы

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