Amazon EKS
ユーザーガイド

Amazon EKS GPU 対応最適化 AMI

Amazon EKSGPU 対応最適化 AMI はスタンダードな Amazon EKS 最適化 AMI 上に構築されており、GPU ワークロードをサポートするための Amazon EKS ワーカーノードのオプションイメージとして機能するよう構成されています。

スタンダードな Amazon EKS 最適化 AMI に加えて、GPU 対応の AMI には、以下が含まれています。

  • NVIDIA ドライバー

  • nvidia-docker2 パッケージ

  • nvidia-container-runtime (デフォルトのランタイム)

最新の Amazon EKS 最適化 AMI (GPU 対応あり) の AMI ID を次の表に示します。

注記

Amazon EKS 最適化 AMI (GPU 対応) では、P2 および P3 のインスタンスタイプのみサポートしています。これらのインスタンスタイプは必ず、ワーカーノードの AWS CloudFormation テンプレートで指定してください。GPU 対応の Amazon EKS 最適化 AMI を使用することで、NVIDIA のエンドユーザーライセンス契約 (EULA) に同意したものとみなされます。

リージョン Amazon EKS 最適化 AMI (GPU 対応)
米国西部 (オレゴン) (us-west-2)
米国東部 (バージニア北部) (us-east-1)
米国東部 (オハイオ) (us-east-2)
欧州 (アイルランド) (eu-west-1)

* GPU インスタンスタイプは、アジアパシフィック (香港) (ap-east-1) リージョンでは利用できないため、そのリージョンで Amazon EKS は Amazon EKS 最適化 AMI (GPU 対応) を公開しません。

重要

これらの AMI には、ワーカーノードの最新 AWS CloudFormation テンプレートが必要です。これらの AMI は、以前のバージョンのワーカーノードテンプレートで使用することはできません。つまり、クラスターに加えることはできません。これらの AMI を使用するには、必ず、既存の AWS CloudFormation ワーカースタックを最新のテンプレート (以下の URL) でアップグレードしてください。

https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/amazon-eks-nodegroup.yaml

AWS CloudFormation ワーカーノードテンプレートは、特殊なブートストラップスクリプトをトリガーする Amazon EC2 ユーザーデータを使用して、ワーカーノードを起動します。このスクリプトにより、ワーカーノードはクラスターのコントロールプレーンを自動的に検出して接続できるようになります。詳細については、「Amazon EKS ワーカーノードを起動する」を参照してください。

GPU ワーカーノードがクラスターに参加した後で、NVIDIA device plugin for Kubernetes を次のコマンドを使用してクラスターのデーモンセットとして適用しなければなりません。

kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta/nvidia-device-plugin.yml

ノードに GPU が割り当てられたことは、次のコマンドを使って確認できます。

kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"

GPU マニフェストの例

このセクションでは、ポッドマニフェスト例を示し、GPU のワーカーが適切に設定されていることをテストします。

nvidia-smi 出力の取得

このポッドマニフェスト例では、ワーカーノードで nvidia-smi を実行する Cuda コンテナ を起動します。nvidia-smi.yaml という名前のファイルを作成し、そこに以下のマニフェストファイルをコピー・ペーストしてファイルを保存します。

apiVersion: v1 kind: Pod metadata: name: nvidia-smi spec: restartPolicy: OnFailure containers: - name: nvidia-smi image: nvidia/cuda:9.2-devel args: - "nvidia-smi" resources: limits: nvidia.com/gpu: 1

上記の変更を次のコマンドを使って適用します。

kubectl apply -f nvidia-smi.yaml

ポッドの実行が終了後、次のコマンドを使用してログを表示します。

kubectl logs nvidia-smi

出力:

Mon Aug 6 20:23:31 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 396.26 Driver Version: 396.26 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla V100-SXM2... On | 00000000:00:1C.0 Off | 0 | | N/A 46C P0 47W / 300W | 0MiB / 16160MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+

このページの内容: