/learn 頁面由每個 Ayakaleaf Pro pod 的 web 服務(learn 模組)提供,內容來自 WIKI_URL 所設定之 wiki 的快取。此模組的功能以及哪些 wiki 可以使用,請參閱新增 LaTeX 使用者說明。
設定
30-config.yaml (additions)
WIKI_URL:若無法連線,web 服務會在啟動時失敗,並在 pod 內不斷重新啟動,導致 pod 永遠無法就緒。請關閉此模組,或允許 pod 對外連線至該 wiki。快取建立之後,即使 wiki 無法連線,pod 仍會啟動並提供快取的頁面。
多個副本
每個副本都會在其節點的磁碟上保留自己的快取,因此每個副本在首次啟動時都會下載 wiki;若使用podManagementPolicy: OrderedReady,它們會依序逐一下載。在另一個副本上的頁面重新整理之前,使用者可能會在該副本上看到版本略有不同的頁面。
在 Kubernetes 上的測試
在 Kubernetes 1.37 上,以三個副本置於 HAProxy 之後,每個副本於首次啟動時將https://learnwiki.overleaf.com 下載至其節點的快取中,我們針對 /learn 的端對端測試全數通過(12 個案例):頁首的 Documentation 連結、歡迎訊息與編輯器的 Help 選單、目錄側邊欄、wiki 內的頁面、連結與重新導向、從 wiki 載入的圖片、未知頁面回傳 404、未啟用公開存取時須登入,以及在 WIKI_URL 改為無法連線的位址後,仍從快取提供過期的頁面。在快取為空且 WIKI_URL 指向拒絕連線的位址時啟動,pod 維持未就緒且未重新啟動,而其中的 web 服務在三分鐘內啟動並失敗了 77 次。
