sudo docker pull 拉取新版本或新配置中列出的所有 TeX Live 镜像。
- 单副本
- 多副本
1
停止 Ayakaleaf Pro
2
备份
MongoDB,可从任意成员执行:数据卷,通过一个挂载该卷的短期 pod 进行备份(该 pod 会被调度到卷所在的节点):对 git-bridge 的卷(
data-git-bridge-0)执行同样的操作,并保存一份 Secret overleaf-secrets 的副本。如果你的存储支持 VolumeSnapshots,也可以通过对这些卷创建快照达到同样的效果。3
更改版本并启动
在 该 Deployment 使用
40-overleaf.yaml 中设置新标签(45-git-bridge.yaml 中也需设置,且必须使用相同的标签),然后执行:strategy: Recreate,因此即使更改了标签,也绝不会同时运行两个版本。MongoDB 和 Redis
请将它们与 Ayakaleaf Pro 分开升级。对于 MongoDB,请按照更新 MongoDB 进行(每次升级一个主版本,每一步之后设置featureCompatibilityVersion);当你在 10-mongo.yaml 中更改镜像时,副本集会逐个成员地使用新镜像,因为 StatefulSet 会依次替换 mongo-2、mongo-1 和 mongo-0。
回滚
按上述方式停止 Ayakaleaf Pro,从归档文件恢复 MongoDB(mongorestore --drop --archive --gzip),并从备份中恢复卷或存储桶,设置旧标签后重新启动。除此之外,新版本的迁移无法撤销。
Q&A
某个副本一直未就绪,其他副本也始终无法启动
某个副本一直未就绪,其他副本也始终无法启动
回答:在 我们在测试集群上遇到过这种情况:某个设置导致
podManagementPolicy: OrderedReady 下,overleaf-1 只有在 overleaf-0 就绪后才会启动,并且滚动更新不会替换从未就绪的 pod。修复原因(例如 ConfigMap 中的错误设置)之后,请删除卡住的 pod,使 StatefulSet 根据当前模板重新创建它:overleaf-0 无法就绪;删除该 pod 后,三个副本全部成功启动。
