全部产品
Search
文档中心

弹性容器实例:指定GPU规格创建Pod

更新时间:Nov 15, 2024

本文介绍如何指定ECS GPU规格创建一个ECI Pod,以及如何修改GPU驱动版本。

规格说明

GPU规格含有GPU计算卡,适用于深度学习、图像处理等场景。GPU对应的Docker镜像可以直接运行在ECI GPU实例上。实例内已预装NVIDIA显卡设备驱动,不同GPU规格支持安装的驱动和CUDA版本不同。

说明

下表中的gn8ia和gn8is目前仅支持海外等部分地域,如有需求,请联系阿里云销售人员。

规格类型

GPU规格族

驱动和CUDA版本

GPU虚拟化型实例规格族

sgn7i-vws

NVIDIA 470.161.03,CUDA 11.4

vgn7i-vws

vgn6i-vws

GPU计算型实例规格族

gn7e

  • NVIDIA 470.82.01,CUDA 11.4(默认安装)

  • NVIDIA 525.85.12,CUDA 12.0

  • NVIDIA 535.161.08,CUDA 12.2

gn7i

gn7s

gn7

gn6v

gn6e

gn6i

gn5i

gn5

gn8ia

NVIDIA 535.161.08,CUDA 12.2

gn8is

关于ECS规格的详细信息,请参见:

配置说明

您可以在Pod metadata中添加Annotation来指定GPU规格。指定GPU规格后,需要在Container的resources中添加nvidia.com/gpu字段声明容器所需的GPU资源。

重要
  • nvidia.com/gpu字段值为容器所需的GPU个数,创建GPU Pod时必须明确指定。如果没有指定该值,Pod启动后将会报错。

  • 默认情况下,多个容器可以共享使用GPU,配置时需确保单个容器内配置的GPU个数不超过指定的GPU规格所具备的GPU个数。

配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "ecs.gn6i-c4g1.xlarge,ecs.gn6i-c8g1.2xlarge"  # 指定支持的ECS GPU规格,单次最多5个。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        resources:
            limits:
              nvidia.com/gpu: "1"    # nginx容器所需的GPU个数,共享使用。
        ports:
        - containerPort: 80
      - name: busybox
        image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
        command: ["sleep"]
        args: ["999999"]
        resources:
            limits:
              nvidia.com/gpu: "1"    # busybox容器所需的GPU个数,共享使用。

默认情况下,ECI GPU实例会根据指定的GPU规格自动安装支持的驱动和CUDA版本。在一些场景中,您可能需要在不同的ECI GPU实例负载中依赖不同的驱动和CUDA版本,此时,您可以添加Annotation来指定驱动版本。例如,指定ecs.gn6i-c4g1.xlarge规格时,默认安装的驱动和CUDA版本为NVIDIA 470.82.01,CUDA 11.4,添加k8s.aliyun.com/eci-gpu-driver-version: tesla=525.85.12的Annotation后可以变更为NVIDIA 525.85.12,CUDA 12.0。YAML示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: ecs.gn6i-c4g1.xlarge      # 指定支持的GPU规格,该规格支持更换驱动版本。
        k8s.aliyun.com/eci-gpu-driver-version: tesla=525.85.12  # 指定GPU驱动版本。
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        resources:
            limits:
              nvidia.com/gpu: "1"    # 容器所需的GPU个数