5.9.2. CLI を使用した Cluster Resource Override Operator のインストール
OpenShift 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仕様で制限を設定して上書きが適用されるようにする必要があります。
手順
Cluster Resource Override の namespace を作成します。
Cluster Resource Override Operator の
Namespaceオブジェクト YAML ファイル (cro-namespace.yamlなど) を作成します。apiVersion: v1 kind: Namespace metadata: name: clusterresourceoverride-operatornamespace を作成します。
$ oc create -f <file-name>.yaml以下に例を示します。
$ oc create -f cro-namespace.yaml
Operator グループを作成します。
Cluster Resource Override Operator の
OperatorGroupオブジェクトの YAML ファイル (cro-og.yaml など) を作成します。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: clusterresourceoverride-operator namespace: clusterresourceoverride-operator spec: targetNamespaces: - clusterresourceoverride-operatorOperator グループを作成します。
$ oc create -f <file-name>.yaml以下に例を示します。
$ oc create -f cro-og.yaml
サブスクリプションを作成します。
Cluster Resource Override Operator の
Subscriptionオブジェクト YAML ファイル (cro-sub.yaml など) を作成します。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: clusterresourceoverride namespace: clusterresourceoverride-operator spec: channel: "stable" name: clusterresourceoverride source: redhat-operators sourceNamespace: openshift-marketplaceサブスクリプションを作成します。
$ oc create -f <file-name>.yaml以下に例を示します。
$ oc create -f cro-sub.yaml
ClusterResourceOverrideカスタムリソース (CR) オブジェクトをclusterresourceoverride-operatornamespace に作成します。clusterresourceoverride-operatornamespace に切り替えます。$ oc project clusterresourceoverride-operatorCluster Resource Override Operator の
ClusterResourceOverrideオブジェクト YAML ファイル (cro-cr.yaml など) を作成します。apiVersion: operator.autoscaling.openshift.io/v1 kind: ClusterResourceOverride metadata: name: cluster spec: podResourceOverride: spec: memoryRequestToLimitPercent: 50 cpuRequestToLimitPercent: 25 limitCPUToMemoryPercent: 200以下は、
metadata.name-
CR の名前を指定します。名前は
clusterでなければなりません。 spec.podResourceOverride.spec.memoryRequestToLimitPercent-
コンテナーのメモリー制限を上書きする場合、その上書き率を 1-100% の範囲で指定します。デフォルトは
50です。このパラメーターは任意です。 spec.podResourceOverride.spec.cpuRequestToLimitPercent-
コンテナーの CPU 制限を上書きする場合、その上書き率を 1-100% の範囲で指定します。デフォルトは
25です。このパラメーターは任意です。 spec.podResourceOverride.spec.limitCPUToMemoryPercent-
コンテナーのメモリー制限を上書きする場合、その上書き率を指定します。1 Gi の RAM を 100 パーセントでスケーリングすることは、1 CPU コアに相当します。これは CPU 要求をオーバーライドする前に処理されます (設定した場合)。デフォルトは
200です。このパラメーターは任意です。
ClusterResourceOverrideオブジェクトを作成します。$ oc create -f <file-name>.yaml以下に例を示します。
$ oc create -f cro-cr.yaml
クラスターカスタムリソースのステータスをチェックして、受付 Webhook の現在の状態を確認します。
$ oc get clusterresourceoverride cluster -n clusterresourceoverride-operator -o yamlmutatingWebhookConfigurationRefセクションは、Webhook が呼び出されたときに表示されます。出力例
apiVersion: operator.autoscaling.openshift.io/v1 kind: ClusterResourceOverride metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"operator.autoscaling.openshift.io/v1","kind":"ClusterResourceOverride","metadata":{"annotations":{},"name":"cluster"},"spec":{"podResourceOverride":{"spec":{"cpuRequestToLimitPercent":25,"limitCPUToMemoryPercent":200,"memoryRequestToLimitPercent":50}}}} creationTimestamp: "2019-12-18T22:35:02Z" generation: 1 name: cluster resourceVersion: "127622" selfLink: /apis/operator.autoscaling.openshift.io/v1/clusterresourceoverrides/cluster uid: 978fc959-1717-4bd1-97d0-ae00ee111e8d spec: podResourceOverride: spec: cpuRequestToLimitPercent: 25 limitCPUToMemoryPercent: 200 memoryRequestToLimitPercent: 50 status: # ... mutatingWebhookConfigurationRef: apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration name: clusterresourceoverrides.admission.autoscaling.openshift.io resourceVersion: "127621" uid: 98b3b8ae-d5ce-462b-8ab5-a729ea8f38f3 # ...ここでは、以下のようになります。
status.mutatingWebhookConfigurationRef-
ClusterResourceOverride のアドミッション Webhook を指定します。