云容器引擎 CCE-重调度(Descheduler):配置资源碎片整理策略
配置资源碎片整理策略
配置CPU和内存资源碎片率整理策略(HighNodeUtilization)时,Volcano调度器需要同时开启binpack调度策略,示例步骤如下。
- 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“配置中心”,通过“调度配置”页面启用装箱策略(binpack)。详情请参见装箱调度(Binpack)。
- 单击左侧导航栏的“插件中心”,在右侧找到Volcano调度器,单击“安装”或“编辑”。
- 在“参数配置”中修改高级配置,配置资源碎片整理策略。
{ "colocation_enable": "", "default_scheduler_conf": { "actions": "allocate, backfill, preempt", "tiers": [ { "plugins": [ { "name": "priority" }, { "enablePreemptable": false, "name": "gang" }, { "name": "conformance" }, { "arguments": { "binpack.weight": 5 }, "name": "binpack" } ] }, { "plugins": [ { "enablePreemptable": false, "name": "drf" }, { "name": "predicates" }, { "name": "nodeorder" } ] }, { "plugins": [ { "name": "cce-gpu-topology-predicate" }, { "name": "cce-gpu-topology-priority" }, { "name": "cce-gpu" } ] }, { "plugins": [ { "name": "nodelocalvolume" }, { "name": "nodeemptydirvolume" }, { "name": "node CS Ischeduling" }, { "name": "networkresource" } ] } ] }, "deschedulerPolicy": { "profiles": [ { "name": "ProfileName", "pluginConfig": [ { "args": { "ignorePvcPods": true, "nodeFit": true, "priorityThreshold": { "value": 100 } }, "name": "DefaultEvictor" }, { "args": { "evictableNamespaces": { "exclude": ["kube-system"] }, "thresholds": { "cpu": 25, "memory": 25 } }, "name": "HighNodeUtilization" } ], "plugins": { "balance": { "enabled": ["HighNodeUtilization"] } } } ] }, "descheduler_enable": "true", "deschedulingInterval": "10m" }
表3 集群重调度策略关键参数 参数
说明
descheduler_enable
集群重调度策略开关。
- true:启用集群重调度策略。
- false:不启用集群重调度策略。
deschedulingInterval
重调度的周期。
deschedulerPolicy
集群重调度策略,详情请参见表4。
表4 deschedulerPolicy配置参数 参数
说明
profiles.[].plugins.balance.enable.[]
指定集群重调度策略类型。
HighNodeUtilization:表示使用资源碎片整理策略。
profiles.[].pluginConfig.[].name
使用负载感知重调度策略时,会使用以下配置:
- DefaultEvictor:默认驱逐策略。
- HighNodeUtilization:资源碎片整理策略。
profiles.[].pluginConfig.[].args
集群重调度策略的具体配置。
- 对于DefaultEvictor配置,配置参数如下:
- ignorePvcPods:是否忽略挂载PVC的Pod,true表示忽略,false表示不忽略。该忽略动作未根据PVC类型(LocalPV/SFS/EVS等)进行区分。
- nodeFit:是否重调度时是否考虑节点上存在的调度配置,例如节点亲和性、污点等。true表示考虑,false表示不考虑。
- priorityThreshold:优先级设置。当Pod的优先级大于或者等于该值时,不会被驱逐。示例如下:
{ "value": 100 }
- 对于HighNodeUtilization配置,配置参数如下:
- evictableNamespaces:驱逐策略的适用命名空间,默认范围设置为除kube-system命名空间。示例如下:
{ "exclude": ["kube-system"] }
- thresholds:节点驱逐Pod的阈值,当节点低于此阈值时,该节点上的Pod会被驱逐。示例如下:
{ "cpu": 25, "memory": 25 }
- evictableNamespaces:驱逐策略的适用命名空间,默认范围设置为除kube-system命名空间。示例如下:
- 完成以上配置后,单击“确定”。