8.2. 拡張リソースのリソースクォータの設定


nvidia.com/gpu などの拡張リソースの消費を管理するには、requests プレフィックスを使用してリソースクォータを定義します。これらのリソースでは過剰割り当てが禁止されているため、有効な設定を確保するには、要求と制限の両方を明示的に指定する必要があります。

手順

  1. クラスター内のノードで使用可能な GPU の数を確認するには、次のコマンドを使用します。

    $ oc describe node ip-172-31-27-209.us-west-2.compute.internal | egrep 'Capacity|Allocatable|gpu'

    出力例

    openshift.com/gpu-accelerator=true
    Capacity:
     nvidia.com/gpu:  2
    Allocatable:
     nvidia.com/gpu:  2
     nvidia.com/gpu:  0           0

    この例では、2 つの GPU が利用可能です。

  2. このコマンドを使用して、namespace nvidia にクォータを設定します。この例では、クォータは 1 です。

    $ cat gpu-quota.yaml

    出力例

    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: gpu-quota
      namespace: nvidia
    spec:
      hard:
        requests.nvidia.com/gpu: 1

  3. 次のコマンドでクォータを作成します。

    $ oc create -f gpu-quota.yaml

    出力例

    resourcequota/gpu-quota created

  4. 次のコマンドを使用して、namespace に正しいクォータが設定されていることを確認します。

    $ oc describe quota gpu-quota -n nvidia

    出力例

    Name:                    gpu-quota
    Namespace:               nvidia
    Resource                 Used  Hard
    --------                 ----  ----
    requests.nvidia.com/gpu  0     1

  5. 次のコマンドを使用して、単一の GPU を要求する Pod を実行します。

    $ oc create pod gpu-pod.yaml

    出力例

    apiVersion: v1
    kind: Pod
    metadata:
      generateName: gpu-pod-s46h7
      namespace: nvidia
    spec:
      restartPolicy: OnFailure
      containers:
      - name: rhel7-gpu-pod
        image: rhel7
        env:
          - name: NVIDIA_VISIBLE_DEVICES
            value: all
          - name: NVIDIA_DRIVER_CAPABILITIES
            value: "compute,utility"
          - name: NVIDIA_REQUIRE_CUDA
            value: "cuda>=5.0"
    
        command: ["sleep"]
        args: ["infinity"]
    
        resources:
          limits:
            nvidia.com/gpu: 1

  6. 以下のコマンドを使用して、Pod が実行されていることを確認してください。

    $ oc get pods

    出力例

    NAME              READY     STATUS      RESTARTS   AGE
    gpu-pod-s46h7     1/1       Running     0          1m

  7. 次のコマンドを実行して、クォータ Used カウンターが正しいことを確認します。

    $ oc describe quota gpu-quota -n nvidia

    出力例

    Name:                    gpu-quota
    Namespace:               nvidia
    Resource                 Used  Hard
    --------                 ----  ----
    requests.nvidia.com/gpu  1     1

  8. 次のコマンドを使用して、nvidia namespace に 2 番目の GPU Pod を作成してみます。2 つの GPU があるので、これをノード上で実行することは可能です。

    $ oc create -f gpu-pod.yaml

    出力例

    Error from server (Forbidden): error when creating "gpu-pod.yaml": pods "gpu-pod-f7z2w" is forbidden: exceeded quota: gpu-quota, requested: requests.nvidia.com/gpu=1, used: requests.nvidia.com/gpu=1, limited: requests.nvidia.com/gpu=1

    この Forbidden エラーメッセージが表示されるのは、GPU のクォータが 1 つに制限されているにもかかわらず、Pod が 2 つ目の GPU を割り当てようとしたためです。これは、許可されているクォータを超えています。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る