Skip to main content
アップグレードではイメージのタグを置き換えます。新しいバージョンは起動時にデータベースをマイグレーションしますが、このマイグレーションは古い Pod が 1 つも動作していない状態で、1 つの Pod から 1 回だけ実行する必要があります。そのため Kubernetes では、スケールした StatefulSet の単純なローリングアップデートは使用できません。
アップグレードの前には毎回、Ayakaleaf Pro を停止した状態で一貫性のあるバックアップを取得してください。アップグレード先のバージョンの手順についてはリリースノートを確認してください。
開始する前に、Ayakaleaf Pro を実行するすべてのノードで、新しいバージョンまたは新しい設定に列挙されている TeX Live イメージを sudo docker pull でプルしておいてください。
1

Ayakaleaf Pro を停止する

2

バックアップする

MongoDB は任意のメンバーからバックアップします。
データボリュームは、それをマウントする短命な Pod(ボリュームのあるノードに配置されます)を通じてバックアップします。
git-bridge のボリューム(data-git-bridge-0)についても同様に行い、Secret overleaf-secrets のコピーも保管してください。ストレージが VolumeSnapshots をサポートしている場合は、ボリュームのスナップショットでも同じことができます。
3

バージョンを変更して起動する

40-overleaf.yaml(および同じタグを使う必要がある 45-git-bridge.yaml)に新しいタグを設定してから、次を実行します。
Deployment は strategy: Recreate を使用しているため、タグを変更しても 2 つのバージョンが同時に動作することはありません。

MongoDB と Redis

これらは Ayakaleaf Pro とは別にアップグレードします。MongoDB については MongoDB の更新に従ってください(メジャーバージョンを 1 つずつ上げ、各ステップの後に featureCompatibilityVersion を設定)。10-mongo.yaml のイメージを変更すると、StatefulSet が mongo-2、mongo-1、mongo-0 を順に置き換えるため、レプリカセットはメンバー 1 つずつ新しいイメージに移行します。

ロールバック

上記のとおり Ayakaleaf Pro を停止し、アーカイブから MongoDB を(mongorestore --drop --archive --gzip)、バックアップからボリュームまたはバケットを復元し、古いタグを設定して再度起動します。新しいバージョンのマイグレーションは、これ以外の方法では元に戻せません。

Q&A

回答: podManagementPolicy: OrderedReady では、overleaf-1 は overleaf-0 の準備が完了してから起動し、ローリングアップデートは一度も準備完了にならなかった Pod を置き換えません。原因(たとえば ConfigMap の誤った設定)を修正した後、StatefulSet が現在のテンプレートから再作成するように、停止している Pod を削除してください。
テストクラスターでは、ある設定によって overleaf-0 が準備完了にならなかった後にこの問題が発生しました。Pod を削除すると、3 つのレプリカすべてが起動しました。
最終更新日 2026年11月2日