随着企业在数字化转型中的进一步深化,基础设施的灵活性和扩展能力成为了关键挑战。传统的 IDC 数据中心受制于物理容量的限制,难以实现动态扩容,因而缺乏必要的弹性能力。这时,ACK One 注册集群【1】凭借分钟级快速接入,100% 兼容 Kubernetes 原生操作习惯,以及云上 Serverless 弹性因其高度的灵活性和丰富的资源选择,成为了解决这一问题的最佳方案。
然而,随着 AI 时代的来临,大模型的参数规模正以千亿量级跃进,推动训练与推理的算力需求指数级增长。对传统数据中心用户而言,通过 ACK One 注册集云上 Serverless 弹性,虽能应对常规业务需求,却在 AI 时代暴显得捉襟见肘。具体的表现如下:
- GPU 卡型差异:GPU 卡型在不同地域覆盖上存在一定的差异。
- GPU 库存波动:单地域 GPU 资源由于库存缘故存在波动,极端情况可能导致短期无法购买到相应的资源。
在 AI 推理场景中,高并发请求的实时响应、突发流量的弹性承载以及模型版本的快速迭代,对于算力的供给效率提出了更高的要求。而传统单地域算力所面临的问题难以支撑高可用的推理服务需求,严重制约企业 AI 服务的商业化落地速度。
针对这一行业性的挑战,阿里云基于容器服务 ACK One 注册集群推出多地域 Serverless 算力调度解决方案。该方案以"实现无限算力供给"为核心,为企业构建跨地域的弹性算力供给,助力企业实现AI推理服务的规模化、低延迟、高性价比部署,抢占生成式 AI 时代的商业化先机。
快速接入
- 登录阿里云容器服务控制台【2】,根据提示开通容器服务。
- 登录容器计算服务控制台【3】,根据提示开通 ACS 服务。
- 创建 ACK One 注册集群并接入数据中心或者其他云厂商的 Kubernetes 集群(建议版本为 1.24 及以上)。具体操作,请参见创建 ACK One 注册集群并接入目标集群【4】。
- 安装 ACK Virtual Node 组件。具体操作,请参考 ACK One 注册集群使用 Serverless 算力【5】。
示例
说明:
- ACK One 注册集群使用 ACS GPU 算力,请提交工单【6】申请。
- 关于 ACS 的算力类型和算力质量,请参见计算类型与算力质量的对应关系【7】。
- 关于 gpu-model-series 的可选卡型,请参见 GPU 型号说明【8】。
指定地域调度
在默认情况下,如果我们需要将业的 Serverless 算力调度到指定的地域,可以在业务应用的定义中添加标签 alibabacloud.com/serverless-region-id: 来实现。如下:
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: <RegionID> # 通过该标签指定地域,若不指定会使用默认地域 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"
使用ack-co-scheduler调度器动态调度
在自定地域调度的示例中,是通过为业务应用设置标签 alibabacloud.com/serverless-region-id: 来实现将业务应用调度到指定地域的 Serverless 算力。
然而,这种方式存在一定的限制和缺少灵活性。为了解决该问题,我们可以借助于阿里云 ack-co-scheduler 调度器的 ResourcePolicy 策略实现动态调度,不仅满足业务的诉求,也降低业务负载配置的复杂度。
下面我们通过一个当某地域资源不足的时候,自动调度到其他地域的示例。调度器通过 spec.selector 字段,选中带有标签 app: nginx-gpu-resourcepolicy 的业务应用,并且根据 spec.units 中定义的调度策略进行调度。如下:
- 调度策略定义
apiVersion: scheduling.alibabacloud.com/v1alpha1 kind: ResourcePolicy metadata: name: multi-vk-gpu-resourcepolicy namespace: default spec: selector: # 在selector中标记Pod,表示带有app=nginx-gpu-resourcepolicy标签的Pod将遵循此调度策略 app: nginx-gpu-resourcepolicy units: # 优先使用该地域的资源,当该地域资源不足时候,自动切换到其他地域 - resource: acs # resource类型指定为acs nodeSelector: # 支持通过nodeSelector指定虚拟节点地域 topology.kubernetes.io/region: <RegionID> type: virtual-kubelet podLabels: alibabacloud.com/serverless-region-id: <RegionID> alibabacloud.com/compute-class: gpu alibabacloud.com/compute-qos: default alibabacloud.com/gpu-model-series: example-model # GPU卡型,请按照实际情况替换 - resource: acs nodeSelector: # 支持通过nodeSelector指定虚拟节点地域 topology.kubernetes.io/region: <RegionID> type: virtual-kubelet podLabels: alibabacloud.com/serverless-region-id: <RegionID> alibabacloud.com/compute-class: gpu alibabacloud.com/compute-qos: default alibabacloud.com/gpu-model-series: example-model # GPU卡型,请按照实际情况替换
说明:
- spec.selector 表示带有 app=nginx-gpu-resourcepolicy 标签的 Pod 将遵循此调度策略。
- spec.units
- resource: acs 表示指定的资源类型为 acs。
- nodeSelector:表示通过 nodeSelector 指定业务应用要被调度到的节点。
- podLabels:表示调度器会为带有 spec.selector 标签的 pod 追加指定的标签。
apiVersion: apps/v1 kind: Deployment metadata: labels: app: nginx-gpu-resourcepolicy name: nginx-gpu-deployment-resourcepolicy namespace: default spec: replicas: 1 selector: matchLabels: app: nginx-gpu-resourcepolicy template: metadata: labels: app: nginx-gpu-resourcepolicy spec: schedulerName: ack-co-scheduler 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"
总结
阿里云 ACK One 注册集群多地域 Serverless 算力调度解决方案,为数据中心客户提供“无边界”的 AI 算力供给能力。无论是应对千卡级训练的资源洪峰,还是实现推理的多地域覆盖,都足以轻松应对。
本文作为 ACK One 注册集群多地域 Serverless 算力调度的开篇之作,后续还会有多地域场景下如何实现镜像和存储加速等场景,敬请期待。
欢迎通过钉钉扫描下方二维码或搜索钉钉群号加入 ACK One 客户交流钉钉与我们一同交流。(钉钉群号:35688562)
【1】ACK One注册集群
【2】阿里云容器服务控制台
【3】容器计算服务控制台
【4】创建ACK One注册集群并接入目标集群
【5】ACK One注册集群使用Serverless算力
【6】提交工单
【7】计算类型与算力质量的对应关系
【8】GPU型号说明
https://help.aliyun.com/zh/cs/user-guide/pod-gpu-model-and-driver-version#88ca12b4c291k