Docs/CloudNative/Kubernetes/Base/k8s优先级与抢占调度.md
2022-10-18 16:59:37 +08:00

1.2 KiB
Raw Blame History

1、先到先得简单公平 2、优先级策略Priority符合公司业务特点

PodPriority

优先级调度配置 1、创建PriorityClass 2、为各个pod配置上不同的priorityClassName

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high
value: 1000
globalDefault: false
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: low
value: 10
globalDefault: false

为pod1配置上high为pod2配置上low

...
spec:
  priorityClassName: high  # 或者low
...

一些内置的优先级设置

内置的默认优先级

DefaultPriorityWhenNoDefaultClassExists=0
如果未设置优先级那么默认优先级都为0

用户可配置的最大优先级限制

HighestUserDefinablePriority=10亿

系统级别优先级

SystemCriticalPriority=20亿

内置系统级别优先级

system-cluster-critical
system-node-critical

抢占调度 1、优先选择打破pdb最少的节点Pod Disruption BudgetPod中断预算 2、选择待抢占的pods中最大优先级最小的节点 3、选择待抢占的pod优先级加和最小的节点 4、接下来选择待抢占pod数量最小的节点 5、最后选择拥有最晚启动pod的节点