8.5.2.4. Cluster Resource Override Operator Pod の移動
デフォルトでは、Cluster Resource Override Operator のインストールプロセスにより、clusterresourceoverride-operator namespace のノードに Operator Pod と 2 つの Cluster Resource Override Pod が作成されます。必要に応じて、これらの Pod をインフラストラクチャーノードなどの他のノードに移動できます。
インフラストラクチャーノードを作成して使用し、デフォルトルーター、統合コンテナーイメージレジストリー、クラスターメトリクスとモニタリングのコンポーネントなどのインフラストラクチャーコンポーネントのみをホストできます。これらのインフラストラクチャーノードは、環境の実行に必要なサブスクリプションの合計数にカウントされません。インフラストラクチャーノードの詳細は、「インフラストラクチャーマシンセットの作成」を参照してください。
次の例は、Cluster Resource Override Operator Pod がコントロールプレーンノードにデプロイされ、Cluster Resource Override Operator Pod がワーカーノードにデプロイされていることを示しています。
Cluster Resource Override Pod の例
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
clusterresourceoverride-786b8c898c-9wrdq 1/1 Running 0 23s 10.128.2.32 ip-10-0-14-183.us-west-2.compute.internal <none> <none>
clusterresourceoverride-786b8c898c-vn2lf 1/1 Running 0 26s 10.130.2.10 ip-10-0-20-140.us-west-2.compute.internal <none> <none>
clusterresourceoverride-operator-6b8b8b656b-lvr62 1/1 Running 0 56m 10.131.0.33 ip-10-0-2-39.us-west-2.compute.internal <none> <none>
ノードリストの例
NAME STATUS ROLES AGE VERSION
ip-10-0-14-183.us-west-2.compute.internal Ready control-plane,master 65m v1.33.4
ip-10-0-2-39.us-west-2.compute.internal Ready worker 58m v1.33.4
ip-10-0-20-140.us-west-2.compute.internal Ready control-plane,master 65m v1.33.4
ip-10-0-23-244.us-west-2.compute.internal Ready infra 55m v1.33.4
ip-10-0-77-153.us-west-2.compute.internal Ready control-plane,master 65m v1.33.4
ip-10-0-99-108.us-west-2.compute.internal Ready worker 24m v1.33.4
ip-10-0-24-233.us-west-2.compute.internal Ready infra 55m v1.33.4
ip-10-0-88-109.us-west-2.compute.internal Ready worker 24m v1.33.4
ip-10-0-67-453.us-west-2.compute.internal Ready infra 55m v1.33.4
手順
Cluster Resource Override Operator の
Subscriptionカスタムリソース (CR) にノードセレクターを追加して、Cluster Resource Override Operator Pod を移動します。CR を編集します。
$ oc edit -n clusterresourceoverride-operator subscriptions.operators.coreos.com clusterresourceoverrideCluster Resource Override Operator Pod をインストールするノードのノードロールラベルと一致するノードセレクターを追加します。
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: clusterresourceoverride namespace: clusterresourceoverride-operator # ... spec: config: nodeSelector: node-role.kubernetes.io/infra: ""ここでは、以下のようになります。
spec.config.nodeSelector- Cluster Resource Override OperatorPod をデプロイするノードのロールを指定します。
注記infra ノードが taint を使用する場合は、toleration を
SubscriptionCR に追加する必要があります。以下に例を示します。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: clusterresourceoverride namespace: clusterresourceoverride-operator # ... spec: config: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - key: "node-role.kubernetes.io/infra" operator: "Exists" effect: "NoSchedule"ここでは、以下のようになります。
spec.config.tolerations- infra ノードの taint の toleration を指定します。
ClusterResourceOverrideカスタムリソース (CR) にノードセレクターを追加して、Cluster Resource Override Pod を移動します。CR を編集します。
$ oc edit ClusterResourceOverride cluster -n clusterresourceoverride-operatorinfra ノードのノードロールラベルに一致するノードセレクターを追加します。
apiVersion: operator.autoscaling.openshift.io/v1 kind: ClusterResourceOverride metadata: name: cluster resourceVersion: "37952" spec: podResourceOverride: spec: cpuRequestToLimitPercent: 25 limitCPUToMemoryPercent: 200 memoryRequestToLimitPercent: 50 deploymentOverrides: replicas: 1 nodeSelector: node-role.kubernetes.io/infra: "" # ...ここでは、以下のようになります。
spec.deploymentOverrides.replicas-
デプロイするクラスターリソースオーバーライド Pod の数を指定します。デフォルトは
2です。ノードごとに 1 つの Pod のみが許可されます。このパラメーターは任意です。 spec.deploymentOverrides.nodeSelector- クラスターリソースオーバーライド Pod をデプロイするノードのロールを指定します。このパラメーターは任意です。
注記インフラノードが taint を使用する場合は、
ClusterResourceOverrideCR に toleration を追加する必要があります。以下に例を示します。apiVersion: operator.autoscaling.openshift.io/v1 kind: ClusterResourceOverride metadata: name: cluster # ... spec: podResourceOverride: spec: memoryRequestToLimitPercent: 50 cpuRequestToLimitPercent: 25 limitCPUToMemoryPercent: 200 deploymentOverrides: replicas: 3 nodeSelector: node-role.kubernetes.io/worker: "" tolerations: - key: "key" operator: "Equal" value: "value" effect: "NoSchedule"ここでは、以下のようになります。
spec.deploymentOverrides.tolerations- infra ノードの taint の toleration を指定します。
検証
次のコマンドを使用して、Pod が移動したことを確認できます。
$ oc get pods -n clusterresourceoverride-operator -o wideクラスターリソースオーバーライド Pod がインフラノードにデプロイされました。
出力例
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES clusterresourceoverride-786b8c898c-9wrdq 1/1 Running 0 23s 10.127.2.25 ip-10-0-23-244.us-west-2.compute.internal <none> <none> clusterresourceoverride-786b8c898c-vn2lf 1/1 Running 0 26s 10.128.0.80 ip-10-0-24-233.us-west-2.compute.internal <none> <none> clusterresourceoverride-operator-6b8b8b656b-lvr62 1/1 Running 0 56m 10.129.0.71 ip-10-0-67-453.us-west-2.compute.internal <none> <none>