核心概念
资源关系
下图展示了 OpenKruise Agents 各 CRD 之间的关联关系:
Sandbox
Sandbox 是 OpenKruise Agents 的核心 CRD。它负责管理沙箱实例的生命周期,并提供包括暂停(Pause)、恢复(Resume)、检查点(Checkpoint)、克隆(Clone)以及原地升级在内的高级功能。
SandboxSet
SandboxSet 是用于管理 Sandbox 的工作负载。其功能类似于管理 Pod 的 ReplicaSet。它通过预热沙箱实例池,实现了沙箱的亚秒级启动。SandboxSet 专为扩缩容性能进行了优化,能够在沙箱被消耗时快速进行补充。
SandboxClaim
SandboxClaim 是从 SandboxSet 中申请(Claim)一个未使用 Sandbox 的请求。一旦某个 Sandbox 被申请,它将不再对其他申请请求可用,并将经历一系列后处理流程,包括原地更新和动态存储挂载。
SandboxTemplate
SandboxTemplate 是一种不可变资源,代表沙箱模板的一个修订版本。如果 SandboxSet 的模板正在发生变更,它可能会包含多个 SandboxTemplate。
Checkpoint
Checkpoint 是沙箱中间状态(可能包括内存、根文件系统等)的快照。检查点可以从正在运行的 Sandbox 中创建,并可用于克隆多个沙箱。检查点与创建它的 Sandbox 所属的 SandboxTemplate 相关联。
Commit
Commit 将正在运行的 Sandbox 容器的可写文件系统层保存为一个新的容器镜像,并推送到镜像仓库。与 Checkpoint(为暂停/恢复和克隆工作流捕获运行时状态)不同,Commit 产出的是一个普通容器镜像,任何兼容的容器运行时都可以拉取,也可以被未来的沙箱模板引用。Commit 是由 Commit 特性门控(Feature Gate)控制的 Alpha 特性。参见 Commit 沙箱镜像。
SandboxUpdateOps
SandboxUpdateOps 用于对已被申请(Claim)、正在运行中的 Sandbox 执行批量升级。它通过标签选择器(Label Selector)选中目标 Sandbox,并对每个 Sandbox 应用 Strategic Merge Patch(或引用某个 SandboxTemplate 修订版本),还可以选择配置升级前/升级后生命周期钩子。参见 升级沙箱。
PoolAutoscaler
PoolAutoscaler 通过改写 SandboxSet 的 spec.replicas 来自动调整预热池的规模。当未被申请的 Sandbox 数量不足时补充池容量(容量策略),在空闲实例过多时缩减池规模,并能针对已知高峰提前预热(Cron 策略)。在同一命名空间内,一个 SandboxSet 最多只能由一个 PoolAutoscaler 管理。参见 预热池自动扩缩容。
TrafficPolicy
TrafficPolicy 为通过标签选中的 Pod(包括 Sandbox Pod)定义 L3/L4 层的入向(Ingress)与出向(Egress)流量规则。每个方向持有一组有序的 allow/reject 规则;规则通过通信对端(CIDR、FQDN、Kubernetes Service 或工作负载选择器)以及协议/端口组合进行匹配,首条匹配的规则生效。当多个策略选中同一个 Pod 时,由 spec.priority 决定评估顺序。GlobalTrafficPolicy 是其集群级(Cluster-scoped)对应资源,作用于所有命名空间。
SecurityProfile
SecurityProfile 为通过标签选中的 Pod 定义 L7 层安全策略。其有序规则链可匹配 HTTP 请求(主机、路径、方法、请求头、查询参数)以及 MCP 工具调用,并支持阻断请求、跳过后续规则、操作请求头、通过令牌转换(Token Transformation)注入或改写凭据、执行 MCP 工具允许/拒绝规则,以及向 Webhook 异步发送审计事件。多个 Profile 按 spec.priority 顺序评估,所有匹配 Profile 的规则会合并执行。GlobalSecurityProfile 是其集群级(Cluster-scoped)对应资源,作用于所有命名空间。