本文介紹如何指定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個數