k8s-pod设置执行优先级
PriorityClass是Kubernetes中用于指定Pod优先级的机制。通过为Pod分配不同的优先级,K8s调度器可以更好地管理资源,确保高优先级的Pod被更优先地调度。globalDefault: 是否将该优先级类设为全局默认,即在没有为Pod指定PriorityClass的情况下使用该类的优先级。将定义好的PriorityClass应用到实际的Pod。value: 优先级的数值,数值越大
Pod的优先级管理是Kubernetes调度中的一个重要特性,通过PriorityClass(优先级类)的设置,我们可以为Pod指定不同的优先级,从而在资源有限的情况下更精细地调整调度顺序
什么是PriorityClass?
PriorityClass是Kubernetes中用于指定Pod优先级的机制。通过为Pod分配不同的优先级,K8s调度器可以更好地管理资源,确保高优先级的Pod被更优先地调度。PriorityClass主要由以下几个组件构成:
name: 优先级类的名称,用于标识该类。
value: 优先级的数值,数值越大,优先级越高。
globalDefault: 是否将该优先级类设为全局默认,即在没有为Pod指定PriorityClass的情况下使用该类的优先级。
description: 对优先级类的描述
preemptionPolicy: 抢占策略
优先级策略 默认是Never
非抢占优先:指的是在调度阶段优先进行调度分配,一旦容器调度完成就不可以抢占,资源不足时,只能等待,对应 preemptionPolicy: Never
抢占优先:强制调度一个Pod,如果资源不足无法被调度,调度程序会抢占(删除)较低优先级的Pod的资源,来保证高优先级Pod的运行,对应 preemptionPolicy: PreemptLowerPriority
1.在服务器中创建high_priority_class.yaml文件,内容如下(要求k8s版本在1.20以上)
低版本的k8s也能用,但是apiversion要改成beta版本
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority
value: 888
globalDefault: false
description: "High priority class"
kubectl create -f high_priority_class.yaml
2.应用PriorityClass到Pod
将定义好的PriorityClass应用到实际的Pod。以下是一个示例,演示了如何在Pod中指定PriorityClass:
apiVersion: v1
kind: Pod
metadata:
name: high-priority-pod
spec:
containers:
- name: nginx-container
image: nginx:latest
priorityClassName: high-priority
更多推荐
所有评论(0)