运维注意事项与通用约定

日常运维平台、排查 pod 起不来 / 资源不足 / Prometheus OOM / 备份等问题时,先读这份通用提醒清单

04-运维管理 / 日常运维
运维注意事项opschecklist换行符CRLFarm64amd64架构prometheus清理OOMmysql备份备份pod pending资源不足机器混用

运维注意事项与通用约定

本篇汇总日常运维 CubeStudio 平台时的通用约定与高频踩坑点,建议上线前后通读一遍,并据此建立基础运维 SOP。

通用约定

  1. 换行符问题:代码或文件经过 Windows 打开后再传到 Linux,换行符编码会变(CRLF 与 LF)。shell 脚本之类尽量在 Mac / Linux 系统下打开编辑;Windows 下载的 zip 直接传到服务器上,不要在 Windows 里二次编辑。

  2. CPU 架构差异:新版本 Mac 芯片是 arm64,服务器一般是 amd64。在新版 Mac 上构建镜像时要注意指定目标架构(例如 docker buildx --platform linux/amd64),与服务器架构保持一致,否则镜像在服务器上无法运行。

  3. 回退到原始配置:平台在摸索过程中难免操作混乱,或操作后未改回原始配置。如果过程中某些部分或某些任务模板不能使用了,可跟官方体验环境做对比,将配置改回原始配置,或重新部署一遍。

注意事项清单

1. 机器尽可能不要混用(控制面与计算分离)

平台控制部分和用户计算机器最好不要在同一批机器上。

CubeStudio 通过机器 label 管理任务调度,建议平台本身(控制组件)保留 1~2 台机器、不做任务计算;用户的 notebook、pipeline、service 使用单独的机器。因为用户任务资源使用比较多,和控制组件混部容易造成平台宕机。

机器标签(cpu=true / gpu=true / train=true / notebook=true / service=true / org=xx 等)与控制面标签(mysql=true / redis=true / istio=true / kubeflow=true / kubeflow-dashboard=true / monitoring=true / logging=true)的具体含义见 管理员操作指南 的「机器标签管理」一节;打标签的命令与资源组划分见 02-部署安装 / 多机多集群多资源组

2. Prometheus 数据清理

Prometheus 如果存储时间过久,机器资源不足时被 OOM,会造成重启一直 OOM。可以删除分布式存储中 Prometheus 的历史数据,重启 monitoring/prometheus-k8s-0;或者干脆不将监控数据持久化。

监控组件部署、数据持久化与看板配置见 监控部署与看板

3. MySQL 数据备份

MySQL 数据做好备份,至少每天备份一次

平台元数据库(MySQL / PostgreSQL / 达梦)的连接配置与备份相关见 元数据库配置达梦数据库部署与迁移

4. 分布式存储重要数据备份

分布式存储系统建议连接公司内部 git,代码数据用 git 管理;每天备份个人目录下的"重要数据"目录。

5. 机器资源不足可能的问题(pod pending 排查)

先在"服务"页面查看总体资源,再判断设置多少资源合适。如果出现 pod pending,几个可能的原因:

  • 机器标签是否正常添加;GPU 机器查看 GPU 插件是否正常运行,机器可分配资源里是否能看到 GPU 资源;
  • 分布式存储在机器上是否正常挂载;
  • 资源是否足够,目标机器现在剩余多少资源。

6. 网络可能的问题

打开 Jupyter 界面时若 Jupyter 反应缓慢,界面会提示让清理空间——不要清理,这通常是网络问题导致的误报。

7. 集群缩容(reset docker)

reset docker 前一定要保障机器已经从 k8s 集群去掉,并且分布式存储已经 umount,再执行,否则会造成数据/挂载残留。

8. k8s dashboard 管理权限问题

如果使用集群版本的 k8s dashboard 会方便很多,但有权限/安全风险;如果使用 user 受限版本,使用起来没那么方便。按安全要求权衡选择。

9. aihub 大模型申请版本

aihub 大模型需自己下载,仅提供商业化使用方法,不提供商业化版本的大模型本体。

10. k8s 开启审计日志

自建 k8s 建议开启审计日志(audit log),便于事件排查与安全审计。

11. Terminating 的 pod 需要手动处理

如果有分布式存储未卸载或子进程未关闭,pod 会 Terminating 失败卡住,需要手动处理(强制删除 / 清理挂载)。

12. 维表远程更新失败

维表不一定能正常更新到远程表,因为字段类型不一定能正常转换。不能自动更新的,需要人工更新。

13. 镜像秘钥 / GPT token / GPT URL 换成自己的

镜像拉取秘钥(hubsecret)换成自己的;GPT token 换成自己的,GPT URL 换成自己的。

14. 禁用系统自动更新

禁用掉操作系统的自动更新,避免内核 / Docker / 驱动版本被意外升级导致集群异常。

15. 做好基础机器运维

例如:磁盘满了告警;分布式存储服务状态、数据库服务状态、利用率频繁过高的报警等。注意机器可能存在的定制配置(如机器 DNS、防火墙),以及机器重启后基础存储服务和数据库服务是否正常恢复。

16. 代码二开后谨慎合并新功能

如果自己做了代码二次开发,要自己做好代码测试和升级测试,根据情况决定是否升级。代码是开放给客户的。

17. 机器初始化脚本,避免机器重启后环境复原

为每台机器准备重启后的初始化脚本(如重新打标签、挂载、设置环境变量等),避免机器重启后环境被复原。

最后更新 2026-07-04完整文档以官方仓库为准:GitHub Wiki