Skip to main content
Ayakaleaf Pro 需要:
  • 以複本集執行的 MongoDB 8(它會使用交易)。分散在三個節點上的三個成員可以承受失去一個節點;只有一個成員也能運作。
  • Redis 7,一台啟用 AOF 持久化的伺服器。Redis 保存尚未寫入 MongoDB 的編輯、工作階段,以及 Overleaf 各服務之間的訊息。Overleaf 只會連線至單一 Redis 伺服器:不支援 Sentinel 與 Redis Cluster。
您也可以改用代管服務,例如 MongoDB Atlas 或您雲端平台的 Redis。請略過本頁,並在步驟 4 中將 OVERLEAF_MONGO_URL 與 OVERLEAF_REDIS_HOST 設為這些服務。
1

MongoDB

10-mongo.yaml
幾秒後,應該會有一個成員為 PRIMARY,其餘為 SECONDARY。Job 會持續重試直到所有成員都回應,因此出現幾個失敗的 Job Pod 是正常的。
  • Headless Service 需要 publishNotReadyAddresses: true:成員必須在複本集建立之前就能以名稱找到彼此。
  • 成員是以其穩定的名稱(mongo-0.mongo.overleaf.svc.cluster.local)加入,絕不使用每次重新啟動都會改變的 Pod IP。
  • 若只要一個成員,請設定 replicas: 1,並在 Job 中只保留 mongo-0。
2

Redis

20-redis.yaml

Q&A

回答:MongoDB 8 在 Linux 核心 6.19 及更新版本上會失敗(SERVER-121912)。請取消 10-mongo.yaml 中 GLIBC_TUNABLES 環境變數的註解。
回答:預設情況下,MongoDB 會使用節點記憶體的一半減去 1 GB 作為快取,而且它看到的是節點的記憶體,而非 Pod 的限制。請依您的節點設定 --wiredTigerCacheSizeGB;在我們 4 GB 的測試節點上,0.25 讓每個成員維持在約 200 至 260 MiB。
最後修改於 2026年11月2日