部署与运维

在 Kubernetes 上部署

Helm Chart 封装当前的 api / background 角色,连接外部 OceanBase,提供已有 Secret 引用、API 健康探针、ClusterIP Service、可选 Ingress 和资源配置。

部署前需要指定固定版本的应用镜像并准备 Secret。多个 background 副本通过数据库租约选出一个活跃 supervisor,其余作为候选实例;增加副本不会增加活跃 supervisor 的数量。当前 background runner 没有 HTTP 健康端点,Pod Ready 不代表后台处理正常,需结合租约续期、日志和持久化处理进度判断。 background.maxWorkers 通过兼容别名设置 Topic Memory 配额,不是进程总数上限; maxWorkers=2 且七个内置 family 全部启用时,配额合计为 11;验收配置的 test 模型 启用四个 family,配额合计为 8。未配置生成模型时默认不启用任何 family;实际并发取决于启用能力和调度。 应为 supervisor 及其子进程共同规划资源。

可通过 commonLabels、podAnnotations、podSecurityContext 和 securityContext 适配集群策略。由准入控制分配 UID/GID 的集群,可将 podSecurityContext 中的 runAsUser、runAsGroup 和 fsGroup 设为 null,并验证准入规则和卷权限。 PDB 和 topology-spread constraints 需在 Chart 外管理。MCP 的 stateless Streamable HTTP 由运行时挂载行为保证,不是 Chart 的环境变量配置。

安装、协调停机升级和集群验收步骤见 Chart 文档。Chart 不支持 SQLite 或内嵌 seekdb;这些后端应使用 单进程评估部署。首次安装前,即使 OceanBase 数据库为空,也必须使用目标镜像执行完整 Server 数据库迁移,并确认 server_ready=true 后再启动 Pod。 OceanBase 维护必须使用持久化证据目录和 --lock-coordination single-host;所有命令及重试 都在同一台固定维护主机上运行,保持 hostname 和目录一致。容器命令见 Chart README; 先启动一个 API Pod、保持 background 副本为零,待静态 Bearer 的 Access 绑定初始化完成、 API Ready 后,再从保存的配置恢复目标副本数。 已有数据库还需审阅迁移计划、完成备份并停止所有写入; Atomic Memory 迁移和处理状态迁移 说明各自的兼容入口及范围。Chart 不会自动执行迁移。历史集群证据对应旧镜像和 schema; 应使用目标应用镜像单独验收初始化、副本启动及 Pod 替换。

集群验收时,将 Chart 中的 values-acceptance.yaml 与本地镜像和 Secret 引用配置一起使用。 该配置启用两个 API 副本、一个初始 background 副本及本地 test 生成模型。验收脚本会拒绝少于 两个 API 副本的配置,并在创建测试数据前及替换 API Pod 后确认至少两个 API Pod 处于 Ready 状态。 仅在隔离测试 namespace 和可丢弃的外部 OceanBase 数据库上运行;脚本会写入数据、删除 Pod 并调整 background 副本数,必须显式传入 --confirm-disposable。脚本还创建两个子 Scope, 在一个 API Pod 上以 limit=1 取得游标,再让其他各 API Pod 续读,检查签名键共享及结果无遗漏、无重复。 配置测试通过不代表真实集群验收通过。

On this page