欢迎来到回归终端的运维指南文档!
我们将在此文档中提供有关回归终端从初次部署到日常维护、系统升级与迁移的所有技术细节与注意事项。使用回归终端举办比赛时,此文档会覆盖部署、运维与维护所需的主要知识。
本项目欢迎大家踊跃发起代码贡献!希望大家可以一起将其建设为更加优秀的训练与竞赛平台。
同时,本项目作者并不介意其他平台开发者借鉴本平台的架构思路、参考实现代码等等,也十分欢迎一起交流开发。
作为开源项目,我们希望这件作品可以以任何形式推动人类社会的小小进步,而非以保守封闭的态度来争夺市场。即便它后续没落了,至少在架构探索与实现上也能留下一些技术痕迹。
虽然秉承开放的态度,也还请在 复制代码 / 用 AI 提炼代码 时注意遵守本项目的开源协议与附加条款(思路参考不受此限制)。
对于使用本项目进行套壳贩售/竞标、违反基于 GPL-3.0 衍生的开源协议规范、在入口设定付费操作、拒绝开源等行为,我们保留追诉的一切权利。
在一切开始之前……
回归终端(ret2shell@GitHub)在架构设计之初,开发者考虑到回归终端主要面向较为大型的比赛需求,为了更好的优化平台性能,防止结构过于复杂降低可维护性,回归终端并不支持除了 Kubernetes 之外的集群管理方式。为了简化部署难度,回归终端尽可能地将平台本身的部署方案与题目动态容器部署方案抽象为两个不相关的部分,你可以将回归终端部署至裸机上,然后让它去控制外部的 Kubernetes 集群,也可以使用 Docker 部署,并自行协调集群管理方案,或者直接将回归终端部署至 Kubernetes 集群之中,与题目容器共存,并依靠 Kubernetes 本身的能力进行算力调度。
ret2boot 已经可以用于生产环境部署。它提供一个单一二进制文件,让你在一台干净的 Linux 服务器上通过交互式流程完成回归终端部署。首次部署、单服务器办赛和希望降低 Kubernetes 运维成本的场景,可以尝试使用 ret2boot。 不过也请注意,在网络环境不佳、与 GitHub 和 Docker 源通信存在较大问题的情况下本工具可能会出现问题。如果你对系统运维并不熟悉,不知道网络错误导致安装进程中断后如何清理,还是推荐使用手动操作部署方案。
运维本身就是一个需要大量工程经验的复杂工作,我们提供的简化工具并不能覆盖到你可能会遇到的所有问题。因此,在回归终端的部署与运维过程中,希望你可以认真的研读 教程 | Kubernetes 并实操其中的大部分场景,有助于帮助你更快的熟悉本平台结构,并拥有自己快速响应与承载比赛的能力。
