設定
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 サーバーです。水平スケーリングの構成はこれを使ってテストしました。以下のコマンドはキーの生成と Secretoverleaf-s3 の作成まで行うため、手順 1 の Secret コマンドの代わりにこちらを使用してください。
Overleaf のサンプルで使われている MinIO は、コンテナイメージを公開しなくなりました。
minio/minio は Docker Hub と quay.io から削除されています。50-garage.yaml
GK に 16 進数 24 文字を加えたもの、シークレットは 16 進数 64 文字です。
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 は空のままでした。
