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

62 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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的节点