3.10.6. 優先順位による Pod のフィルター

Descheduler ストラテジーを、それらの優先順位が指定された優先順位レベルより低い場合にのみ Pod をエビクション対象として考慮するように設定できます。指定された優先順位のしきい値を上回る Pod はエビクションの対象として考慮されません。

ThresholdPriority パラメーターを使用して優先順位の数値のしきい値を設定するか、または ThresholdPriorityClassName パラメーターを使用して特定の優先順位クラス名を指定できます。

前提条件

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

手順

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

    $ oc edit kubedeschedulers.operator.openshift.io cluster -n openshift-kube-descheduler-operator
  2. ThresholdPriority または ThresholdPriorityClassName のいずれかのパラメーターを 1 つ以上のストラテジーに追加します。

    apiVersion: operator.openshift.io/v1beta1
    kind: KubeDescheduler
    metadata:
    ...
    spec:
      deschedulingIntervalSeconds: 3600
      strategies:
      - name: "RemovePodsHavingTooManyRestarts"
        params:
        - name: "PodRestartThreshold"
          value: "10"
        - name: "IncludingInitContainers"
          value: "false"
        - name: "ThresholdPriority" 1
          value: "10000"
      - name: "PodLifeTime"
        params:
        - name: "MaxPodLifeTimeSeconds"
          value: "86400"
        - name: "ThresholdPriorityClassName" 2
          value: "my-priority-class-name" 3
    1 2
    同じストラテジーに ThresholdPriorityThresholdPriorityClassName の両方を指定することはできません。
    3
    この優先順位クラス名に関連付けられる数値の優先順位の値はしきい値として使用されます。優先順位クラスはすでに存在している必要があります。存在していない場合に、Descheduler はエラーを出力します。
  3. 変更を適用するためにファイルを保存します。