8.3.4. Vertical Pod Autoscaler Operator コンポーネントの移動


Vertical Pod Autoscaler Operator (VPA) は、レコメンダー、アップデーター、アドミッションコントローラーの 3 つのコンポーネントで構成されます。Operator と各コンポーネントには、コントロールプレーンノードの VPA namespace に独自の Pod があります。VPA Operator およびコンポーネント Pod をインフラストラクチャーノードに移動するには、ノードセレクターを VPA サブスクリプションおよび VerticalPodAutoscalerController CR に追加します。

以下の例は、VPA Pod のコントロールプレーンノードへのデフォルトのデプロイメントを示しています。

出力例

NAME                                                READY   STATUS    RESTARTS   AGE     IP            NODE                  NOMINATED NODE   READINESS GATES
vertical-pod-autoscaler-operator-6c75fcc9cd-5pb6z   1/1     Running   0          7m59s   10.128.2.24   c416-tfsbj-master-1   <none>           <none>
vpa-admission-plugin-default-6cb78d6f8b-rpcrj       1/1     Running   0          5m37s   10.129.2.22   c416-tfsbj-master-1   <none>           <none>
vpa-recommender-default-66846bd94c-dsmpp            1/1     Running   0          5m37s   10.129.2.20   c416-tfsbj-master-0   <none>           <none>
vpa-updater-default-db8b58df-2nkvf                  1/1     Running   0          5m37s   10.129.2.21   c416-tfsbj-master-1   <none>           <none>

手順

  1. VPA Operator の Subscription カスタムリソース (CR) にノードセレクターを追加して、VPA Operator Pod を移動します。

    1. CR を編集します。

      $ oc edit Subscription vertical-pod-autoscaler -n openshift-vertical-pod-autoscaler
    2. infra ノードのノードロールラベルに一致するノードセレクターを追加します。

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        labels:
          operators.coreos.com/vertical-pod-autoscaler.openshift-vertical-pod-autoscaler: ""
        name: vertical-pod-autoscaler
      # ...
      spec:
        config:
          nodeSelector:
            node-role.kubernetes.io/infra: "" 
      1
      1 1
      infra ノードのノードロールを指定します。
      注記

      infra ノードが taint を使用する場合は、toleration を Subscription CR に追加する必要があります。

      以下に例を示します。

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        labels:
          operators.coreos.com/vertical-pod-autoscaler.openshift-vertical-pod-autoscaler: ""
        name: vertical-pod-autoscaler
      # ...
      spec:
        config:
          nodeSelector:
            node-role.kubernetes.io/infra: ""
          tolerations: 
      1
      
          - key: "node-role.kubernetes.io/infra"
            operator: "Exists"
            effect: "NoSchedule"
      infra ノードの taint の toleration を指定します。
  2. VerticalPodAutoscaler カスタムリソース (CR) にノードセレクターを追加して、各 VPA コンポーネントを移動します。

    1. CR を編集します。

      $ oc edit VerticalPodAutoscalerController default -n openshift-vertical-pod-autoscaler
    2. infra ノードのノードロールラベルに一致するようにノードセレクターを追加します。

      apiVersion: autoscaling.openshift.io/v1
      kind: VerticalPodAutoscalerController
      metadata:
        name: default
        namespace: openshift-vertical-pod-autoscaler
      # ...
      spec:
        deploymentOverrides:
          admission:
            container:
              resources: {}
            nodeSelector:
              node-role.kubernetes.io/infra: "" 
      1
      
          recommender:
            container:
              resources: {}
            nodeSelector:
              node-role.kubernetes.io/infra: "" 
      2
      
          updater:
            container:
              resources: {}
            nodeSelector:
              node-role.kubernetes.io/infra: "" 
      3
      1
      オプション: VPA アドミッション Pod のノードロールを指定します。
      2
      オプション: VPA レコメンダー Pod のノードロールを指定します。
      3 3
      オプション: VPA アップデータ Pod のノードロールを指定します。
      注記

      ターゲットノードが taint を使用する場合は、VerticalPodAutoscalerController CR に toleration を追加する必要があります。

      以下に例を示します。

      apiVersion: autoscaling.openshift.io/v1
      kind: VerticalPodAutoscalerController
      metadata:
        name: default
        namespace: openshift-vertical-pod-autoscaler
      # ...
      spec:
        deploymentOverrides:
          admission:
            container:
              resources: {}
            nodeSelector:
              node-role.kubernetes.io/infra: ""
            tolerations: 
      1
      
            - key: "my-example-node-taint-key"
              operator: "Exists"
              effect: "NoSchedule"
          recommender:
            container:
              resources: {}
            nodeSelector:
              node-role.kubernetes.io/infra: ""
            tolerations: 
      2
      
            - key: "my-example-node-taint-key"
              operator: "Exists"
              effect: "NoSchedule"
          updater:
            container:
              resources: {}
            nodeSelector:
              node-role.kubernetes.io/infra: ""
            tolerations: 
      3
      
            - key: "my-example-node-taint-key"
              operator: "Exists"
              effect: "NoSchedule"
      infra ノード上の taint に対するアドミッションコントローラー Pod の toleration を指定します。
      infra ノード上の taint に対する推奨 Pod の toleration を指定します。
      infra ノードの taint のアップデーター Pod の toleration を指定します。

検証

  • 次のコマンドを使用して、Pod が移動したことを確認できます。

    $ oc get pods -n openshift-vertical-pod-autoscaler -o wide

    Pod はコントロールプレーンノードにデプロイされなくなりました。次の出力例では、ノードはコントロールプレーンノードではなく、インフラノードになっています。

    出力例

    NAME                                                READY   STATUS    RESTARTS   AGE     IP            NODE                              NOMINATED NODE   READINESS GATES
    vertical-pod-autoscaler-operator-6c75fcc9cd-5pb6z   1/1     Running   0          7m59s   10.128.2.24   c416-tfsbj-infra-eastus3-2bndt   <none>           <none>
    vpa-admission-plugin-default-6cb78d6f8b-rpcrj       1/1     Running   0          5m37s   10.129.2.22   c416-tfsbj-infra-eastus1-lrgj8   <none>           <none>
    vpa-recommender-default-66846bd94c-dsmpp            1/1     Running   0          5m37s   10.129.2.20   c416-tfsbj-infra-eastus1-lrgj8   <none>           <none>
    vpa-updater-default-db8b58df-2nkvf                  1/1     Running   0          5m37s   10.129.2.21   c416-tfsbj-infra-eastus1-lrgj8   <none>           <none>

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る