5.10. Cluster Resource Override Operator を使用したクラスターレベルのオーバーコミット
Cluster Resource Override Operator は、クラスター内のすべてのノードでオーバーコミットのレベルを制御し、コンテナーの密度を管理できる受付 Webhook です。Operator は、特定のプロジェクトのノードが定義されたメモリーおよび CPU 制限を超える場合に制御します。
Operator は、開発者コンテナーに設定されている要求と制限の比率を変更します。制限とデフォルトを指定するプロジェクトごとの制限範囲と組み合わせることで、必要なレベルのオーバーコミットを実現できます。
次のセクションに示すように、OpenShift Container Platform コンソールまたは CLI を使用して、Cluster Resource Override Operator をインストールする必要があります。Cluster Resource Override Operator をデプロイすると、この Operator が特定の namespace 内のすべての新しい Pod を変更します。この Operator は、Operator をデプロイする前に存在していた Pod は編集しません。
インストール時に、以下の例のように、オーバーコミットのレベルを設定する ClusterResourceOverride カスタムリソース (CR) を作成します。
- 1
- 名前は
clusterでなければなりません。 - 2
- オプション: コンテナーのメモリー制限が指定されているか、デフォルトに設定されている場合、メモリー要求は制限のパーセンテージ (1-100) に対して上書きされます。デフォルトは 50 です。
- 3
- オプション: コンテナーの CPU 制限が指定されているか、デフォルトに設定されている場合、CPU 要求は、1-100 までの制限のパーセンテージに対応して上書きされます。デフォルトは 25 です。
- 4
- オプション: コンテナーのメモリー制限が指定されているか、デフォルトに設定されている場合、CPU 制限は、指定されている場合にメモリーのパーセンテージに対して上書きされます。1Gi の RAM の 100 パーセントでのスケーリングは、1 CPU コアに等しくなります。これは、CPU 要求を上書きする前に処理されます (設定されている場合)。デフォルトは 200 です。
コンテナーに制限が設定されていない場合、Cluster Resource Override Operator のオーバーライドは効果がありません。個別プロジェクトごとのデフォルト制限を使用して LimitRange オブジェクトを作成するか、Pod 仕様で制限を設定し、上書きが適用されるようにします。
設定したら、オーバーライドを適用する各プロジェクトの Namespace オブジェクトに次のラベルを適用することで、プロジェクトごとにオーバーライドを有効にできます。たとえば、インフラストラクチャーコンポーネントがオーバーライドの対象にならないようにオーバーライドを設定できます。
Operator は ClusterResourceOverride CR の有無を監視し、ClusterResourceOverride 受付 Webhook が Operator と同じ namespace にインストールされるようにします。
たとえば、Pod に次のリソース制限があるとします。
Cluster Resource Override Operator は、元の Pod 要求をインターセプトし、ClusterResourceOverride オブジェクトに設定された設定に従ってリソースをオーバーライドします。
5.10.1. Web コンソールを使用した Cluster Resource Override Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform CLI を使用して Cluster Resource Override Operator をインストールし、クラスターでのオーバーコミットを制御できます。
デフォルトでは、インストールプロセスによって、clusterresourceoverride-operator namespace のワーカーノードに Cluster Resource Override Operator Pod が作成されます。必要に応じて、この Pod をインフラストラクチャーノードなどの別のノードに移動できます。インフラストラクチャーノードは、環境の実行に必要なサブスクリプションの合計数にカウントされません。詳細は、「Cluster Resource Override Operator Pod の移動」を参照してください。
前提条件
-
制限がコンテナーに設定されていない場合、Cluster Resource Override Operator は影響を与えません。
LimitRangeオブジェクトを使用してプロジェクトのデフォルト制限を指定するか、Pod仕様で制限を設定して上書きが適用されるようにする必要があります。
手順
OpenShift Container Platform Web コンソールを使用して Cluster Resource Override Operator をインストールするには、以下を実行します。
OpenShift Container Platform Web コンソールで、Home
Projects に移動します。 - Create Project をクリックします。
-
clusterresourceoverride-operatorをプロジェクトの名前として指定します。 - Create をクリックします。
Operators
OperatorHub に移動します。 - 利用可能な Operator のリストから ClusterResourceOverride Operator を選択し、Install をクリックします。
- Install Operator ページで、A specific Namespace on the cluster が Installation Mode に選択されていることを確認します。
- clusterresourceoverride-operator が Installed Namespace に選択されていることを確認します。
- Update Channel および Approval Strategy を選択します。
- Install をクリックします。
Installed Operators ページで、ClusterResourceOverride をクリックします。
- ClusterResourceOverride Operator 詳細ページで、Create ClusterResourceOverride をクリックします。
Create ClusterResourceOverride ページで、YAML view をクリックして、YAML テンプレートを編集し、必要に応じてオーバーコミット値を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 名前は
clusterでなければなりません。 - 2
- オプション: コンテナーのメモリー制限をオーバーライドするパーセンテージを 1 - 100 の間で指定します (制限を使用する場合)。デフォルトは
50です。 - 3
- オプション: コンテナーの CPU 制限をオーバーライドするパーセンテージを 1 - 100 の間で指定します (制限を使用する場合)。デフォルトは
25です。 - 4
- オプション: コンテナーのメモリー制限をオーバーライドするパーセンテージを指定します (制限を使用する場合)。1 Gi の RAM を 100 パーセントでスケーリングすることは、1 CPU コアに相当します。これは CPU 要求をオーバーライドする前に処理されます (設定した場合)。デフォルトは
200です。
- Create をクリックします。
クラスターカスタムリソースのステータスをチェックして、受付 Webhook の現在の状態を確認します。
- ClusterResourceOverride Operator ページで、cluster をクリックします。
ClusterResourceOverride Details ページで、YAML をクリックします。Webhook の呼び出し時に、
mutatingWebhookConfigurationRefセクションが表示されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ClusterResourceOverride受付 Webhook への参照。
5.10.2. CLI を使用した Cluster Resource Override Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform CLI を使用して Cluster Resource Override Operator をインストールし、クラスターでのオーバーコミットを制御できます。
デフォルトでは、インストールプロセスによって、clusterresourceoverride-operator namespace のワーカーノードに Cluster Resource Override Operator Pod が作成されます。必要に応じて、この Pod をインフラストラクチャーノードなどの別のノードに移動できます。インフラストラクチャーノードは、環境の実行に必要なサブスクリプションの合計数にカウントされません。詳細は、「Cluster Resource Override Operator Pod の移動」を参照してください。
前提条件
-
制限がコンテナーに設定されていない場合、Cluster Resource Override Operator は影響を与えません。
LimitRangeオブジェクトを使用してプロジェクトのデフォルト制限を指定するか、Pod仕様で制限を設定して上書きが適用されるようにする必要があります。
手順
CLI を使用して Cluster Resource Override Operator をインストールするには、以下を実行します。
Cluster Resource Override の namespace を作成します。
Cluster Resource Override Operator の
Namespaceオブジェクト YAML ファイル (cro-namespace.yamlなど) を作成します。apiVersion: v1 kind: Namespace metadata: name: clusterresourceoverride-operator
apiVersion: v1 kind: Namespace metadata: name: clusterresourceoverride-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow namespace を作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -f cro-namespace.yaml
$ oc create -f cro-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator グループを作成します。
Cluster Resource Override Operator の
OperatorGroupオブジェクトの YAML ファイル (cro-og.yaml など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator グループを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -f cro-og.yaml
$ oc create -f cro-og.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
サブスクリプションを作成します。
Cluster Resource Override Operator の
Subscriptionオブジェクト YAML ファイル (cro-sub.yaml など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サブスクリプションを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -f cro-sub.yaml
$ oc create -f cro-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ClusterResourceOverrideカスタムリソース (CR) オブジェクトをclusterresourceoverride-operatornamespace に作成します。clusterresourceoverride-operatornamespace に切り替えます。oc project clusterresourceoverride-operator
$ oc project clusterresourceoverride-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Resource Override Operator の
ClusterResourceOverrideオブジェクト YAML ファイル (cro-cr.yaml など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 名前は
clusterでなければなりません。 - 2
- オプション: コンテナーのメモリー制限をオーバーライドするパーセンテージを 1 - 100 の間で指定します (制限を使用する場合)。デフォルトは
50です。 - 3
- オプション: コンテナーの CPU 制限をオーバーライドするパーセンテージを 1 - 100 の間で指定します (制限を使用する場合)。デフォルトは
25です。 - 4
- オプション: コンテナーのメモリー制限をオーバーライドするパーセンテージを指定します (制限を使用する場合)。1 Gi の RAM を 100 パーセントでスケーリングすることは、1 CPU コアに相当します。これは CPU 要求をオーバーライドする前に処理されます (設定した場合)。デフォルトは
200です。
ClusterResourceOverrideオブジェクトを作成します。oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -f cro-cr.yaml
$ oc create -f cro-cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスターカスタムリソースのステータスをチェックして、受付 Webhook の現在の状態を確認します。
oc get clusterresourceoverride cluster -n clusterresourceoverride-operator -o yaml
$ oc get clusterresourceoverride cluster -n clusterresourceoverride-operator -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Webhook の呼び出し時に、
mutatingWebhookConfigurationRefセクションが表示されます。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ClusterResourceOverride受付 Webhook への参照。
5.10.3. クラスターレベルのオーバーコミットの設定 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Resource Override Operator には、Operator がオーバーコミットを制御する必要のある各プロジェクトの ClusterResourceOverride カスタムリソース (CR) およびラベルが必要です。
デフォルトでは、インストールプロセスによって、clusterresourceoverride-operator namespace のコントロールプレーンノードに 2 つの Cluster Resource Override Pod が作成されます。必要に応じて、これらの Pod をインフラストラクチャーノードなどの他のノードに移動できます。インフラストラクチャーノードは、環境の実行に必要なサブスクリプションの合計数にカウントされません。詳細は、「Cluster Resource Override Operator Pod の移動」を参照してください。
前提条件
-
制限がコンテナーに設定されていない場合、Cluster Resource Override Operator は影響を与えません。
LimitRangeオブジェクトを使用してプロジェクトのデフォルト制限を指定するか、Pod仕様で制限を設定して上書きが適用されるようにする必要があります。
手順
クラスターレベルのオーバーコミットを変更するには、以下を実行します。
ClusterResourceOverrideCR を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション: コンテナーのメモリー制限をオーバーライドするパーセンテージを 1 - 100 の間で指定します (制限を使用する場合)。デフォルトは
50です。 - 2
- オプション: コンテナーの CPU 制限をオーバーライドするパーセンテージを 1 - 100 の間で指定します (制限を使用する場合)。デフォルトは
25です。 - 3
- オプション: コンテナーのメモリー制限をオーバーライドするパーセンテージを指定します (制限を使用する場合)。1Gi の RAM の 100 パーセントでのスケーリングは、1 CPU コアに等しくなります。これは CPU 要求をオーバーライドする前に処理されます (設定した場合)。デフォルトは
200です。
以下のラベルが Cluster Resource Override Operator がオーバーコミットを制御する必要のある各プロジェクトの namespace オブジェクトに追加されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このラベルを各プロジェクトに追加します。