8.5. オーバーコミットされたノード上に Pod を配置するためのクラスターの設定
OpenShift Container Platform の管理者は、ClusterResourceOverride Operator を使用することで、開発者コンテナーのオーバーコミットのレベルを制御し、コンテナー密度を管理できます。
OpenShift Container Platform では、クラスターレベルのオーバーコミットを有効にする必要があります。ノードのオーバーコミットはデフォルトで有効にされています。
過剰割り当て 状態では、コンテナーコンピュートのリソース要求と制限の合計が、システムで使用可能なリソースを超えます。オーバーコミットの使用は、容量に対して保証されたパフォーマンスのトレードオフが許容可能である開発環境において必要になる場合があります。
コンテナーは、コンピュートリソース要求および制限を指定することができます。要求はコンテナーのスケジューリングに使用され、最小限のサービス保証を提供します。制限は、ノード上で消費できるコンピュートリソースの量を制限します。
スケジューラーは、クラスター内のすべてのノードにおけるコンピュートリソース使用の最適化を試行します。これは Pod のコンピュートリソース要求とノードの利用可能な容量を考慮に入れて Pod を特定のノードに配置します。
8.5.1. リソース要求とオーバーコミット リンクのコピーリンクがクリップボードにコピーされました!
過剰にリソースが割り当てられた環境では、リソース要求を利用することで、クラスターが適切に設定されていることを確認できます。
コンテナーは、各コンピューティングリソースに対して、リソース要求と制限を指定できます。スケジューリングの決定は要求に基づいて行われ、ノードに要求される値を満たす十分な容量があることが確認されます。コンテナーが制限を指定するものの、要求を省略する場合、要求はデフォルトで制限値に設定されます。コンテナーは、ノードの指定される制限を超えることはできません。
制限の実施方法は、コンピュートリソースのタイプによって異なります。コンテナーが要求または制限を指定しない場合、コンテナーはリソース保証のない状態でノードにスケジュールされます。実際に、コンテナーはローカルの最も低い優先順位で利用できる指定リソースを消費できます。リソースが不足する状態では、リソース要求を指定しないコンテナーに最低レベルの quality of service が設定されます。
スケジューリングは要求されたリソースに基づいて行われ、クォータとハードリミットはリソースの上限を指し、要求されたリソースよりも高く設定することができます。要求値と制限値の差によって、オーバーコミットのレベルが決まります。たとえば、コンテナーに 1Gi のメモリー要求と 2Gi のメモリー制限が与えられた場合、コンテナーはノード上で 1Gi の要求が利用可能であることを前提としてスケジュールされますが、最大 2Gi まで使用できるため、100% オーバーコミットされます。