翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
kubectl を使用した Ray ワークロードの管理
Ray on HyperPod は、アップストリームの KubeRay カスタムリソースを変更せずに使用します。既に Ray on Kubernetes を実行している場合、既存のマニフェストは変更されず、Ray ドキュメントはすべてのフィールドのリファレンスです。このページでは、HyperPod に固有の内容について説明します。
Ray リソースへのアクセスは、HyperPod クラスターアクセスポリシーによって付与されます。RayCluster、、RayJobおよび AmazonSagemakerHyperpodTrainingPolicyには RayCronJobを使用し、 RayClusterおよび AmazonSagemakerHyperpodInferencePolicyには を使用しますRayService。ポリシーを IAM プリンシパルの Amazon EKS アクセスエントリに関連付けます。これは、チームがクラスターを共有するときに名前空間に限定されます。
プリンシパルが SageMaker AI ドメイン実行ロールの場合、HyperPod コンソールはポリシーを付与し、アクセスエントリを作成します。詳細については、「Studio for Ray のセットアップ」を参照してください。
サポートされているカスタムリソース
| [リソース] | これを使用する | リファレンス |
|---|---|---|
RayCluster |
作業を送信する長時間実行されるクラスター。 | Ray ドキュメントの RayCluster クイックスタート |
RayJob |
1 つのジョブ。KubeRay はクラスターを作成し、ジョブを実行し、 shutdownAfterJobFinishes が の場合にクラスターを破棄しますtrue。 |
Ray ドキュメントの RayJob クイックスタート |
RayCronJob |
夜間バッチ推論など、cron スケジュールでの定期的なジョブ。IANA 名spec.timeZoneに設定するか、スケジュールがコントローラーのローカルタイムゾーンに従います。 |
Ray ドキュメントの RayCronJob クイックスタート |
RayService |
Ray Serve アプリケーション。 で宣言されserveConfigV2、ダウンタイムなしでアップグレードされます。作業した HyperPod の例については、Ray Serve を使用したモデルのデプロイ「」および「」を参照してくださいRay Serve を使用した JumpStart モデルのデプロイ。 |
Ray ドキュメントの RayService クイックスタート |
注記
RayCronJob には KubeRay 1.6.0 以降が必要です。以前の演算子では、リソースの種類は存在しません。詳細については、「HyperPod Amazon EKS への KubeRay のインストール」を参照してください。
クラスターの作成
次のマニフェストは、HyperPod ノードにヘッドポッドと GPU ワーカーグループを作成します。
apiVersion: ray.io/v1 kind: RayCluster metadata: name:my-clusternamespace:my-namespacespec: rayVersion: "2.55.1" headGroupSpec: rayStartParams: dashboard-host: "0.0.0.0" template: spec: containers: - name: ray-head image: rayproject/ray:2.55.1 ports: - { containerPort: 6379, name: gcs-server } - { containerPort: 8265, name: dashboard } - { containerPort: 10001, name: client } resources: requests: { cpu: "2", memory: "4Gi" } workerGroupSpecs: - groupName: gpu-workers replicas: 2 rayStartParams: {} template: spec: nodeSelector: node.kubernetes.io/instance-type: ml.g5.xlarge containers: - name: ray-worker image: rayproject/ray:2.55.1-gpu resources: limits: { nvidia.com/gpu: "1" } requests: { cpu: "4", memory: "16Gi", nvidia.com/gpu: "1" }
kubectl apply -f my-cluster.yaml -nmy-namespacekubectl get rayclustermy-cluster-nmy-namespace
重要
ヘッドグループの 0.0.0.0 を dashboard-hostに設定します。Ray Endpoint Operator はヘッドポッドの外部でダッシュボードを提供するためにダッシュボードを必要とし、認証されたダッシュボードへのアクセスはヘッドポッドなしで失敗します。
ヘッドポッドと少なくとも 1 つのワーカーポッドが実行されていると、クラスターの準備が整います。RayJob、RayCronJob、および は同じapply-and-checkパターンRayServiceに従い、それぞれがspec上記と同じ形状rayClusterSpecの を埋め込みます。
これらのリソースが受け入れるすべてのフィールドについては、Ray RayCluster Configuration
実行中のクラスターへのジョブの送信
を適用すると、そのジョブのクラスターRayJobが作成されます。すでに実行中のクラスターに送信するには、 toolkit-for-ray-on-sagemaker-aiパッケージを使用します。詳細については、「ツールキットライブラリを使用したジョブのリモート送信」を参照してください。