/var/log/overleaf/ 下寫入各自的日誌檔案;kubectl logs 只會顯示容器的啟動輸出(初始化指令碼、遷移)。Toolkit 的 bin/logs 讀取的是相同的檔案,請參閱日誌。
讀取日誌
在多個副本的情況下,每個 Pod 都有自己的檔案:請使用 Pod 名稱(
overleaf-0、overleaf-1……)取代 deploy/overleaf。HAProxy 加入的 X-Served-By 標頭可指出是哪個副本回應了請求。
ConfigMap 中的 LOG_LEVEL(預設為 info,另有 debug、warn、error)會一次設定 Pod 中所有服務的層級。
保存日誌
這些檔案位於容器中,當 Pod 被取代時就會遺失。若要保存,請在 Deployment 或 StatefulSet 中於/var/log/overleaf 掛載磁碟區,例如節點上的 hostPath 或 PersistentVolumeClaim:
在 Kubernetes 上的測試
在 Kubernetes 1.37 上以三個副本並如上所述於/var/log/overleaf 掛載 hostPath 磁碟區,每個節點的 /srv/overleaf-logs 都保存了其副本的十二個服務日誌,而表格中的指令也如所示正常運作:透過 kubectl exec 執行 tail、以 kubectl cp 複製日誌檔案、以 kubectl logs 查看 Overleaf Pod(啟動與遷移)以及 mongo-0 的日誌。
