redis 執行;Toolkit 的說明請參閱 Redis。
密碼驗證
1
儲存密碼
2
以此密碼啟動 Redis
在 Kubernetes 會以 Secret 中的值取代
20-redis.yaml 中,將密碼提供給容器並傳遞給 redis-server:20-redis.yaml (changes)
$(REDIS_PASS)。就緒探測(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,然後將 --appendonly yes 加入 args。
多個副本
所有副本都必須使用同一個 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 上執行,啟用 AOF 持久化且未設定密碼。
