redis 运行;Toolkit 的相关内容请参见 Redis。
密码认证
1
存储密码
2
使用该密码启动 Redis
在 Kubernetes 会将
20-redis.yaml 中,将密码提供给容器并传递给 redis-server:20-redis.yaml (changes)
$(REDIS_PASS) 替换为 Secret 中的值。就绪探针(tcpSocket)无需更改。3
应用并重启
请先停止 Ayakaleaf Pro,以免在两次重启之间丢失编辑内容:
OVERLEAF_REDIS_HOST(以及 REDIS_HOST)设置为其地址,按上述方式设置密码,如果它要求 TLS,还需设置 OVERLEAF_REDIS_TLS: "true"。
AOF 持久化
安装过程已经使用--appendonly yes 启动 Redis(对应 Toolkit 的 REDIS_AOF_PERSISTENCE=true),并将其数据保存在卷 data-redis-0 上。要将现有未启用 AOF 的 Redis 切换过来,请按照 Toolkit 页面 中的步骤操作,使用 kubectl -n overleaf exec -it redis-0 -- redis-cli 代替 docker exec,然后在 args 中添加 --appendonly yes。
多个副本
所有副本必须使用同一个 Redis:它保存着会话、尚未写入 MongoDB 的编辑,以及防止两个副本同时处理同一项目的锁。在 Kubernetes 上的测试
在 Kubernetes 1.37 上以单副本运行时,按上述方式使用来自 Secretredis-auth 的 --requirepass $(REDIS_PASS) 启动的 Redis 会拒绝未提供密码的 redis-cli(NOAUTH);在 overleaf-secrets 中设置 OVERLEAF_REDIS_PASS 和 REDIS_PASSWORD 后,我们针对 launchpad 的端到端测试(13 个用例)以及针对修订追踪、评论和匿名共享编辑的端到端测试(22 个用例)全部通过,这些测试会经过 web、real-time、document-updater 和 project-history;没有任何服务记录 Redis 认证错误。这些页面中的所有其他 Kubernetes 测试都是针对安装过程中的 Redis StatefulSet 运行的,该 StatefulSet 启用了 AOF 持久化且未设置密码。
