/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 复制日志文件、对 Overleaf pod(启动和迁移)以及 mongo-0 执行 kubectl logs。
