特定の Elastic Compute Service (ECS) GPU インスタンスタイプを持つ Elastic Container Instance (ECI) Pod を作成し、GPU ドライバーバージョンを変更する方法について説明します。
インスタンスの仕様
ECS インスタンスタイプに関する詳細については、次のトピックをご参照ください。
構成
GPU インスタンスタイプを指定するには、Pod メタデータに k8s.aliyun.com/eci-use-specs アノテーションを追加します。インスタンスタイプを指定した後、resources.limits の下の nvidia.com/gpu フィールドを追加して、各コンテナに必要な GPU リソースを宣言する必要があります。
-
nvidia.com/gpuフィールドは、コンテナに必要な GPU の数を指定します。GPU Pod を作成する際にこの値を設定する必要があります。設定しない場合、Pod は起動に失敗します。 -
デフォルトでは、複数のコンテナで GPU を共有できます。Pod を構成する際は、単一のコンテナの 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 の数。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 の数。GPU はデフォルトで共有されます。
デフォルトでは、ECI は指定された GPU アクセラレーテッドインスタンスタイプに基づいて、サポートされているドライバーと CUDA バージョンを自動的にインストールします。ワークロードで特定のドライバーと CUDA バージョンが必要な場合は、k8s.aliyun.com/eci-gpu-driver-version アノテーションを使用してそれを指定します。
たとえば、ecs.gn6i-c4g1.xlarge インスタンスタイプを指定すると、システムはデフォルトで CUDA 12.4 の Tesla 550 ドライバーをインストールします。k8s.aliyun.com/eci-gpu-driver-version: tesla=535 アノテーションを追加することで、CUDA 12.2 の Tesla 535 ドライバーに切り替えることができます。以下は 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=535 # GPU ドライバーバージョンを指定します。
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
resources:
limits:
nvidia.com/gpu: "1" # コンテナに必要な GPU の数。