Skip to main content
プロジェクトのファイルとその履歴は history-v1 サービスが、テンプレートファイルは filestore サービスが保存します。どちらもすべての Ayakaleaf Pro Pod 内で動作します。デフォルトではデータボリュームに書き込みますが、S3 を使うとバケットに書き込みます。必要なバケットと権限については S3 で説明しています。
ユーザーがプロジェクトを作成する前に S3 を選択してください。すでにボリュームにファイルを保存しているインスタンスでは、先に S3 への移行が必要です。

設定

1

バケットとキー

S3 のセットアップの説明に従って、S3 サービスで 3 つのバケット overleaf-template-files、overleaf-project-blobs、overleaf-chunks と、権限を制限した 2 つのユーザーを作成するか、以下に示すようにクラスター内で Garage を実行します。4 つのキーを Secret に格納します。
2

ConfigMap

30-config.yaml (additions)
3

Secret を Pod に追加して再起動する

Deployment(または StatefulSet)で、他の Secret の隣にこの Secret を追加します。

クラスター内の Garage

S3 サービスがない場合、Garage はクラスター内で動作する小型の S3 サーバーです。水平スケーリングの構成はこれを使ってテストしました。以下のコマンドはキーの生成と Secret overleaf-s3 の作成まで行うため、手順 1 の Secret コマンドの代わりにこちらを使用してください。
Overleaf のサンプルで使われている MinIO は、コンテナイメージを公開しなくなりました。minio/minio は Docker Hub と quay.io から削除されています。
50-garage.yaml
シークレットを生成して Garage を起動し、レイアウト、バケット、権限を制限した 2 つのキーを作成します。Garage のキー ID は GK に 16 進数 24 文字を加えたもの、シークレットは 16 進数 64 文字です。
権限は S3 のポリシーと一致しています。Garage はリージョンをチェックします。ここでは garage であり、OVERLEAF_*_S3_REGION も同じである必要があります。 Garage を使う場合は、水平スケーリングの 60-config.yaml と同様に、ConfigMap で両方のサービスにエンドポイント、PATH_STYLE: "true"、リージョン garage を設定してください。

複数のレプリカ

すべてのレプリカが同じバケットとキーを使用する必要があります。バケットは S3 プロバイダーのツールでバックアップしてください。そうすれば、レプリカ自身のディスクにはバックアップが必要なデータは残りません。

Kubernetes でのテスト

Kubernetes 1.37 上でレプリカ 3 つ、上記の Garage を使用した状態で、これらのページにあるエンドツーエンドテストのうち、プロジェクトの作成、ファイルのアップロード、履歴の使用、テンプレートの公開を行うものはすべて合格しました。その後、バケット overleaf-project-blobs、overleaf-chunks、overleaf-template-files にはオブジェクトが保存されており、レプリカ自身の /var/lib/overleaf/data/history は空のままでした。
最終更新日 2026年11月2日