9.18.11. 在虚拟机上启用 descheduler 驱除


您可以使用 descheduler 来驱除 pod,以便可将 pod 重新调度到更合适的节点上。如果 pod 是虚拟机,pod 驱除会导致虚拟机实时迁移到另一节点。

9.18.11.1. Descheduler 配置集

使用 descheduler 配置集启用根据 pod 生命周期或节点使用率等标准重新平衡集群的特定驱除策略。

使用 KubeVirtRelieveAndMigrateLongLifecycle 配置集在虚拟机上启用 descheduler。

重要

您不能同时启用了 KubeVirtRelieveAndMigrateLongLifeCycle

KubeVirtRelieveAndMigrate

这个配置集是 LongLifeCycle 配置集的一个增强版本。

KubeVirtRelieveAndMigrate 配置集从高成本节点驱除 pod,以减少整体资源费用并启用工作负载迁移。它还定期重新平衡工作负载,以帮助在节点间维护类似的备用容量,从而更好地处理突然负载激增。节点可能会遇到以下成本:

  • 资源利用率 :增加资源压力会导致运行应用程序的开销增加。
  • 节点维护 :节点上的容器数量更多,会增加资源消耗和维护成本。

该配置集启用了 LowNodeUtilization 策略,它带有 EvictionsInBackground alpha 功能。该配置集还会公开以下自定义字段:

  • devActualUtilizationProfile: 启用负载均衡的取消调度。
  • devLowNodeUtilizationThresholds :为 LowNodeUtilization 策略设置实验性阈值。不要将此字段与 devDeviationThresholds 搭配使用。
  • devDeviationThresholds :以低量资源使用率为低等资源的节点,以帮助从过度利用的节点重新分发工作负载。不要将此字段与 devLowNodeUtilizationThresholds 搭配使用。支持的值是:Low (10%:10%), Medium (20%:20%), High (30%:30%), AsymmetricLow (0%:10%), AsymmetricMedium (0%:20%), AsymmetricHigh (0%:30%).
  • devEnableSoftTainter :启用软包含组件,以动态应用或删除软污点作为调度提示。

配置示例

apiVersion: operator.openshift.io/v1
kind: KubeDescheduler
metadata:
  name: cluster
  namespace: openshift-kube-descheduler-operator
spec:
  managementState: Managed
  deschedulingIntervalSeconds: 30
  mode: "Automatic"
  profiles:
    - KubeVirtRelieveAndMigrate
  profileCustomizations:
    devEnableSoftTainter: true
    devDeviationThresholds: AsymmetricLow
    devActualUtilizationProfile: PrometheusCPUCombined

KubeVirtRelieveAndMigrate 配置集要求在所有 worker 节点上启用 PSI 指标。您可以通过应用以下 MachineConfig 自定义资源 (CR) 来启用此项:

MachineConfig CR 示例

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker
  name: 99-openshift-machineconfig-worker-psi-karg
spec:
  kernelArguments:
    - psi=1

注意

MachineConfig 对象的名称非常重要,因为机器配置以字典顺序处理。默认情况下,以 98- 开头的配置会禁用 PSI。要确保启用了 PSI,请将您的配置命名为具有更高前缀,如 99-openshift-machineconfig-worker-psi-karg

您可以将这个配置集与 SoftTopologyAndDuplicates 配置集一起使用,以根据软拓扑约束重新平衡 pod,这在托管 control plane 环境中很有用。

LongLifecycle

此配置集在节点间平衡资源使用量并启用以下策略:

  • RemovePodsHavingTooManyRestarts :删除其容器重启次数太多的 pod,以及其中所有容器(包括 Init 容器)重启的总数超过 100 的 pod。重启虚拟机客户端操作系统不会增加这个计数。
  • LowNodeUtilization :在存在没有被充分利用的节点时,将 pod 从过度使用的节点上驱除。被驱除的 pod 的目标节点将由调度程序决定。

    • 如果节点的用量低于 20%(CPU、内存和 pod 的数量),则该节点将被视为使用率不足。
    • 如果节点的用量超过 50%(CPU、内存和 pod 的数量),则该节点将被视为过量使用。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部