AMD GPUプラグイン
AMD GPUプラグイン・クラスタ・アドオンを有効にすると、次のキー/値ペアを引数として渡すことができます。
AMD GPUワーカー・ノードで実行されているワークロードが予期せず中断されないようにするために、Oracleでアドオンを自動的に更新するように指定するのではなく、デプロイするAMD GPUプラグイン・アドオンのバージョンを選択することをお薦めします。
| キー(APIおよびCLI) | キーの表示名(コンソール) | 説明 | 必須/オプション | デフォルト値 | 値の例 |
|---|---|---|---|---|---|
affinity |
affinity |
アフィニティ・スケジューリング・ルールのグループ。 プレーン・テキストまたはBase64エンコードされたJSON形式。 未使用者:
可能な等価:
|
オプション | null | null |
nodeSelectors |
ノード・セレクター |
ノード・セレクタおよびノード・ラベルを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。 ポッドをノードで実行するには、ポッドのノード・セレクタのキー/値がノードのラベルと同じである必要があります。
プレーン・テキストまたはBase64エンコードされたJSON形式。 未使用者:
可能な等価:
|
オプション | null | {"foo":"bar", "foo2": "bar2"}ポッドは、 |
numOfReplicas |
numOfReplicas | アドオン・デプロイメントのレプリカの数。 未使用者:
可能な等価:
|
必須 | 1クラスタごとにアドオン・デプロイメントのレプリカを1つ作成します。 |
2クラスタごとにアドオン・デプロイメントのレプリカを2つ作成します。 |
rollingUpdate |
rollingUpdate |
maxSurgeおよびmaxUnavailableによるローリング更新の望ましい動作を制御します。 プレーン・テキストまたはBase64エンコードされたJSON形式。 未使用者:
可能な等価:
|
オプション | null | null |
tolerations |
許容範囲 |
taintおよびtolerationsを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。 taintがあるノード上でポッドを実行するには、ポッドに対応する許容範囲が必要です。
プレーン・テキストまたはBase64エンコードされたJSON形式。 可能な等価:
|
オプション | null | [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]この許容値を持つポッドのみが、 |
topologySpreadConstraints |
topologySpreadConstraints |
指定されたトポロジ間で一致するポッドを分散する方法。 プレーン・テキストまたはBase64エンコードされたJSON形式。 未使用者:
|
オプション | null | null |
| キー(APIおよびCLI) | キーの表示名(コンソール) | 説明 | 必須/オプション | デフォルト値 | 値の例 |
|---|---|---|---|---|---|
amd-gpu-device-plugin.ContainerResources |
amd-gpu-device-pluginコンテナリソース |
アドオン・コンテナがリクエストするリソース数量を指定し、アドオン・コンテナが超過できないリソース使用量制限を設定できます。 プレーン・テキストまたはBase64エンコードされたJSON形式。 |
オプション | null |
{"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}
100ミリコアのCPUと100メガバイトのメモリーをリクエストするアドオン・コンテナを作成します。アドオンコンテナを500ミリコアのCPUと200メビバイトのメモリーに制限します。 |
pulse
|
ヘルス・チェックの有効化 |
プラグインがデバイス・ヘルス・ステータスでkubeletを更新する時間間隔(秒)。 ヘルス・チェックを無効にするには、 |
オプション |
0
|
次の表に、大規模クラスタでこのクラスタ・アドオンを構成する際の考慮事項を示します。
| 引数名 | ロールWRTノード数 | 説明 | クラスタ・サイズが増加するにつれて | リスク | 推奨事項 |
|---|---|---|---|---|---|
amd-gpu-device-plugin.ContainerResources
|
あり |
AMD GPUプラグイン・コンテナのCPUおよびメモリー・リクエストおよび制限を定義します。 |
プラグインは、すべてのGPUノードで実行されます。 合計リソース使用率は、GPUノードの数と直線的に増加します。 次のアクティビティが増加します。
|
リソースのサイズが小さい場合:
|
次の要因に基づいて、各ノードに割り当てられるメモリーおよびCPUを増やします。
kubeletログ、およびプラグインのCPUとメモリーの使用状況を監視します。 |
nodeSelectors/affinity
|
あり |
ラベルを使用して、プラグインが実行されるノードを制御します。 |
プラグインがAMD GPUノードでのみ実行されるようにします。 CPUのみのノードで不要なスケジューリングを防止します。 |
セレクタが指定されていない場合、プラグインはすべてのノードで実行され、リソースを浪費します。 間違ったセレクタが指定されている場合、プラグインはGPUノードで実行されず、GPUはKubernetesに表示されません。 ノードの1~2%に影響する構成ミスが少ない場合でも、構成が正しくないノードが何百個も存在し、GPUの可用性に一貫性がなくなり、スケジュールの失敗が予測できません。 |
厳密なノードラベル付けを使用します。 |
tolerations
|
あり |
汚染されたGPUノードでプラグインを実行できるかどうかを制御します。 |
正しく構成されていない場合、AMD GPU Plugin DaemonSetがtaintsを使用してGPUノードでスケジュールに失敗し、GPUリソースが検出されず、GPUがワークロードのスケジューリングに使用できなくなります。 |
許容値が正しく構成されていない場合、プラグインはGPUノードで実行できず、GPUは使用できなくなります。 |
許容範囲がGPUノードに適用されるテイントと一致していることを確認します。 |
pulse
|
あり |
プラグインがGPUヘルス情報をkubeletに報告する頻度を制御します。 |
レポート頻度が高いほど、GPUのヘルス可視性は向上しますが、kubeletおよびAPIトラフィックは増加します。 レポート頻度が低いほど、オーバーヘッドは減少しますが、障害検出は遅延します。 |
更新の頻度が高すぎる場合、各ノードのCPUオーバーヘッドおよびkubeletの負荷が増加します。 更新の頻度が低すぎたり無効になったりすると、GPUの健全性情報が古くなり、スケジューラはワークロードを異常なGPUに割り当てる可能性があります。 |
健全性の可視性とオーバーヘッドのバランスをとる中程度の間隔を使用します。 過度に攻撃的な投票は避けましょう。 |
rollingUpdate
|
なし |
更新動作を制御します。 |
大規模なクラスタでは、多数のノードが同時に更新され、アップグレード中のGPUの可用性に影響する場合があります。 |
|
制御されたローリング更新を使用して、広範囲にわたる中断を回避します。 |
numOfReplicas
|
なし |
この引数は、AMD GPUプラグインでは使用されません。 |
該当なし | 該当なし | 該当なし |