Tair KVCache 提供 GPU 虚拟集群(vCluster)和虚拟节点(vNode),可供您自建的 Kubernetes 集群或阿里云 ACK 托管集群纳管。本文介绍如何在 ACK 托管集群中创建和管理 Tair 虚拟节点(vNode),并演示如何将应用 Pod 调度至 vNode,以实现高效的 Pod 调度与容器化应用部署。
产品概述
Tair KVCache 虚拟节点(vNode)是一种基于虚拟化技术的 GPU 资源形态。它将物理 GPU 节点虚拟化为多个独立的 vNode,每个 vNode 作为一个虚拟的 Kubernetes 节点加入到您的 ACK 集群中。您可以在 vNode 上像使用普通节点一样调度和管理 Pod,从而实现 GPU 资源的弹性供给、降本增效和统一管理。
其核心架构如下:

前提条件
在创建 Tair 虚拟节点前,请确保您已完成以下准备工作:
准备ACK托管集群Pro版
您需要一个 ACK 托管集群Pro版,用于纳管虚拟节点。如果您还没有符合要求的集群,请先创建。
登录容器服务ACK控制台,单击创建ACK集群。创建时请注意:
版本类型必须为 ACK托管集群Pro版。
网络插件请选择 Terway 模式。
创建集群时无需创建节点池。
创建完成后,请在集群基本信息页面获取并记录集群ID。

开通Tair虚拟集群(vCluster)
虚拟节点(vNode)需要归属于一个虚拟集群(vCluster)。
登录 Tair KVCache 实例控制台,单击创建虚拟集群,根据界面提示完成创建。

创建成功后,您可以在列表中看到虚拟集群实例,并记录其虚拟集群实例ID(vkName),后续创建虚拟节点时需要使用。

操作步骤
步骤一:创建虚拟节点(vNode)
您可以通过控制台或 OpenAPI 两种方式创建虚拟节点。
方式一:通过控制台创建
在 Tair KVCache 实例控制台 的虚拟集群列表页面,找到目标虚拟集群,单击操作列的新建虚拟节点。
在 Tair KVCache 购买页面,配置虚拟节点参数。

关键参数说明:
虚拟集群:选择已创建的虚拟集群实例ID。
算力单元规格:选择所需的 GPU 规格,例如:kvcache.cu.g4a.8。更多规格参见Tair KVCache实例规格表。


确认配置并完成支付。
方式二:通过OpenAPI创建
您也可以调用 CreateTairKVCacheVNode 接口创建虚拟节点。
请求示例:
{
"RegionId": "cn-beijing",
"ZoneId": "cn-beijing-l",
"InstanceClass": "kvcache.cu.g4b.4",
"ComputeUnitNum": "1",
"VkName": "tk-xxxx",
"ChargeType": "PrePaid",
"Period": "1"
}参数说明:
VkName:指定虚拟节点所属的虚拟集群实例ID。InstanceClass:指定算力单元规格。ChargeType:计费方式。取值说明:PrePaid表示包年包月,PostPaid表示按量付费。
步骤二:验证节点纳管
虚拟节点创建成功后,会自动注册到您指定的 ACK 集群中。您可以登录 ACK 控制台进行验证。
登录容器服务ACK管理控制台,进入集群列表。
单击目标集群名称,在左侧导航栏选择节点管理 > 节点。
在节点列表中,您可以看到新创建的虚拟节点。

(可选)您可以通过 Workbench 连接到集群,执行
kubectl get nodes命令,进一步确认节点状态。在集群信息页面,单击通过Workbench管理集群,然后在终端中执行命令。

步骤三:调度Pod至虚拟节点
为了确保您的应用 Pod 能够被正确调度到 Tair 虚拟节点上,您需要在 Pod 的 YAML 配置中添加相关配置。
在 ACK 集群的工作负载 > 容器组页面,单击使用YAML创建资源。
在模板中输入以下内容,并根据您的实际需求修改配置信息,然后单击创建。
# Kubernetes Pod 配置模板 # 注意:以下注释中标注 [必填] 的字段需要用户根据实际情况修改 # 标注 [可选] 的字段可根据需求调整,不修改则使用默认值 apiVersion: v1 kind: Pod metadata: name: test-qwen # [必填] Pod名称,需保证在namespace内唯一 namespace: default # [可选] 命名空间,默认default,如需隔离可改为自定义namespace spec: containers: - command: - /bin/sh - -c - sleep 360000 # [可选] 容器启动命令,当前为保持容器运行,实际部署应替换为服务启动命令 env: - name: HEAD_ADDRESS valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP # [可选] 环境变量配置,当前获取Pod IP,可根据需求添加其他环境变量 image: mirrors-ssl.aliyuncs.com/lmsysorg/sglang:v0.4.4.post1-cu125 # [必填] 容器镜像地址,需替换为实际使用的镜像 imagePullPolicy: IfNotPresent # [可选] 镜像拉取策略,IfNotPresent表示本地存在则不拉取 name: qwen # [必填] 容器名称,需保证在Pod内唯一 ports: - containerPort: 8000 # [必填] 容器暴露端口 protocol: TCP resources: limits: cpu: "20" # [必填] CPU资源上限,根据需求调整 memory: "200Gi" # [必填] 内存资源上限,根据需求调整 nvidia.com/gpu: "2" # [必填] GPU资源上限,根据需求调整 requests: cpu: "20" # [必填] CPU资源请求,通常与limits一致 memory: "200Gi" # [必填] 内存资源请求,通常与limits一致 nvidia.com/gpu: "2" # [必填] GPU资源请求,通常与limits一致 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File # 以下配置用于虚拟节点调度 dnsPolicy: ClusterFirst enableServiceLinks: true nodeSelector: alibabacloud.com/virtual-node: "true" preemptionPolicy: PreemptLowerPriority priority: 0 restartPolicy: Always # [可选] 重启策略,Always表示容器退出后总是重启 schedulerName: default-scheduler securityContext: {} serviceAccount: default serviceAccountName: default terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule key: virtual-kubelet.io/provider operator: Equal value: aliclouddb
为方便使用大模型的用户,我们提供了预置 SgLang 和 vLLM 环境的容器镜像,详情请参见容器系列镜像列表。您也可以使用自有镜像仓库中的镜像。
后续操作
使用KVCache缓存服务
虚拟节点内的应用如果需要使用 KVCache 缓存服务,目前需要通过技术支持进行开通。控制台自助服务功能待上线,如有需求,请您提交工单联系我们。
相关API
API | 描述 |
创建Tair vNode虚拟节点实例 |



