本文介绍如何指定ECS GPU规格创建一个ECI Pod,以及如何修改GPU驱动版本。
规格说明
关于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个数