Skip to main content
Файлы проектов и их историю хранит сервис history-v1, файлы шаблонов — сервис filestore; оба работают внутри каждого пода Ayakaleaf Pro. По умолчанию они записывают данные на том данных; с S3 — в бакеты. Какие бакеты и права нужны, описано на странице S3.
Выберите S3 до того, как пользователи начнут создавать проекты. Экземпляру, который уже хранит файлы на своём томе, сначала нужна миграция на S3.

Настройка

1

Бакеты и ключи

Создайте три бакета overleaf-template-files, overleaf-project-blobs и overleaf-chunks и двух пользователей с ограниченными правами в вашем сервисе S3, как описано в разделе Настройка S3, или запустите Garage в кластере, как показано ниже. Поместите четыре ключа в Secret:
2

ConfigMap

30-config.yaml (additions)
3

Добавьте Secret в под и перезапустите

В Deployment (или StatefulSet) добавьте Secret рядом с остальными:

Garage в кластере

Если сервиса S3 нет, Garage — это небольшой сервер S3, работающий в кластере. Конфигурация из раздела Горизонтальное масштабирование тестировалась с ним. Приведённые ниже команды сами генерируют ключи и создают Secret overleaf-s3, поэтому используйте их вместо команды создания Secret из шага 1.
MinIO, используемый в примере Overleaf, больше не публикует образы контейнеров: minio/minio исчез из Docker Hub и quay.io.
50-garage.yaml
Сгенерируйте секреты, запустите Garage, затем создайте схему размещения (layout), бакеты и два ключа с ограниченными правами. Идентификаторы ключей Garage — это GK и 24 шестнадцатеричных символа, секреты — 64 шестнадцатеричных символа:
Права соответствуют политикам на странице S3. Garage проверяет регион: здесь это garage, и OVERLEAF_*_S3_REGION должен совпадать. С Garage задайте в ConfigMap для обоих сервисов конечную точку, PATH_STYLE: "true" и регион garage, как в 60-config.yaml из раздела Горизонтальное масштабирование.

Несколько реплик

Все реплики должны использовать одни и те же бакеты и ключи. Создавайте резервные копии бакетов средствами вашего провайдера S3; тогда собственные диски реплик не содержат данных, требующих резервного копирования.

Проверено на Kubernetes

В Kubernetes 1.37 с тремя репликами и Garage, как описано выше, прошли все сквозные тесты на этих страницах, которые создают проекты, загружают файлы, используют историю или публикуют шаблоны, а после них бакеты overleaf-project-blobs, overleaf-chunks и overleaf-template-files содержали объекты, тогда как собственные каталоги /var/lib/overleaf/data/history реплик оставались пустыми.
Последнее изменение 2 ноября 2026 г.