跨地域调度ACS Pod

AI大模型训练和推理场景中,单地域GPU资源存在型号覆盖有限、库存波动等问题,易导致算力不足或任务等待。阿里云ACK One注册集群通过ACK Virtual Node提供的虚拟节点技术,将多地域的Serverless算力资源无缝接入Kubernetes集群,实现跨地域GPU资源的动态调度与统一管理。该方案突破地域资源瓶颈,支持按需自动获取目标地域的异构算力,解决GPU型号适配与库存限制问题,显著提升AI任务的资源利用率与业务连续性,同时降低混合云部署的复杂性和成本。

工作原理

image
  • 涉及Region信息表示数据中心要访问Serverless算力所在地域的Region ID,例如张家口地域为cn-zhangjiakou。

  • 对每个Serverless Pod,ACK Virtual Node会创建云上Serverless算力实例,无需额外维护节点。

  • 数据中心和阿里云多地域VPC使用专线互联。

前提条件

创建ACK One注册集群并接入数据中心或者其他云厂商的Kubernetes集群(建议版本为1.24及以上)。具体操作,请参见创建注册集群

安装组件并开启多地域Serverless算力调度

  1. 安装ack-virtual-node组件。

    1. ack-virtual-node组件配置RAM权限

    2. 安装ack-virtual-node组件

    说明

    若您已安装该组件,请确保组件版本为2.13.0及以上。若不满足,请及时升级组件

  2. 配置ack-virtual-node组件。

    组件管理页面中,找到ack-virtual-node组件,单击配置

    1. 配置全局参数。

      参数

      说明

      示例值

      是否使用VPC内网访问

      组件使用的镜像地址和API地址是否均采用VPC内网域名。

      勾选

      APIServerHost

      数据中心Kubernetes集群API Server地址。

      192.168.1.1

      APIServerPort

      数据中心Kubernetes集群API Server端口。

      6443

      是否启用多地域Virtual Node

      判断是否启用多地域Serverless算力。若启用,则需进行相应地域信息配置。

      勾选

    2. 配置主地域。

      参数

      说明

      示例值

      Region ID

      Serverless算力使用的地域ID。

      cn-beijing

      VPC ID

      Serverless算力使用的VPC ID。

      vpc-xxxxx

      vSwitch ID(s)

      Serverless算力使用的交换机ID,多个交换机之间使用英文半角逗号分隔。

      vsw-xxxxx,vsw-xxxxx

      SecurityGroup ID

      Serverless算力使用的安全组ID。

      sg-xxxxx

      Virtual Node 所使用的地域是否为默认地域

      使用本地域作为默认地域。

      重要

      有且仅有一个地域可作为主地域。

      勾选

    3. 配置次地域(可以配置多个)。单击右下角添加,可配置多个地域。

      参数

      说明

      示例值

      Region ID

      Serverless算力使用的地域ID。

      cn-hangzhou

      VPC ID

      Serverless算力使用的VPC ID。

      vpc-xxxxx

      vSwitch ID(s)

      Serverless算力使用的交换机ID,多个交换机之间使用英文半角逗号分隔。

      vsw-xxxxx,vsw-xxxxx

      SecurityGroup ID

      Serverless算力使用的安全组ID。

      sg-xxxxx

  3. 配置完成后,单击确定

使用示例

CPU场景

  • 使用默认地域。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-default-region
      name: nginx-deployment-default-region
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx-default-region
      template:
        metadata:
          labels:
            alibabacloud.com/acs: "true"
            alibabacloud.com/compute-class: general-purpose 
            alibabacloud.com/compute-qos: default 
            app: nginx-default-region
        spec:  
          containers:
            - image: 'mirrors-ssl.aliyuncs.com/nginx:stable-alpine'
              imagePullPolicy: IfNotPresent
              name: nginx
              ports:
                - containerPort: 80
                  protocol: TCP
  • 指定Serverless算力地域。需要添加alibabacloud.com/serverless-region-id: <RegionID> 标签。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-specified-region
      name: nginx-deployment-specified-region
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx-specified-region
      template:
        metadata:
          labels:
            alibabacloud.com/acs: "true" 
            alibabacloud.com/compute-class: general-purpose 
            alibabacloud.com/compute-qos: default 
            alibabacloud.com/serverless-region-id: cn-beijing # 通过该标签指定地域
            app: nginx-specified-region
        spec:  
          containers:
            - image: 'mirrors-ssl.aliyuncs.com/nginx:stable-alpine'
              imagePullPolicy: IfNotPresent
              name: nginx
              ports:
                - containerPort: 80
                  protocol: TCP

GPU场景

  • 使用默认地域。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-gpu-default-region
      name: nginx-gpu-deployment-default-region
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx-gpu-default-region
      template:
        metadata:
          labels:
            alibabacloud.com/acs: "true"
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # GPU卡型,请按照实际情况替换,例如T4
            app: nginx-gpu-default-region
        spec:  
          containers:
            - image: 'mirrors-ssl.aliyuncs.com/nginx:stable-alpine'
              imagePullPolicy: IfNotPresent
              name: nginx
              ports:
                - containerPort: 80
                  protocol: TCP
              resources:
                limits:
                  cpu: 1
                  memory: 1Gi
                  nvidia.com/gpu: "1"
                requests:
                  cpu: 1
                  memory: 1Gi
                  nvidia.com/gpu: "1"
  • 指定Serverless算力地域。需要添加alibabacloud.com/serverless-region-id: <RegionID> 标签。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-gpu-specified-region
      name: nginx-gpu-deployment-specified-region
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx-gpu-specified-region
      template:
        metadata:
          labels:
            alibabacloud.com/acs: "true" 
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # GPU卡型,请按照实际情况替换,例如T4
            alibabacloud.com/serverless-region-id: cn-beijing # 通过该标签指定地域
            app: nginx-gpu-specified-region
        spec:  
          containers:
            - image: 'mirrors-ssl.aliyuncs.com/nginx:stable-alpine'
              imagePullPolicy: IfNotPresent
              name: nginx
              ports:
                - containerPort: 80
                  protocol: TCP
              resources:
                limits:
                  cpu: 1
                  memory: 1Gi
                  nvidia.com/gpu: "1"
                requests:
                  cpu: 1
                  memory: 1Gi
                  nvidia.com/gpu: "1"