19.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-example
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では
qos-example
namespace を使用します。
出力例
namespace/qos-example created
namespace/qos-example created
Copy 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-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
pod/qos-demo created
pod/qos-demo created
Copy 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 qosClass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
qosClass: Guaranteed
qosClass: Guaranteed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow