2.9.4. Descheduler ストラテジーの設定

Descheduler が Pod のエビクトに使用するストラテジーを設定できます。

前提条件

  • クラスター管理者の権限。

手順

  1. KubeDescheduler オブジェクトを編集します。

    $ oc edit kubedeschedulers.operator.openshift.io cluster -n openshift-kube-descheduler-operator
  2. spec.strategies セクションで 1 つ以上のストラテジーを指定します。

    apiVersion: operator.openshift.io/v1beta1
    kind: KubeDescheduler
    metadata:
      name: cluster
      namespace: openshift-kube-descheduler-operator
    spec:
      deschedulingIntervalSeconds: 3600
      strategies:
        - name: "LowNodeUtilization" 1
          params:
           - name: "CPUThreshold"
             value: "10"
           - name: "MemoryThreshold"
             value: "20"
           - name: "PodsThreshold"
             value: "30"
           - name: "MemoryTargetThreshold"
             value: "40"
           - name: "CPUTargetThreshold"
             value: "50"
           - name: "PodsTargetThreshold"
             value: "60"
           - name: "NumberOfNodes"
             value: "3"
        - name: "RemoveDuplicates" 2
        - name: "RemovePodsHavingTooManyRestarts" 3
          params:
           - name: "PodRestartThreshold"
             value: "10"
           - name: "IncludingInitContainers"
             value: "false"
    1
    LowNodeUtilization ストラテジーは、オプションで設定可能な CPUThreshold および MemoryThreshold などの追加のパラメーターを提供します。
    2
    RemoveDuplicatesRemovePodsViolatingInterPodAntiAffinityRemovePodsViolatingNodeAffinity、および RemovePodsViolatingNodeTaints ストラテジーには、設定する追加のパラメーターがありません。
    3
    RemovePodsHavingTooManyRestarts ストラテジーでは、PodRestartThreshold パラメーターを設定する必要があります。また、オプションの IncludingInitContainers パラメーターを指定します。

    複数のストラテジーを有効にすることができ、ストラテジーを指定する順番は重要ではありません。

  3. 変更を適用するためにファイルを保存します。