进阶 docs.cubesandbox.com 2026-10-08 23:44:25 · 7 阅读

第34章 模板检查与请求预览

模板检查与请求预览 ​当你手里只有一个 template_id,通常最关心的是这几件事:这个模板现在是不是可用状态,哪些节点上已经有副本?模板本身保存的请求体到底是什么?如果我现在拿它创建沙箱,最终会生效什么请求?这页文档对应的就是 cubemastercli tpl info 和 cubemastercli tpl render 两条命令。先选对命令 ​你想确认什么用哪条命令模板状态、副本、版本、错误信息tpl info模板里保存的请求体tpl info --include-request模板合并后最终会生效的创建请求tpl renderCubeMaster 最终转换给 Cubelet 的请求结构tpl render可以这样记:想先看模板本身,用 tpl info想看“现在创建会传什么”,用 tpl render先看模板本身 ​查看基础信息:bashcubemastercli tpl info 模板 ID 既可以用位置参数传入(与 docker/kubectl 风格一致),也可以继续使用 --template-id,两种写法等价。查看原始 JSON:bashcubemastercli tpl info --json把模板里保存的请求体一并带出来:bashcubemastercli tpl info --json --include-request典型返回结构如下:json{ "template_id": "tpl-xxx", "instance_type": "cubebox", "status": "READY", "replicas": [ { "node_id": "node-a", "status": "READY" } ], "create_request": { "containers": [], "volumes": [], "annotations": { "cube.master.appsnapshot.template.id": "tpl-xxx" } } }其中 create_request 可以这样理解:它是模板定义里保存下来的请求体。它适合回答“这个模板最初是基于什么请求构建或提交出来的”。它不是未来每次创建沙箱都会直接使用的最终请求,因为后续用户输入还可能继续叠加合并。再看最终会生效的请求 ​只用模板做预览:bashcubemastercli tpl render --template-id --json如果你已经有自己的请求覆盖项,可以带上请求文件一起预览:bashcubemastercli tpl render -f req.json --template-id --jsontpl render 支持从请求文件读取输入;如果你同时传了 --template-id,命令行参数会覆盖文件里的模板注解。典型返回结构如下:json{ "api_request": { "annotations": { "cube.master.appsnapshot.template.id": "tpl-xxx", "cube.master.appsnapshot.template.version": "v2" } }, "merged_request": { "containers": [ { "name": "main" } ], "volumes": [ { "name": "workspace" } ], "network_type": "tap" }, "cubelet_request": { "containers": [ { "name": "main" } ], "volumes": [ { "name": "workspace" } ] } }这三层分别看什么 ​tpl render 会返回三层视图:api_request:CubeMaster 收到并解析后的请求,还没做模板解析和合并。merged_request:模板解析和请求合并完成后的结果。对大多数用户来说,这一层最值得看。cubelet_request:CubeMaster 基于合并结果生成的、最终发给 Cubelet 的请求结构。如果你时间有限,优先看 merged_request。一个最实用的排查顺序 ​如果你想弄清楚“拿这个模板创建沙箱时到底会传什么”,建议按下面顺序看:先看模板状态和副本。bashcubemastercli tpl info 如果你想确认模板本身存了什么,再看 create_request。bashcubemastercli tpl info --json --include-request再看当前真正会生效的请求预览。bashcubemastercli tpl render --template-id --json如果你的业务还会追加 labels、annotations、网络配置或其他参数,把这些内容写进 req.json,再跑一次预览。bashcubemastercli tpl render -f req.json --template-id --json这页不能替你确认什么 ​预览很有用,但它也有明确边界:它不能告诉你最终会调度到哪台节点,调度仍然是运行时决策。它不能保证某个节点在真实运行时一定会接受这个请求。它展示的是请求内容,不等于沙箱实际启动后的最终运行结果。

评论 (0)