Amazon EKS (Kubernetes) で Argo と KFServing を使用して InferenceService をセットアップしています。私たちのチームは、環境ごとに 1 つの EKS クラスターを持っていることを知っておくことが重要です。つまり、クラスター内に制御できない複数のアプリケーションが存在する可能性があります。
これまでにセットアップしたものは次のとおりです
- モデルをトレーニングしてデプロイするためのロジックを含む Docker イメージを Amazon ECR にプッシュします。
argo
#1 でトレーニングを開始するワークフローを送信するために使用します。argo を kubernetes クラスターにインストールすると、そのコンポーネントが GPU ノードに割り当てられることがあります。- KFServingも使用しています。KFServing を使用すると、GPU を自動スケールアップおよびスケールダウンできます。具体的には、使用されていないときにゼロにスケールします。KFServing のコンポーネントは、クラスターに適用するときに GPU ノードにも割り当てられます。
#2 と #3 (上記) の現在の設定では、KFServing がゼロにスケールダウンする機能を禁止しているようです。これらのコンポーネントを GPU に搭載すると、GPU をスケールダウンできないことが懸念されます。
GPU ノードに割り当てる必要があるポッドはどれですか?
(オプション 1) argo ワークフロー ポッドのみを割り当てて、残りを撃退する必要がありますか?
- また -
(オプション 2) GPU ノード内で正常に動作するために必要な他の kfserving コンポーネントはありますか?
オプション 1: argo ワークフロー ポッド以外のすべてのポッドが GPU ノードに入らないようにするにはどうすればよいですか? 念のために言っておきますが、制御できないアプリケーションが他にもあるため、すべてのポッドにノード アフィニティを追加することは非現実的です。
オプション 2:これらの GPU ノードに kfserving コンポーネントがある場合、GPU ノードをゼロにスケールするにはどうすればよいですか? スケールダウンは、ノードにポッドがないことを意味するという印象を受けました。