当您需要在PolarDB集群上运行AI/ML推理等计算密集型任务时,通常需要自行采购和维护昂贵的GPU服务器,处理复杂的驱动和环境配置,并解决应用与数据库之间的高速网络连接问题。这不仅增加了运维负担,也难以实现资源的弹性伸缩。PolarDB AI节点(VNode)为您提供了一种Serverless GPU解决方案。它通过Virtual Kubelet技术,将由PolarDB托管的GPU资源以虚拟节点的形式无缝对接到您现有的Kubernetes集群(ACK或自建K8s)。您无需管理任何底层硬件,即可像调度普通Pod一样,将AI应用部署到具备弹性、免运维的GPU资源池中,并享有与PolarDB集群之间的高速、低延迟内网访问能力,实现数据与计算的就近处理。
PolarDB AI节点(VNode)功能目前处于灰度阶段。如需使用该功能或对当前功能有任何疑问,请提交工单联系我们为您处理。
工作原理
PolarDB AI节点(VNode)本质上是Virtual Kubelet技术的一种实现,它在您的Kubernetes集群中注册一个虚拟节点。其工作流程如下:
虚拟节点注册:创建AI集群后,PolarDB会在您的目标Kubernetes集群中注册一个或多个虚拟节点(VNode)。这些节点在您的集群中可见,但其背后没有实际的物理服务器由您管理。
Pod调度:当您创建一个 Pod,并通过容忍(Toleration)和亲和性(Affinity)或节点选择器(nodeSelector)将其调度到VNode时,Kubernetes API Server会将调度请求传递给VNode。
资源置备:VNode接收到请求后,PolarDB的后端服务会实时在托管的GPU资源池中置备Pod所需的计算资源(GPU、CPU、内存)。
网络打通:Pod启动时,会通过弹性网卡(ENI)从您指定的VPC交换机中获取一个IP地址。这使得Pod成为您VPC内的一个原生网络成员,能够直接、高效地访问同一VPC内的PolarDB集群。
适用范围
在开始创建AI节点(VNode)前,请确保您的环境满足以下条件:
支持的Kubernetes集群:
ACK托管集群Pro版,且网络插件需为Terway。
阿里云上自建的Kubernetes集群。
账号与权限:
服务关键角色:需创建PolarDB服务关键角色。
RAM用户权限:若使用RAM用户操作,需确保该用户拥有对目标ACK集群的Admin权限。
KubeConfig权限:您提供的KubeConfig文件必须拥有
cluster-admin权限,以便PolarDB在您的集群中安装必要的组件。
创建并纳管AI集群
登录PolarDB控制台,在左侧导航栏单击AI集群列表进入页面,并单击创建AI新集群。
在售卖页中,配置您的AI集群。
参数
说明
付费类型
仅支持包年包月。
地域
选择与您的Kubernetes集群或自建K8s所在地域。
架构
选择AI节点。
生态
选择MySQL。
源PolarDB集群
选择您的业务数据所在的PolarDB集群,部署在AI节点上的应用将可以内网访问此集群。
扩展
选择无。
K8s集群管理方式
根据您的Kubernetes集群类型,选择自建K8s纳管或K8s纳管。
自建K8s纳管:支持阿里云上自建的Kubernetes集群,需提供内网访问的KubeConfig。
K8s纳管:支持ACK托管集群Pro版(网络插件需为Terway)与ACK Edge集群。
ACK集群名称
选择纳管AI节点的ACK集群。
说明仅K8s集群管理方式为K8s纳管时,支持选择。
KubeConfig
请提供内网访问的具有cluster-admin权限的KubeConfig。
自建K8s纳管:请自行在您自建的Kubernetes集群上获取内网访问的KubeConfig。
K8s纳管:可在集群信息页面的连接信息页签内,单击获取长期 KubeConfig按钮进行复制。
说明若使用RAM用户操作,需确保该用户拥有对目标ACK集群的Admin权限。
资源
请选择GPU规格,并按需选择节点规格与数量。
网络类型
固定专业网络。
VPC网络
默认Kubernetes集群所在VPC网络。
VPC网络与交换机
按需进行选择。AI 节点上的Pod将通过弹性网卡(ENI)从您选择的交换机获取IP地址,因此需确保K8s API Server连接端点的访问控制策略已放行所选交换机网段。
安全组
Pod挂载的弹性网卡将此关联的安全组,默认选择Kubernetes集群的安全组。
数据盘
为AI集群分配的云盘总存储配额,您可以在Pod中通过创建PVC来使用此配额。
高级选项
(可选)按需为AI节点预设污点 (Taints)和节点标签(Labels)。
创建完成后,请返回AI集群列表等待新创建的集群状态变为运行中。节点创建过程需要1-5分钟。您可以单击集群ID/名称进入详情页查看基本信息和资源用量。

在AI节点上部署AI应用
创建并纳管AI集群后,您可以将AI应用作为Pod调度到这些虚拟节点上运行。您需要编写一个Kubernetes Deployment的YAML文件,在文件中指定容器镜像、资源请求,并配置正确的调度策略(容忍和节点亲和性),以确保Pod能被正确地调度到AI节点上。
为您的应用选择合适的容器镜像。
使用预置镜像:PolarDB提供了SgLang和vLLM推理引擎容器镜像,支持在阿里云VPC环境内免密拉取。使用时,请将
{region-id}替换为您的AI节点所在的地域ID(如cn-shanghai)。vLLM:
aliclouddb-pub-registry-vpc.{region-id}.cr.aliyuncs.com/aliclouddb-public/des-ai-nv:25.05-vllm0.8.5.post1-pytorch2.7-cu128-20250513-serverlessSgLang:
aliclouddb-pub-registry-vpc.{region-id}.cr.aliyuncs.com/aliclouddb-public/des-ai-nv:25.05-sglang0.4.6.post4-pytorch2.6-cu124-20250513-serverless
使用其他镜像:您也可以使用自己的ACR镜像或公网镜像。
说明如果需要从公网拉取镜像,请确保AI节点所在交换机已开启SNAT功能以访问公网。
编写应用的部署配置,确保Pod能被正确调度到AI节点。将以下YAML内容保存为
polar-vnode-demo.yaml。--- apiVersion: apps/v1 kind: Deployment metadata: name: sample-test-deploy-test namespace: default labels: app: sample-test-deploy-test spec: replicas: 1 selector: matchLabels: app: sample-test-deploy-test strategy: type: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 25% template: metadata: labels: app: sample-test-deploy-test spec: containers: - name: demo # 将 {region-id} 替换为您的地域,例如 cn-shanghai image: aliclouddb-pub-registry-vpc.{region-id}.cr.aliyuncs.com/aliclouddb-public/des-ai-nv:25.05-vllm0.8.5.post1-pytorch2.7-cu128-20250513-serverless imagePullPolicy: IfNotPresent # 此处为示例命令,请替换为您应用的实际启动命令 command: - sleep - infinity # 声明 Pod 需要的资源,必须小于或等于您购买的单节点规格 resources: limits: nvidia.com/gpu: "2" cpu: "7" memory: "60Gi" requests: nvidia.com/gpu: "2" cpu: "7" memory: "60Gi" # 挂载共享内存,许多AI框架(如PyTorch)进行多进程通信时需要 volumeMounts: - name: shm mountPath: /dev/shm restartPolicy: Always terminationGracePeriodSeconds: 30 # --- 关键调度配置 --- tolerations: # 添加对 AI 节点固定污点的容忍,允许 Pod 调度上去 - effect: NoSchedule key: virtual-kubelet.io/provider #添加容忍调度到PolarDB Vnode节点 operator: Equal value: aliclouddb - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 300 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 300 volumes: # 定义共享内存卷 - name: shm emptyDir: medium: Memory sizeLimit: 32Gi执行以下命令,在Kubernetes集群中创建应用。
kubectl apply -f polar-vnode-demo.yaml
管理AI节点
您可以在PolarDB控制台中或通过kubectl对AI节点进行日常管理,如查看状态、调整数量等。
查看节点状态与信息
AI节点中的Vnode节点带有固定的污点(virtual-kubelet.io/provider=aliclouddb:NoSchedule),此污点不可修改和删除。调度Pod时请添加容忍 (Toleration) 。
通过PolarDB控制台:在AI集群列表页面中找到目标集群,进入详情页。在VNode管理页签内可所有节点。
通过容器服务ACK控制台:在集群列表页面中找到目标集群,在页面,可以查看AI节点信息,并进行自定义标签和污点设置等操作。
通过
kubectl:使用kubectl get nodes和kubectl describe node <node-name>查看节点的详细信息、标签和污点。
增加AI节点
当现有资源不足时,您可以向AI集群中增加节点。
使用限制
待添加节点的规格需与AI集群中已有节点的规格保持一致。
新添加的AI节点会自动继承当前AI集群已有的标签和污点设置。
操作步骤
在AI集群列表页面中找到目标集群,进入详情页。
在基本信息页签内的节点信息区域,单击增加节点。
在AI节点变配页面中,添加需要新增的节点,并确认。
删除AI节点
删除AI节点将强制删除Vnode上已调度的Pod,请谨慎操作。
在AI集群列表页面中找到目标集群,进入详情页。
在基本信息页签内的节点信息区域,单击删除节点。
在AI节点变配页面中,删除指定节点,并确认。


