17.2. クォータで管理されるリソース
以下では、クォータで管理できる一連のコンピュートリソースとオブジェクトタイプについて説明します。
status.phase in (Failed, Succeeded)
が true の場合、Pod は終了状態にあります。
リソース名 | 説明 |
---|---|
|
非終了状態のすべての Pod での CPU 要求の合計はこの値を超えることができません。 |
|
非終了状態のすべての Pod でのメモリー要求の合計はこの値を超えることができません。 |
|
非終了状態のすべての Pod におけるローカルの一時ストレージ要求の合計は、この値を超えることができません。 |
|
非終了状態のすべての Pod での CPU 要求の合計はこの値を超えることができません。 |
|
非終了状態のすべての Pod でのメモリー要求の合計はこの値を超えることができません。 |
|
非終了状態のすべての Pod における一時ストレージ要求の合計は、この値を超えることができません。 |
| 非終了状態のすべての Pod での CPU 制限の合計はこの値を超えることができません。 |
| 非終了状態のすべての Pod でのメモリー制限の合計はこの値を超えることができません。 |
| 非終了状態のすべての Pod における一時ストレージ制限の合計は、この値を超えることができません。このリソースは、一時ストレージのテクノロジープレビュー機能が有効にされている場合にのみ利用できます。この機能はデフォルトでは無効になっています。 |
リソース名 | 説明 |
---|---|
| 任意の状態のすべての永続ボリューム要求 (PVC) でのストレージ要求の合計は、この値を超えることができません。 |
| プロジェクトに存在できる永続ボリューム要求 (PVC) の合計数です。 |
| 一致するストレージクラスを持つ、任意の状態のすべての永続ボリューム要求 (PVC) でのストレージ要求の合計はこの値を超えることができません。 |
| プロジェクトに存在できる、一致するストレージクラスを持つ Persistent Volume Claim (永続ボリューム要求、PVC) の合計数です。 |
リソース名 | 説明 |
---|---|
| プロジェクトに存在できる非終了状態の Pod の合計数です。 |
| プロジェクトに存在できるレプリケーションコントローラーの合計数です。 |
| プロジェクトに存在できるリソースクォータの合計数です。 |
| プロジェクトに存在できるサービスの合計数です。 |
| プロジェクトに存在できるシークレットの合計数です。 |
|
プロジェクトに存在できる |
| プロジェクトに存在できる永続ボリューム要求 (PVC) の合計数です。 |
| プロジェクトに存在できるイメージストリームの合計数です。 |
クォータの作成 時に、count/<resource>.<group>
構文を使用して、これらの標準的な namespace を使用しているリソースタイプのオブジェクトカウントクォータを設定できます。
oc create quota <name> --hard=count/<resource>.<group>=<quota>
$ oc create quota <name> --hard=count/<resource>.<group>=<quota>
- 1
<resource>
はリソースの名前であり、<group>
は API グループです (該当する場合)。リソースおよびそれらの関連付けられた API グループの一覧にkubectl api-resources
コマンドを使用します。
17.2.1. 拡張リソースのリソースクォータの設定 リンクのコピーリンクがクリップボードにコピーされました!
リソースのオーバーコミットは拡張リソースには許可されません。そのため、クォータで同じ拡張リソースの requests
および limits
を指定する必要があります。現時点で、接頭辞 requests.
のあるクォータ項目のみが拡張リソースに許可されます。以下は、GPU リソース nvidia.com/gpu
のリソースクォータを設定する方法についてのシナリオ例です。
手順
クラスター内のノードで利用可能な GPU の数を判別します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、2 つの GPU が利用可能です。
namespace
nvidia
にクォータを設定します。この例では、クォータは1
です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォータを作成します。
oc create -f gpu-quota.yaml
# oc create -f gpu-quota.yaml resourcequota/gpu-quota created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace に正しいクォータが設定されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 単一 GPU を要求する Pod を実行します。
oc create pod gpu-pod.yaml
# oc create pod gpu-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod が実行されていることを確認します。
oc get pods
# oc get pods NAME READY STATUS RESTARTS AGE gpu-pod-s46h7 1/1 Running 0 1m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォータ
Used
のカウンターが正しいことを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow nvidia
namespace で 2 番目の GPU Pod の作成を試行します。2 つの GPU があるので、これをノード上で実行することは可能です。oc create -f gpu-pod.yaml
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォータが 1 GPU であり、この Pod がそのクォータを超える 2 つ目の GPU の割り当てを試行したため、Forbidden エラーメッセージが表示されることが予想されます。