4.9.3.2. descheduler プロファイルの設定
クラスターの Pod エビクション動作を管理するには、有効にするデスケジューラープロファイルを選択します。
前提条件
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform にログインしている。
手順
KubeDeschedulerオブジェクトを編集します。$ oc edit kubedeschedulers.operator.openshift.io cluster -n openshift-kube-descheduler-operatorspec.profilesセクションに 1 つ以上のプロファイルを指定します。apiVersion: operator.openshift.io/v1 kind: KubeDescheduler metadata: name: cluster namespace: openshift-kube-descheduler-operator spec: deschedulingIntervalSeconds: 3600 logLevel: Normal managementState: Managed operatorLogLevel: Normal mode: Predictive profileCustomizations: namespaces: excluded: - my-namespace podLifetime: 48h thresholdPriorityClassName: my-priority-class-name profiles: - AffinityAndTaints - TopologyAndDuplicates - LifecycleAndUtilization - EvictPodsWithLocalStorage - EvictPodsWithPVC各項目の説明:
spec.mode-
エビクション方法を指定します。デフォルトでは、descheduler は Pod を退避しません。Pod を退避するには、
modeをAutomaticに設定します。 spec.profileCustomizations.namespaces-
descheduler 操作に含めるか、除外するように、ユーザーが作成した namespace のリストを指定します。
excludednamespace のリストを設定するには exclude を使用するか、含める namespace のリストを設定するにはincludedを使用します。保護されている namespace (openshift-*、kube-system、hypershift) はデフォルトで除外されることに注意してください。この値はオプションです。 spec.profileCustomizations.podLifetime-
LifecycleAndUtilizationプロファイルに対して、カスタムの Pod 有効期間値を指定します。有効な単位はs、m、またはhです。デフォルトの Pod の有効期間は 24 時間です。この値はオプションです。 spec.profileCustomizations.thresholdPriorityClassName-
優先度のしきい値を指定します。優先度が指定されたレベルよりも低い場合にのみ、Pod エビクションを検討します。
thresholdPriorityフィールドを使用して数値の優先度しきい値 (たとえば、10000) を設定するか、thresholdPriorityClassNameフィールドを使用して特定の優先度クラス名 (たとえば、my-priority-class-name) を指定します。優先順位クラス名を指定する場合、これはすでに存在している必要があり、descheduler はエラーを出力します。thresholdPriorityとthresholdPriorityClassNameの両方を設定しないでください。この値はオプションです。 spec.profiles-
有効にするプロファイルを 1 つ以上指定します。使用可能なプロファイル:
AffinityAndTaints、TopologyAndDuplicates、LifecycleAndUtilization、SoftTopologyAndDuplicates、EvictPodsWithLocalStorage、およびEvictPodsWithPVC。複数のプロファイルを有効にすることは可能ですが、互いに競合するプロファイルを有効にしないようにします。プロファイルリストの順序は重要ではありません。
- 変更を適用するためにファイルを保存します。