帮你快速理解、总结文档立即下载
文档中心>Agent Runtime>Agent 集群>产品介绍>Agent 集群与普通 TKE 集群的使用差异

Agent 集群与普通 TKE 集群的使用差异

最近更新时间:2026-10-12 16:42:01
我的收藏
已经使用 TKE 的团队,可以继续沿用 Kubernetes 的工作负载声明、镜像发布和日常排障方式。使用 Agent 集群时,主要变化在于如何准备 Agent 运行环境、选择沙箱运行时,以及保存和复用工作文件。
本文中的“普通 TKE 集群”指用于通用容器应用的 TKE 集群。TKE 本身也可以部署 Agent 应用;Agent 集群基于 TKE,进一步集成面向代码执行、工具调用和工作区使用的能力。选择时应结合业务需要,而不是仅看应用是否使用大模型。

使用方式对比

使用环节
普通 TKE 集群
Agent 集群
创建入口
在 TKE 控制台创建集群并配置节点池。
从 Agent Runtime 控制台创建 Agent 集群,再准备节点池。内测期间仅支持新建,不能直接纳管已有 TKE 集群。
工作负载管理
使用 Pod、Deployment、Job 等 Kubernetes 资源部署应用。
继续使用 Kubernetes 资源和访问工具;使用沙箱能力时,需要匹配相应运行时和节点条件。
执行环境
根据应用和节点配置选择运行环境。
可使用 Cube 沙箱运行时执行 Agent 代码与工具任务;需要核对 RuntimeClass、镜像架构和节点是否就绪。
工作文件
根据需求选择 CBS、CFS 等存储,通过 PVC 挂载到应用。
AgentWorkspaces 随集群创建默认安装;仍需为业务创建工作区并配置挂载,文件不会自动转入工作区。
镜像启动加速
根据集群和镜像条件配置相应加速方案。
可在创建 Agent 集群时开启镜像加速并关联 TCR;配置镜像转换规则后,业务继续使用源镜像地址。
资源优化
根据节点与业务条件配置容量、伸缩及其他优化能力。
可结合支持的原生节点使用内存压缩、节点放大等能力;需要单独配置并验证业务影响。
费用
按实际使用的 TKE 及相关云资源计费项目计算。
内测期间免收 AGC 服务费,计算、存储和网络等资源仍独立计费;详细规则见资源与费用说明。
TKE 的资源对象和存储使用方式可参见 基本资源对象、使用 CBS PVC 和 使用 CFS PVC。

AgentWorkspaces 相比常用 Kubernetes 存储有什么优势

对于反复读取代码、安装依赖、生成文件的 Agent,存储不仅要“文件不丢”,还要减少每轮任务重新准备工作目录的时间。AgentWorkspaces 通过节点本地缓存承接活跃工作文件,再将变化的数据提交到 COS,使同一工作区的重复访问更多在节点本地完成。

技术原理:本地处理活跃数据,远端保存持久数据

AgentWorkspaces 将 Btrfs 文件系统、节点本地块缓存和 COS 持久层组合成工作区:
1. 读取文件:应用通过挂载目录访问 Btrfs 文件系统,底层通过 NBD 块设备访问工作区数据。命中节点本地块缓存时,从本地读取;未命中时再读取远端数据并进入缓存。收益主要来自减少重复读取时的远端访问。
2. 写入文件:修改进入本地脏块路径,再通过后台增量提交持久化到 COS。增量提交避免每次都重新上传整个工作区,但应用写调用返回和数据已可跨节点恢复是两个时刻。
3. 压缩数据:Btrfs 透明压缩可以减少可压缩文件实际占用和读取的块数。文本、代码等数据可能受益,压缩包、图片等已压缩数据的收益通常较小,并且压缩本身需要 CPU。
4. 重建实例:同节点重建优先复用本地工作区运行环境和缓存。跨节点恢复使用已安全提交到远端的数据,目标节点的冷缓存仍需重新建立。
因此,AgentWorkspaces 更适合“一个工作区反复使用、工作集具有局部性”的任务。节点本地缓存不是备份;停止或迁移前仍需确认数据完成远端持久化。

不同存储路径对业务的影响

维度
CBS 云硬盘
CFS 文件存储
AgentWorkspaces
访问路径
应用经文件系统访问云硬盘块设备,性能与云盘规格及缓存有关。
应用经网络文件系统访问共享文件,性能与服务规格、网络和缓存有关。
应用经文件系统访问工作区块设备;热数据优先命中节点本地块缓存,COS 承接远端持久化。
典型需求
持久块存储,按应用选择容量、IOPS 和吞吐规格。
多节点共享文件目录。
为用户或任务保留独立工作区,反复读写代码、资料和结果。
实例重建
可挂载原卷;跨节点需满足卷的挂载与拓扑条件。
可重新挂载原共享目录。
同节点可复用原工作区及本地缓存,减少重复准备工作文件。
节点切换
需考虑卷卸载、挂载和可用区等条件。
需考虑目标节点网络及挂载条件。
需等待旧写入方退出、数据安全提交,再在目标节点恢复;不能将同节点热缓存速度套用到跨节点恢复。
选择重点
云盘规格、持久写入要求和访问模式。
共享访问、并发读写及文件系统语义。
工作集缓存命中、文件复用和持久化交接;本文采用单写入方使用方式。

Cube 运行时相比普通容器运行时有什么优势

本文以普通 TKE 中常见的 containerd 配合 runc 为对照。containerd 负责容器生命周期管理,runc 执行容器;使用 Cube 后仍沿用 Kubernetes 和 containerd 接入,由 Cube 为 Pod 提供独立沙箱。Kubernetes 本身并不限定只能使用某一种运行时。

隔离原理:每个 Pod 使用独立 Guest 内核

普通 runc 容器通过 Linux namespace、cgroup 等机制隔离进程和限制资源,仍共享宿主机内核。Cube 为每个 Pod 创建独立虚拟机和 Guest 内核,Pod 内的初始化容器、业务容器和 sidecar 共用该沙箱,不同 Pod 使用不同沙箱。
对于执行模型生成代码、第三方脚本或用户工具的 Agent,这增加了虚拟化隔离边界:业务代码的系统调用在 Guest 内核中处理,减少直接依赖宿主机共享内核进行隔离的范围。同一 Pod 内的容器仍属于同一沙箱,不能把它们当作彼此独立的安全域;不同信任来源的任务应分配到不同 Pod。

启动原理:复用已初始化的沙箱模板

如果每次创建虚拟机都从头启动 Guest 系统和内部服务,会增加短任务的准备开销。Cube 的模板快路径复用已初始化的基础 Guest 状态:
1. 根据所需 CPU、内存及 Guest 版本查找节点上匹配的就绪模板。
2. 命中后从模板恢复独立虚拟机,减少重复启动 Guest 内核、内部 Agent 服务及部分网络设备初始化的工作。
3. 为本次 Pod 配置独立身份和网络,再创建业务容器、挂载工作区并执行应用命令。
4. 没有匹配模板时走冷启动,并异步准备后续可复用的模板。新节点、规格变化或 Guest 版本变化都可能首次未命中。
模板保存的是基础沙箱状态,不包含本次业务镜像、Secret、工作区和已初始化的 Python 或模型进程。镜像预热、镜像加速、工作区复用和应用初始化优化仍各自发挥作用。

客户可以获得什么收益

维度
普通容器运行时(runc)
Cube 沙箱运行时
执行不可信代码
主要依赖共享内核上的容器隔离与安全策略。
每 Pod 独立 Guest 内核,增加虚拟化隔离边界,适合需要隔离执行的 Agent 工具和代码任务。
短任务启动
无需为每个 Pod 启动独立 Guest 内核,普通容器启动路径较轻。
通过预初始化模板减少独立沙箱的重复启动开销,使隔离环境更适合频繁创建和回收。
批量任务
沿用 Kubernetes 调度和容器生命周期。
同样沿用 Kubernetes;模板命中可减少每个沙箱重复初始化,但仍受 API、调度、镜像、网络和节点容量影响。
应用接入
使用标准 Pod、Job、Deployment 及容器镜像。
沿用这些资源,通过 RuntimeClass 选择 Cube,同时核对宿主机依赖和运行时兼容性。
Cube 的启动优化主要解决“采用独立沙箱隔离后,如何减少环境准备开销”。接入时可先将需要执行不可信代码的任务放到 Cube,按相同镜像、节点规格、并发数和缓存条件分别测量 API 提交、沙箱创建、Pod Ready 和首次业务结果。

调用 Kubernetes API 有哪些差异

已有平台通过 Kubernetes API 创建和管理任务时,可以继续使用 kubectl、client-go 或 Kubernetes Python SDK。连接新 Agent 集群的 API Server,使用该集群的 kubeconfig 和访问权限;无需为了创建 Cube Pod 把请求改发到 Cube API 或 AgentWay API。

调用方式与请求内容

调用环节
可以沿用的方式
连接与认证
使用 Kubernetes 客户端、TLS 和集群身份认证。
创建任务
Pod 仍使用 POST /api/v1/namespaces/{namespace}/pods;Job 仍使用 POST /apis/batch/v1/namespaces/{namespace}/jobs。
查询与等待
沿用 Get、List、Watch 和 Pod / Job 状态字段。
日志与命令执行
沿用 kubectl logs、kubectl exec 及 Kubernetes 客户端对应能力。
资源与调度
沿用 requests、limits、节点选择、亲和性和污点容忍配置。
文件持久化
沿用 PVC、volumes 和 volumeMounts。
删除任务
沿用删除 Pod、Deployment 或 Job 的 API。
运行时字段的位置示例如下。这是已有清单的局部修改,不是完整可提交的资源清单:
# Pod
spec:
runtimeClassName: cube
# Deployment 或 Job
spec:
template:
spec:
runtimeClassName: cube

Pod 配置不能直接照搬的情况

使用 Cube 时,容器运行在沙箱环境中。标准 API 接受字段,并不等于所选运行时支持该字段对应的所有行为。
宿主机命名空间:当前实现拒绝 hostNetwork: true、hostPID: true 和 hostIPC: true。需要这些能力的节点代理或运维组件应单独评估运行环境,不能直接把 RuntimeClass 改为 Cube。
特权和宿主机依赖:privileged 需要运行时配置允许,同时满足集群安全策略。沙箱内的特权不能视为物理宿主机权限;访问宿主机设备、内核或目录的程序需要专项验证。
建议先使用原有任务完成“创建、等待、执行、读取结果、删除”的完整流程,再验证探针、重启、工作区接续和异常退出。服务端 dry-run 只能检查 API 校验和准入,不能代替实际启动测试。

已有 TKE 应用需要改哪些配置

工作负载与运行时

已有镜像、启动命令和资源声明可以作为接入起点。先选取一个典型任务,核对以下配置,再扩大部署范围:
集群访问配置:为新 Agent 集群取得对应的 kubeconfig,确认当前操作的集群和命名空间。
运行时选择:使用 Cube 时填写目标集群实际提供的 RuntimeClass,并确认任务能调度到具备该运行环境的节点。不要将“成功提交 Pod”视为已经使用沙箱运行时。
依赖与权限:核对镜像架构、设备依赖、宿主机访问、特权配置及挂载方式。依赖宿主机能力的应用不能仅修改 RuntimeClass 后就假定可以运行。
发布配置:重新检查节点标签、污点容忍、配额、Secret 和 ServiceAccount。原集群的配置与权限不会自动成为新集群的配置。

工作区与数据

普通 TKE 应用可以通过持久卷保留数据,Agent 集群的 AgentWorkspaces 也通过 PVC 与容器挂载路径供业务使用。对应用而言,关键是把需要保留的文件写入已挂载的目录,而不是容器临时目录。
使用 AgentWorkspaces 时:
1. 为用户、项目或任务创建独立工作区,并设置合适容量。
2. 将工作区挂载到应用实际读写的目录,例如 /workspace。
3. 重建 Agent 时保留原 PVC,让新实例继续使用同一工作区。
4. 核对旧文件内容和新写入结果,确认可以继续工作。
已有 CBS、CFS 或容器目录中的数据不会自动迁移。需要切换存储时,应单独安排复制、停止写入、切换挂载和内容校验,完成验证前保留原数据。
工作区保存文件及应用主动写入的任务进度,不自动恢复进程内存、对话历史或外部系统状态。跨节点接续还需确认数据完成远端持久化、旧实例释放挂载。具体示例请参见 实践:重建 Agent 后继续处理工作文件。

默认提供与按需配置的区别

能力
使用前还需要做什么
AgentWorkspaces
随创建集群默认安装;为业务创建 PVC、挂载目录并定义保留和清理方式。
Cube 沙箱运行环境
准备匹配的节点配置,核对实际 RuntimeClass,并运行任务验证。
镜像加速
创建集群时选择开启及 TCR 实例,配置转换规则,等待镜像转换完成并验证实际命中。
内存压缩、节点放大
在支持的原生节点环境中分别配置,小范围验证延迟、资源压力和失败率后再扩大范围。
上述能力各自解决不同问题。工作区复用不会省去模型初始化,镜像加速不会自动加速所有业务文件读取,节点放大也不会增加节点的物理 CPU 和内存。评估效果时应使用相同任务和资源条件,测量从提交到任务可执行、首次业务结果返回的完整时间。

建议的接入顺序

1. 在 Agent Runtime 控制台新建测试集群及节点池,保留原 TKE 业务正常运行。
2. 选择一个依赖明确、数据可复制的 Agent 任务,核对镜像、运行时、权限和网络。
3. 配置工作区,验证文件写入、实例重建和任务接续。
4. 按需启用镜像加速等能力,比较相同条件下的启动与任务完成时间。
5. 验证失败排查、任务重试、资源释放和数据保留,再逐步迁移更多任务。
集群状态正常或 Pod 就绪,只能证明相应资源状态满足条件。正式迁移前,还应让 Agent 完成真实工具调用并核对业务结果。

排障与清理有哪些不同

原有的 Pod 事件、容器日志和资源状态仍是排障起点。Agent 任务出现问题时,还需按现象区分运行时启动、工作区挂载、模型连接和工具权限,避免将它们都归因于“Agent 启动慢”。常见处理方式请参见 常见故障排查。
删除运行实例、删除工作区和删除整个集群是不同操作。需要后续接续任务时保留原工作区;退出使用前先导出结果、迁移所需数据,再核对节点、存储、网络和其他计费资源的释放情况。