ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

WorkerPool vs ActorTemplate vs SandboxConfig:Agent Substrate三大核心资源详解

WorkerPool vs ActorTemplate vs SandboxConfig:Agent Substrate三大核心资源详解 WorkerPool vs ActorTemplate vs SandboxConfigAgent Substrate三大核心资源详解【免费下载链接】substrateAgent Substrate: the core system项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrateAgent Substrate是 Google 开源的 Agent 执行底座Agent Substrate: the core system通过大集合 Actor 复用小集合 Worker实现高密度多路复用。要部署第一个 Actor你必须理解三大核心资源WorkerPool预热算力池、ActorTemplate工作负载蓝图和SandboxConfig沙箱运行时配置。本文用一张图讲清三者的分工、关联与常见坑点。一分钟搞懂三大资源各管什么用一个类比快速建立心智模型 资源作用域一句话定位类比WorkerPoolK8s 命名空间CRD声明预热的 Worker Pod 数量是物理算力酒店客房房间数ActorTemplateAtespaceAPI 资源定义某类 Agent 的镜像、快照策略不可变蓝图入住套餐房型配置SandboxConfig集群级CRD指定沙箱二进制与 pause 镜像钉住运行时版本客房硬件标准设备型号⚠️ 一个容易忽略的细节ActorTemplate严格来说不是 Kubernetes CRD而是通过 Substrate gRPC API如kubectl ate create actor-template创建、存储在控制面数据库中的资源只有WorkerPool和SandboxConfig是真正的 K8s CRD。详见 docs/glossary.md。WorkerPool预热算力绕开调度延迟Agent 应用大部分时间在等输入Agent Substrate 因此预先启动一批 Worker Pod每 Pod 内运行一个 ateom 沙箱驱动器事件到来时直接把 Actor 塞进空闲 Worker跳过 K8s 调度器把恢复延迟压到 500ms 以内。关键字段速览字段说明replicas必填。维持多少个待命 Worker PodworkerImage必填。Worker 内 ateom 容器的镜像sandboxClass可选gvisor默认或microvm决定 Pod 形态如 KVM 设备挂载template可选Labels、nodeSelector、资源限额等调度配置两个实操要点sandboxClass是硬性调度门槛——Actor 只会调度到同族的 WorkerPool 上因为快照无法跨沙箱运行时恢复template.resources.limits定义 Worker 容量——调度器只把 Actor 放到容量 ≥ Actor 声明 limits 的 Worker 上。一个 Actor 独占整个 Worker所以要把 Pool 的 limits 设成它要承载的最大 Actor 规格。类型定义见 workerpool_types.go由atecontroller将其协调为 K8sDeployment源码在 cmd/atecontroller/。ActorTemplate不可变的工作负载蓝图ActorTemplate是某类 Actor 的类定义。创建它会触发一次短暂的Golden Snapshot黄金快照流程Substrate 启动一个临时 Golden Pod 运行你的容器待进程初始化完成后打一份 Full 快照——之后所有该模板的 Actor 都从这份共享快照恢复跳过昂贵的冷启动。必填字段清单字段说明containers必填。工作负载定义镜像必须带sha256:...摘要sandboxConfig必填。sandboxClass选运行时族 configName指向集群级 SandboxConfigsnapshotsConfig必填。快照对象存储位置如gs://my-bucket/...及暂停/提交/恢复作用域volumes可选。durableDir持久卷、CSI 外部卷等gvisor 限 1 个microvm 可多个workerSelector可选。按 WorkerPool 的 labels 收窄可用池最佳实践把昂贵的初始化逻辑加载大模型、建连接放在应用 entrypoint 里它们会被 Golden Snapshot 捕获每次恢复都不用重来升级代码时创建新模板如v2不要改旧模板——每个模板都是不可变的状态根。完整字段参考 docs/api-guide.md示例可看 demos/counter/counter-template.yaml.tmpl。SandboxConfig一处钉版本处处可恢复SandboxConfig是集群级CRD把沙箱本身gVisor 的runsc二进制或 micro-VM 的 kata-kernel/cloud-hypervisor 全家桶与ActorTemplate的工作负载定义解耦。字段说明sandboxClass必填。gvisor或microvm必须与模板声明的一致pauseImage必填。沙箱根容器镜像必须带摘要快照清单会记录它恢复时原样重建沙箱assets可选。按架构amd64/arm64 资源名索引的内容寻址文件每项为{url, sha256}核心价值在于一份配置为成百上千个模板钉住沙箱运行时版本。快照清单里记录了运行时版本算法定位升级只改一处快照始终可恢复。平台自带一份gvisor-default配置见 manifests/ate-install/sandboxconfig-gvisor.yamlgVisor 模板开箱即用microVM 则需自备资产脚本 hack/microvm-assets/。类型定义见 sandboxconfig_types.go。三者如何联动一次请求的完整链路SandboxConfig集群级钉住运行时版本 ▲ │ 被 ActorTemplate.sandboxConfig 按名称引用 │ ActorTemplateAtespace 级蓝图──► Golden Snapshot ──► 每个 Actor 的起点 │ │ workerSelector sandboxClass 双重筛选 ▼ WorkerPool命名空间级算力池──► 空闲 Worker 上 500ms 内恢复 Actor请求到达时路由层atenet读取ate-target-actor: atespace/actor头找到 Actor 并恢复它到同族 WorkerPool 的空闲 Worker 上。想体验完整链路可直接跑 Counter Demohack/install-ate-kind.sh --deploy-demo-counter参考 demos/counter/README.md。新手常见坑点清单 ️坑说明解法模板与池的 sandboxClass 不匹配Actor 永远调度不上去两者保持一致workerSelector只收窄不放宽忘记给 Worker 配 limits该维度容量视为 0不约束无法精细调度按最大 Actor 规格设置template.resources.limits直接编辑 ActorTemplate模板不可变改不动创建新模板旧 Actor 迁移到新模板microvm 池跑在非嵌套虚拟化节点Pod 起不来用ate.dev/sandboxClassmicrovm污点预留节点Actor 运行超 30 分钟未 suspendWorker 被驱逐后状态丢失依赖 Suspend 节奏或 Data 作用域持久卷兜底延伸阅读官方 API 配置指南docs/api-guide.md架构总览docs/architecture.md术语表Actor / Atespace / Worker / ateom 等docs/glossary.md代码布局docs/dev/code-layout.md多模板共享单池实战demos/multi-template/README.mdHPA 自动扩缩 WorkerPooldemos/autoscaled-workerpool/README.md记住一句话WorkerPool 管有多少床ActorTemplate 管睡什么人SandboxConfig 管床是什么型号——三者对齐Agent 才能在空闲 Worker 上 500ms 内满血复活。【免费下载链接】substrateAgent Substrate: the core system项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表