このトピックでは、GPU アクセラレーション Elastic Compute Service (ECS) インスタンスタイプを指定して Elastic Container Instance (ECI) Pod を作成する方法について説明します。
サポートされているインスタンスタイプファミリー
ECS インスタンスタイプファミリーの詳細については、以下のトピックをご参照ください。
構成
Pod の構成ファイルのメタデータに k8s.aliyun.com/eci-use-specs アノテーションを追加して、GPU アクセラレーション ECS インスタンスタイプを指定できます。 GPU アクセラレーション ECS インスタンスタイプを指定した後、nvidia.com/gpu フィールドを containers.resources セクションに追加して、コンテナーに割り当てる GPU の数を指定する必要があります。
nvidia.com/gpuフィールドの値は、コンテナーに割り当てる GPU の数を指定します。 GPU アクセラレーション Pod を作成するときは、このフィールドを指定する必要があります。 このフィールドを指定しないと、Pod の起動時にエラーが返されます。デフォルトでは、エラスティックコンテナインスタンス内の複数のコンテナーが GPU を共有できます。 1 つのコンテナーに割り当てる GPU の数が、指定した GPU アクセラレーション ECS インスタンスタイプが提供する 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" # 一度に最大 5 つの GPU アクセラレーション ECS インスタンスタイプを指定できます。
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 は共有されます。
デフォルトでは、GPU アクセラレーション エラスティックコンテナインスタンスは、指定された GPU アクセラレーション ECS インスタンスタイプに基づいて、サポートされているドライバーと CUDA のバージョンを自動的にインストールします。 シナリオによっては、GPU アクセラレーション エラスティックコンテナインスタンスごとに異なるドライバーと CUDA のバージョンを使用する必要がある場合があります。 この場合、k8s.aliyun.com/eci-gpu-driver-version アノテーションを追加してドライバーのバージョンを指定できます。 たとえば、ecs.gn6i-c4g1.xlarge を GPU アクセラレーション ECS インスタンスタイプとして指定した場合、インストールされるデフォルトのドライバーと CUDA のバージョンは Tesla 470 および CUDA 11.4 です。 k8s.aliyun.com/eci-gpu-driver-version: tesla=535 アノテーションを追加すると、インストールされるドライバーと CUDA のバージョンは Tesla 535 および CUDA 12.2 に変更されます。 次のコードは、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 アクセラレーション ECS インスタンスタイプを指定します。これらのインスタンスタイプは、ドライバーバージョンの変更をサポートしています。
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 の数。