40-overleaf.yaml
/status 有响应时 pod 即为就绪状态;然后打开 OVERLEAF_SITE_URL。
清单文件为何如此编写
- 数据卷。
/var/lib/overleaf下的所有内容(项目文件、历史记录、上传文件)都保存在 PVC 上。使用 local-path 等节点本地存储时,数据会固定在一个节点上;使用网络块存储时,pod 可以在节点之间迁移。 - 编译卷和 Docker 套接字。Ayakaleaf Pro 请求节点的 Docker 启动 TeX Live 容器,并通过其在节点上的路径将项目的编译目录传递给容器。因此这些目录是
hostPath卷,其路径在SANDBOXED_COMPILES_HOST_DIR_*中重复指定。其内容是临时数据,无需备份。 enableServiceLinks: false。Kubernetes 会为命名空间中的每个 Service 向每个 pod 添加 Docker 风格的变量:Serviceredis会变成REDIS_PORT=tcp://10.x.x.x:6379,Servicegit-bridge会变成GIT_BRIDGE_PORT=tcp://...。某些 Overleaf 服务会读取这些名称的变量。在此 pod 中,来自OVERLEAF_REDIS_*和 ConfigMap 的设置优先,但 git-bridge 会将GIT_BRIDGE_PORT作为其端口并因此停止(参见 Git 集成)。关闭这些链接可使环境仅包含你设置的内容。Recreate。绝不能让两个 pod 同时使用同一个数据卷或同时运行迁移。- 对外暴露。NodePort Service 在每个节点的
30080端口上响应。在生产环境中,请在前端放置你的 ingress 控制器或负载均衡器,并在那里终止 TLS;它必须允许 WebSocket、10 分钟的请求超时(长时间编译)和 50 MB 的上传,并传递X-Forwarded-For和X-Forwarded-Proto。

