Настройка
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, работающий в кластере. Конфигурация из раздела Горизонтальное масштабирование тестировалась с ним. Приведённые ниже команды сами генерируют ключи и создают Secretoverleaf-s3, поэтому используйте их вместо команды создания Secret из шага 1.
MinIO, используемый в примере Overleaf, больше не публикует образы контейнеров:
minio/minio исчез из Docker Hub и quay.io.50-garage.yaml
GK и 24 шестнадцатеричных символа, секреты — 64 шестнадцатеричных символа:
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 реплик оставались пустыми.
