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,因为 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日