16.2. Guaranteed QoS クラスを持つ Pod の作成
高パフォーマンスのワークロード向けに、quality of service (QoS) クラスが Guaranteed の Pod を作成できます。QoS クラスが Guaranteed の Pod を設定すると、その Pod は指定された CPU とメモリーリソースに優先的にアクセスできます。
QoS クラスが Guaranteed の Pod を作成するには、次の仕様を適用する必要があります。
- Pod 内の各コンテナーのメモリー制限フィールドとメモリー要求フィールドに同じ値を設定します。
- Pod 内の各コンテナーの CPU 制限フィールドと CPU 要求フィールドに同じ値を設定します。
一般的に、QoS クラスが Guaranteed の Pod はノードから削除されません。唯一の例外は、予約済みリソースを超えたシステムデーモンによってリソース競合が発生した場合です。このシナリオでは、kubelet は、ノードの安定性を維持するために最も優先度の低い Pod から順番に Pod を削除する可能性があります。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc)
手順
次のコマンドを実行して、Pod の namespace を作成します。
oc create namespace qos-example
$ oc create namespace qos-example1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では
qos-examplenamespace を使用します。
出力例
namespace/qos-example created
namespace/qos-example createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podリソースを作成します。Podリソースを定義する YAML ファイルを作成します。qos-example.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では、パブリック
hello-openshiftイメージを使用します。 - 2
- メモリー制限を 200 MB に設定します。
- 3
- CPU 制限を 1 CPU に設定します。
- 4
- メモリー要求を 200 MB に設定します。
- 5
- CPU 要求を 1 CPU に設定します。注記
コンテナーのメモリー制限を指定しても、メモリー要求を指定しなかった場合、OpenShift Container Platform によって制限に合わせてメモリー要求が自動的に割り当てられます。同様に、コンテナーの CPU 制限を指定しても、CPU 要求を指定しなかった場合、OpenShift Container Platform によって制限に合わせて CPU 要求が自動的に割り当てられます。
次のコマンドを実行して、
Podリソースを作成します。oc apply -f qos-example.yaml --namespace=qos-example
$ oc apply -f qos-example.yaml --namespace=qos-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
pod/qos-demo created
pod/qos-demo createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Pod の
qosClass値を表示します。oc get pod qos-demo --namespace=qos-example --output=yaml | grep qosClass
$ oc get pod qos-demo --namespace=qos-example --output=yaml | grep qosClassCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
qosClass: Guaranteed
qosClass: GuaranteedCopy to Clipboard Copied! Toggle word wrap Toggle overflow