第3章 AMD GPU Operator のインストール
クラスターで使用可能な基盤となる AMD ROCm AI アクセラレーターを使用するには、AMD GPU Operator をインストールします。
AMD GPU Operator をインストールするには、複数のステップが必要です。OpenShift OperatorHub を使い、最初に Node Feature Discovery Operator を、次に Kernel Module Management Operator (KMM) をインストールし、最後に AMD GPU Operator をインストールします。
AMD GPU Operator は、インターネットに完全にアクセスできるクラスターでのみサポートされ、非接続環境ではサポートされません。これは、Operator がクラスター内でドライバーをビルドする際に、完全なインターネットアクセスが必要となるためです。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 クラスターに次の Operator がインストールされている。
Expand 表3.1 必要な Operator Operator 説明 Service CA Operator
Service オブジェクトに対して TLS サービング証明書を発行します。
kube-apiserverと KMM Webhook サーバー間の証明書の署名と認証に必要です。Operator Lifecycle Manager (OLM)
Operator のインストールとライフサイクルのメンテナンスを管理します。
Machine Config Operator
ワーカーノードとコントロールプレーンノードのオペレーティングシステム設定を管理します。amdgpu ドライバーのカーネルブラックリストを設定するために必要です。
Cluster Image Registry Operator
Cluster Image Registry Operator (CIRO) は、OpenShift Container Platform クラスターがコンテナーイメージを保存および提供するために使用する内部コンテナーイメージレジストリーを管理します。クラスター内のドライバーイメージのビルドと保存に必要です。
手順
AMD GPU Operator の
NamespaceCR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Service CA Operator が動作していることを確認します。以下のコマンドを実行します。
oc get pods -A | grep service-ca
$ oc get pods -A | grep service-caCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
openshift-service-ca-operator service-ca-operator-7cfd997ddf-llhdg 1/1 Running 7 35d openshift-service-ca service-ca-8675b766d5-vz8gg 1/1 Running 6 35d
openshift-service-ca-operator service-ca-operator-7cfd997ddf-llhdg 1/1 Running 7 35d openshift-service-ca service-ca-8675b766d5-vz8gg 1/1 Running 6 35dCopy to Clipboard Copied! Toggle word wrap Toggle overflow Machine Config Operator が動作していることを確認します。
oc get pods -A | grep machine-config-daemon
$ oc get pods -A | grep machine-config-daemonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
openshift-machine-config-operator machine-config-daemon-sdsjj 2/2 Running 10 35d openshift-machine-config-operator machine-config-daemon-xc6rm 2/2 Running 0 2d21h
openshift-machine-config-operator machine-config-daemon-sdsjj 2/2 Running 10 35d openshift-machine-config-operator machine-config-daemon-xc6rm 2/2 Running 0 2d21hCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Image Registry Operator が動作していることを確認します。
oc get pods -n openshift-image-registry
$ oc get pods -n openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: クラスター内にドライバーイメージをビルドする予定の場合は、OpenShift 内部レジストリーを有効にする必要があります。以下のコマンドを実行します。
現在のレジストリーステータスを確認します。
oc get pods -n openshift-image-registry
$ oc get pods -n openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAME READY STATUS RESTARTS AGE #... image-registry-7b67584cd-sdxpk 1/1 Running 10 36d
NAME READY STATUS RESTARTS AGE #... image-registry-7b67584cd-sdxpk 1/1 Running 10 36dCopy to Clipboard Copied! Toggle word wrap Toggle overflow レジストリーストレージを設定します。次の例では、クラスター内の
emptyDir一時ボリュームにパッチを適用します。以下のコマンドを実行します。oc patch configs.imageregistry.operator.openshift.io cluster --type merge \ --patch '{"spec":{"storage":{"emptyDir":{}}}}'$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge \ --patch '{"spec":{"storage":{"emptyDir":{}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow レジストリーを有効にします。
oc patch configs.imageregistry.operator.openshift.io cluster --type merge \ --patch '{"spec":{"managementState":"Managed"}}'$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge \ --patch '{"spec":{"managementState":"Managed"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Node Feature Discovery (NFD) Operator をインストールします。Node Feature Discovery Operator のインストール を参照してください。
- Kernel Module Management (KMM) Operator をインストールします。Kernel Module Management Operator のインストール を参照してください。
AMD AI アクセラレーターのノード機能検出を設定します。
AMD GPU ハードウェアを検出するには、
NodeFeatureDiscovery(NFD) カスタムリソース (CR) を作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記特定のクラスターのデプロイメントに応じて、
NodeFeatureDiscoveryまたはNodeFeatureRuleCR が必要になる場合があります。たとえば、クラスターにはすでにNodeFeatureDiscoveryリソースがデプロイされており、それを変更したくない場合があります。詳細は、Create Node Feature Discovery Rule を参照してください。
MachineConfigCR を作成して、ツリー外のamdgpuカーネルモジュールを modprobe ブラックリストに追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- シングルノードの OpenShift クラスターの場合は
machineconfiguration.openshift.io/role: masterを設定します。
重要MachineConfigCR を適用した後、Machine Config Operator は選択したノードを自動的に再起動します。AMD AI アクセラレータードライバーのインストールを開始するための
DeviceConfigCR を作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デフォルトでは、
imageフィールドの値を設定する必要はありません。デフォルト値が表示されます。
DeviceConfigCR を適用すると、AMD GPU Operator はワーカーノードのシステム仕様を収集して適切なドライバーイメージをビルドまたは取得し、KMM を使用してドライバーをデプロイして、最後に ROCM デバイスプラグインとノードラベラーをデプロイします。
検証
KMM ワーカー Pod が実行されていることを確認します。
oc get pods -n openshift-kmm
$ oc get pods -n openshift-kmmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE kmm-operator-controller-774c7ccff6-hr76v 1/1 Running 30 (2d23h ago) 35d kmm-operator-webhook-76d7b9555-ltmps 1/1 Running 5 35d
NAME READY STATUS RESTARTS AGE kmm-operator-controller-774c7ccff6-hr76v 1/1 Running 30 (2d23h ago) 35d kmm-operator-webhook-76d7b9555-ltmps 1/1 Running 5 35dCopy to Clipboard Copied! Toggle word wrap Toggle overflow デバイスのプラグインとラベラーのステータスを確認します。
oc -n openshift-amd-gpu get pods
$ oc -n openshift-amd-gpu get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE amd-gpu-operator-controller-manager-59dd964777-zw4bg 1/1 Running 8 (2d23h ago) 9d test-deviceconfig-device-plugin-kbrp7 1/1 Running 0 2d test-deviceconfig-metrics-exporter-k5v4x 1/1 Running 0 2d test-deviceconfig-node-labeller-fqz7x 1/1 Running 0 2d
NAME READY STATUS RESTARTS AGE amd-gpu-operator-controller-manager-59dd964777-zw4bg 1/1 Running 8 (2d23h ago) 9d test-deviceconfig-device-plugin-kbrp7 1/1 Running 0 2d test-deviceconfig-metrics-exporter-k5v4x 1/1 Running 0 2d test-deviceconfig-node-labeller-fqz7x 1/1 Running 0 2dCopy to Clipboard Copied! Toggle word wrap Toggle overflow GPU リソースラベルがノードに適用されていることを確認します。
oc get node -o json | grep amd.com
$ oc get node -o json | grep amd.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow