翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サービングキャパシティの自動スケーリング
HyperPod での容量の供給は 2 つのレベルでスケールされます。Ray Serve はリクエストの負荷に合わせてクラスター内でレプリカをスケーリングし、マネージド Karpenter はクラスターノードをスケーリングしてそれらのレプリカを保持します。レプリカの自動スケーリングが最初に反応し、既存のノードが不足するとノードの自動スケーリングによって容量が追加されます。
Ray Serve レプリカの自動スケーリング
Ray Serve は、リクエストのロードに基づいてデプロイのレプリカの数を調整します。固定レプリカ数の代わりにデプロイで自動スケーリング設定を設定します。
deployments: - name: Model autoscaling_config: min_replicas: 1 max_replicas: 8 target_ongoing_requests: 5
レプリカの自動スケーリングでワーカーポッドを追加および削除するには、クラスターに対して Ray Autoscaler を有効にする必要があります。RayCluster 仕様または rayClusterConfigの enableInTreeAutoscaling: trueで を設定しますRayService。
spec: enableInTreeAutoscaling: true
これがないと、デプロイの はターゲットレプリカ数autoscaling_configを変更しますが、KubeRay はそれを満たすワーカーポッドを作成しません。
レプリカの自動スケーリングは、クラスターの現在のノード容量内に留まります。Ray Serve がノードが保持できる数よりも多くのレプリカを必要とする場合、ポッドはノードが使用可能になるまで保留中のままになります。
マネージド Karpenter によるノードの自動スケーリング
HyperPod の Managed Karpenter は、Ray ポッドが保留中のときにノードを追加し、アイドル状態のときにノードを削除するため、配信キャパシティは固定ノードプールなしで需要に従います。スポットインスタンスはノード容量でサポートされるため、中断耐性のある処理のコストを削減できます。セットアップと設定については、「」を参照してくださいSageMaker HyperPod EKS での Auto Scaling。
両方一緒に使用する
デプロイでレプリカの自動スケーリングを設定し、クラスターでノードの自動スケーリングを設定します。2 つのレベルは、リクエスト負荷の増加に応答するチェーン内で連携します。
-
Ray Serve は負荷の増加を検出します。オートスケーラーは、進行中のリクエストが を超えていることを観察し
target_ongoing_requests、別のレプリカを追加することにしました。 -
KubeRay は新しいワーカーポッドを作成します。Ray Serve は KubeRay にワーカーグループをスケールするようにシグナルを送信し、KubeRay は新しいレプリカのポッドを作成します。
-
容量がない場合、ポッドは保留中のままです。既存のノードが新しいポッド (GPU またはメモリが不十分) に収まらない場合、ポッドは
Pending状態になります。 -
Managed Karpenter はノードをプロビジョニングします。HyperPod マネージド Karpenter は保留中のポッドを検出し、適切なインスタンスタイプを選択して、新しいノードを起動します。
-
ノードが起動し、ポッドの実行が開始されます。ノードの準備ができてクラスターに参加すると、Kubernetes は保留中のポッドをそのノードにスケジュールします。新しいレプリカはモデルをロードし、リクエストの処理を開始します。
スケールダウンすると、プロセスは逆になります。Ray Serve はアイドルレプリカを削除し、KubeRay はワーカーポッドを削除し、マネージド Karpenter は統合ウィンドウの後に実行中のポッドがないノードを終了します。