2.15.2. GPU 割り当てオブジェクトについて


属性ベースの GPU 割り当ては、次のオブジェクトを使用して、グラフィックスプロセッシングユニット (GPU) の主要な割り当て機能を提供します。これらの API の種類は、すべて resource.k8s.io/v1beta2 API グループに含まれています。

デバイスクラス

デバイスクラスは、Pod が要求できるデバイスのカテゴリーと、要求時に特定のデバイス属性を選択する方法です。一部のデバイスドライバーには独自のデバイスクラスが含まれています。管理者がデバイスクラスを作成することもできます。デバイスクラスにはデバイスセレクターが含まれています。デバイスセレクターは、デバイスが要求を満たす場合に true と評価される Common Expression Language (CEL) 式です。

次の例の DeviceClass オブジェクトは、driver.example.com デバイスドライバーによって管理されるすべてのデバイスを選択します。

デバイスクラスオブジェクトの例

apiVersion: resource.k8s.io/v1beta1
kind: DeviceClass
metadata:
  name: example-device-class
spec:
  selectors:
  - cel:
      expression: |-
        device.driver == "driver.example.com"

リソーススライス
各ノードの Dynamic Resource Allocation (DRA) ドライバーは、クラスター内の リソーススライス を作成および管理します。リソーススライスは、ノードに割り当てられている 1 つ以上の GPU リソースを表します。リソースクレームが作成され、Pod で使用されると、OpenShift Container Platform はリソーススライスを使用して、要求されたリソースにアクセスできるノードを探します。リソースクレームに適したリソーススライスが見つかると、OpenShift Container Platform のスケジューラーが、割り当ての詳細を使用してリソースクレームを更新し、リソースクレームにリソースを割り当て、リソースにアクセスできるノードに Pod をスケジュールします。
リソースクレームテンプレート

クラスターの管理者と運用担当者は、特定のデバイスクラスから GPU を要求するための リソースクレームテンプレート を作成できます。リソースクレームテンプレートは、それぞれ分離された類似のリソースへのアクセスを Pod に提供します。OpenShift Container Platform は、リソースクレームテンプレートを使用して、Pod のリソースクレームを生成します。OpenShift Container Platform がテンプレートから生成する各リソースクレームは、特定の Pod にバインドされます。Pod が終了すると、OpenShift Container Platform は対応するリソースクレームを削除します。

次のリソースクレームテンプレートの例では、example-device-class デバイスクラス内のデバイスを要求します。

リソースクレームテンプレートオブジェクトの例

apiVersion: resource.k8s.io/v1beta1
kind: ResourceClaimTemplate
metadata:
  namespace: gpu-test1
  name: gpu-claim-template
spec:
# ...
  spec:
    devices:
      requests:
      - name: gpu
        deviceClassName: example-device-class

リソースクレーム

管理者と運用担当者は、特定のデバイスクラスから GPU を要求する リソースクレーム を作成できます。リソースクレームは、GPU を複数の Pod で共有できる点で、リソースクレームテンプレートとは異なります。また、要求元の Pod が終了しても、リソースクレームは削除されません。

次のリソースクレームテンプレートの例では、CEL 式を使用して、example-device-class デバイスクラス内の特定のサイズを持つ特定のデバイスを要求します。

リソースクレームオブジェクトの例

apiVersion: resource.k8s.io/v1beta1
kind: ResourceClaim
metadata:
  namespace: gpu-claim
  name: gpu-devices
spec:
  devices:
    requests:
    - name: 1g-5gb
      deviceClassName: example-device-class
      selectors:
      - cel:
          expression: "device.attributes['driver.example.com'].profile == '1g.5gb'"
    - name: 1g-5gb-2
      deviceClassName: example-device-class
      selectors:
      - cel:
          expression: "device.attributes['driver.example.com'].profile == '1g.5gb'"
    - name: 2g-10gb
      deviceClassName: example-device-class
      selectors:
      - cel:
          expression: "device.attributes['driver.example.com'].profile == '2g.10gb'"
    - name: 3g-20gb
      deviceClassName: example-device-class
      selectors:
      - cel:
          expression: "device.attributes['driver.example.com'].profile == '3g.20gb'"

リソースクレーム、リソースクレームテンプレートの設定の詳細は、Dynamic Resource Allocation (Kubernetes ドキュメント) を参照してください。

Pod にリソースクレームを追加する方法は、「Pod へのリソースクレームの追加」を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る