3.10.5. namespace を使用した Pod のフィルター
Pod が namespace に基づいてエビクション対象として考慮されるかどうかを設定できます。以下の Descheduler ストラテジーのみが namespace のフィルターをサポートします。
-
PodLifeTime
-
RemovePodsHavingTooManyRestarts
-
RemovePodsViolatingInterPodAntiAffinity
-
RemovePodsViolatingNodeAffinity
-
RemovePodsViolatingNodeTaints
IncludeNamespaces
パラメーターを使用して、Descheduler ストラテジーを実行する必要のある namespace を指定したり、ExcludeNamespaces
パラメーターを使用して Descheduler ストラテジーを実行できない namespace を指定したりできます。
前提条件
- クラスター管理者の権限。
手順
KubeDescheduler
オブジェクトを編集します。$ oc edit kubedeschedulers.operator.openshift.io cluster -n openshift-kube-descheduler-operator
IncludeNamespaces
またはExcludeNamespaces
パラメーターのいずれかを 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: "IncludeNamespaces" 1 value: "my-project" 2 - name: "PodLifeTime" params: - name: "MaxPodLifeTimeSeconds" value: "86400" - name: "ExcludeNamespaces" 3 value: "my-other-project" 4
- 変更を適用するためにファイルを保存します。