第9章 分散ワークロードの管理


OpenShift AI では、PyTorchJobRayJobRayCluster などの分散ワークロードは、それぞれのワークロード operator によって作成および管理されます。Kueue はキューイングとアドミッション制御を提供し、これらの operator と統合して、クラスター全体のクォータに基づいてワークロードをいつ実行できるかを決定します。

CodeFlare Operator のデフォルトの動作を変更したり、RDMA 用のクラスターを設定したりするなど、分散ワークロード環境の高度な設定を実行できます。

9.1. 分散ワークロードのクォータ管理の設定

Kueue リソースを作成して、分散ワークロードのクォータを設定します。クォータにより、複数のデータサイエンスプロジェクト間でリソースを共有できるようになります。

前提条件

  • cluster-admin ロールを使用して OpenShift にログインしている。
  • OpenShift コマンドラインインターフェイス (CLI) をダウンロードしてインストールした。OpenShift CLI のインストール (OpenShift Dedicated) または OpenShift CLI のインストール (Red Hat OpenShift Service on AWS) を参照してください。
  • Kueue を使用したワークロード管理の設定 の説明に従って、Red Hat build of Kueue Operator をインストールしてアクティブ化しておきます。
  • 分散ワークロードコンポーネントのインストール の説明に従って、必要な分散ワークロードコンポーネントをインストールしている。
  • ワークベンチを含むデータサイエンスプロジェクトを作成し、ワークベンチで CodeFlare SDK を含むデフォルトのワークベンチイメージ (Standard Data Science ワークベンチなど) が実行中である。プロジェクトの作成方法は、データサイエンスプロジェクトの作成 を参照してください。
  • 十分なリソースがある。分散ワークロードインフラストラクチャーをデプロイするには、ベースの OpenShift AI リソースに加え、1.6 vCPU および 2 GiB のメモリーが必要になります。
  • リソースがクラスター内で物理的に利用可能である。Kueue リソースの詳細は、Red Hat build of Kueue ドキュメント を参照してください。
  • グラフィックスプロセッシングユニット (GPU) を使用する場合は、OpenShift AI で GPU サポートを有効にした。NVIDIA GPU を使用する場合は、NVIDIA GPU の有効化 を参照してください。AMD GPU を使用する場合は、AMD GPU の統合 を参照してください。

    注記

    OpenShift AI では、Red Hat がサポートする分散ワークロードのアクセラレーターは、NVIDIA GPU アクセラレーターと AMD GPU アクセラレーターのみです。

手順

  1. ターミナルウィンドウで、クラスター管理者として OpenShift クラスターにまだログインしていない場合は、次の例に示すように OpenShift CLI にログインします。

    $ oc login <openshift_cluster_url> -u <admin_username> -p <password>
    Copy to Clipboard Toggle word wrap
  2. リソースフレーバーが存在することを確認するか、次のようにカスタムフレーバーを作成します。

    1. ResourceFlavor がすでに存在するかどうかを確認します。

      $ oc get resourceflavors
      Copy to Clipboard Toggle word wrap
    2. ResourceFlavor がすでに存在し、それを変更する必要がある場合、直接編集します。

      $ oc edit resourceflavor <existing_resourceflavor_name>
      Copy to Clipboard Toggle word wrap
    3. ResourceFlavor が存在しないか、カスタムのものが必要な場合は、default_flavor.yaml ファイルを作成し、次の内容を入力します。

      空の Kueue リーソースフレーバー

      apiVersion: kueue.x-k8s.io/v1beta1
      kind: ResourceFlavor
      metadata:
        name: <example_resource_flavor>
      Copy to Clipboard Toggle word wrap

      その他の例は、Kueue リソース設定の例 を参照してください。

    4. 次のいずれかの操作を実行します。

      • 既存のリソースフレーバーを変更する場合は、変更を保存します。
      • 新しいリソースフレーバーを作成する場合は、設定を適用して ResourceFlavor オブジェクトを作成します。

        $ oc apply -f default_flavor.yaml
        Copy to Clipboard Toggle word wrap
  3. デフォルトのクラスターキューが存在することを確認するか、次のようにカスタムキューを作成します。

    注記

    OpenShift AI は、Kueue 統合がアクティブ化されたときに、デフォルトのクラスターキューを自動的に作成しました。デフォルトのクラスターキューを検証および変更したり、カスタムキューを作成したりできます。

    1. ClusterQueue がすでに存在するかどうかを確認します。

      $ oc get clusterqueues
      Copy to Clipboard Toggle word wrap
    2. ClusterQueue がすでに存在し、それを変更する必要がある場合 (たとえば、リソースを変更する場合)、直接編集します。

      $ oc edit clusterqueue <existing_clusterqueue_name>
      Copy to Clipboard Toggle word wrap
    3. ClusterQueue が存在しない場合、またはカスタムの ClusterQueue が必要な場合は、cluster_queue.yaml ファイルを作成し、次の内容を入力します。

      クラスターキューの例

      apiVersion: kueue.x-k8s.io/v1beta1
      kind: ClusterQueue
      metadata:
        name: <example_cluster_queue>
      spec:
        namespaceSelector: {}  
      1
      
        resourceGroups:
        - coveredResources: ["cpu", "memory", "nvidia.com/gpu"]  
      2
      
          flavors:
          - name: "<resource_flavor_name>"  
      3
      
            resources:  
      4
      
            - name: "cpu"
              nominalQuota: 9
            - name: "memory"
              nominalQuota: 36Gi
            - name: "nvidia.com/gpu"
              nominalQuota: 5
      Copy to Clipboard Toggle word wrap

      1
      このクラスターキューが管理するリソースを使用できる namespace を定義します。例に示すように、空の namespaceSelector は、すべての namespace がこれらのリソースを使用できることを意味します。
      2
      クラスターキューによって管理されるリソースタイプを定義します。この例の ClusterQueue オブジェクトは、CPU、メモリー、および GPU リソースを管理します。AMD GPU を使用する場合は、サンプルコードの nvidia.com/gpuamd.com/gpu に置き換えます。
      3
      リストされているリソースタイプに適用されるリソースフレーバーを定義します。この例では、<resource_flavor_name> リソースフレーバーが CPU、メモリー、および GPU リソースに適用されます。
      4
      ジョブを許可するリソース要件を定義します。クラスターキューは、必要なリソースの合計がこれらのクォータ制限の範囲内にある場合に限り、分散ワークロードを起動します。
    4. クォータのサンプル値 (9 個の CPU、36 GiB のメモリー、5 個の NVIDIA GPU) を、クラスターキューに適した値に置き換えます。AMD GPU を使用する場合は、サンプルコードの nvidia.com/gpuamd.com/gpu に置き換えます。その他の例は、Kueue リソース設定の例 を参照してください。

      要求される値が 0 の場合でも、次のように spec.resourceGroups セクションを更新して、ユーザーが要求できる各リソースのクォータを指定する必要があります。

      • リソース名を coveredResources リストに含めます。
      • nominalQuota 値が 0 の場合でも、flavors.resources セクションでリソースの namenominalQuota を指定します。
    5. 次のいずれかの操作を実行します。

      • 既存のクラスターキューを変更する場合は、変更を保存します。
      • 新しいクラスターキューを作成する場合は、設定を適用して ClusterQueue オブジェクトを作成します。

        $ oc apply -f cluster_queue.yaml
        Copy to Clipboard Toggle word wrap
  4. プロジェクト namespace にクラスターキューを指すローカルキューが存在することを確認するか、次のようにカスタムキューを作成します。

    注記

    OpenShift AI ダッシュボードで Kueue が有効になっている場合、ダッシュボードから作成された新しいプロジェクトは自動的に Kueue 管理用に設定されます。これらの namespace には、デフォルトのローカルキューがすでに存在している可能性があります。ローカルキューを検証および変更したり、カスタムキューを作成したりできます。

    1. プロジェクトの namespace に LocalQueue がすでに存在するかどうかを確認します。

      $ oc get localqueues -n <project_namespace>
      Copy to Clipboard Toggle word wrap
    2. LocalQueue がすでに存在し、それを変更する必要がある場合 (たとえば、別の ClusterQueue を指すよう場合)、直接編集します。

      $ oc edit localqueue <existing_localqueue_name> -n <project_namespace>
      Copy to Clipboard Toggle word wrap
    3. LocalQueue が存在しない場合、またはカスタムの LocalQueue が必要な場合は、local_queue.yaml ファイルを作成し、次の内容を入力します。

      ローカルキューの例

      apiVersion: kueue.x-k8s.io/v1beta1
      kind: LocalQueue
      metadata:
        name: <example_local_queue>
        namespace: <project_namespace>
      spec:
        clusterQueue: <cluster_queue_name>
      Copy to Clipboard Toggle word wrap

    4. namenamespaceclusterQueue の値を適宜置き換えます。
    5. 次のいずれかの操作を実行します。

      • 既存のローカルキューを変更する場合は、変更を保存します。
      • 新しいローカルキューを作成する場合は、設定を適用して LocalQueue オブジェクトを作成します。

        $ oc apply -f local_queue.yaml
        Copy to Clipboard Toggle word wrap

検証

次のとおり、プロジェクト内のローカルキューのステータスを確認します。

$ oc get localqueues -n <project_namespace>
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat