Pod的优先级(priorityClass)和抢占策略(preemptionPolicy)
Pod优先级
Pod优先级是一个用于指示Pod相对重要程度的整数值。优先级高的Pod在调度时会优先被考虑,并且在资源不足时,优先级较低的Pod可能会被驱逐以释放资源给优先级较高的Pod。Pod优先级的值范围是从0到1000000000,其中0是默认优先级,而大于1000000000的优先级值预留给系统级的关键Pod。
在定义Pod时,可以通过在Pod规范中设置priorityClassName
来指定Pod的优先级类。优先级类是一个资源对象,它包含了一个或多个Pod的优先级值。Pod将根据其所属的优先级类来获得相应的优先级。如果没有明确指定优先级类,Pod将使用默认优先级0。
抢占策略
抢占策略是指在资源不足时,调度器是否允许驱逐低优先级的Pod以释放资源给高优先级的Pod。抢占策略可以通过设置Pod的preemptionPolicy
字段来指定。
Never
:表示Pod不会被驱逐,即使资源不足也无法被调度。这意味着Pod将一直处于等待状态,直到有足够的资源可用。PreemptLowerPriority
:表示如果资源不足,调度器会尝试驱逐优先级较低的Pod以释放资源给当前Pod。这样可以确保高优先级的Pod能够顺利运行。
需要注意的是,抢占策略只适用于具有不同优先级的Pod之间。如果两个Pod具有相同的优先级,那么它们之间不会发生抢占。
Pod优先级和抢占策略可以通过在Pod的配置文件(YAML)中设置相应的字段来实现。下面是一个示例YAML文件,展示了如何为Pod指定优先级和抢占策略:
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: example-image
# 其他容器配置
priorityClassName: high-priority # 指定Pod优先级类
preemptionPolicy: PreemptLowerPriority # 指定抢占策略
# 其他Pod配置
在这个示例中,priorityClassName
字段用于指定Pod的优先级类。high-priority
是一个已经定义的PriorityClass的名称,它包含了Pod的优先级值。你需要确保已经创建了相应的PriorityClass资源对象,并且其名称与priorityClassName
字段的值匹配。
preemptionPolicy
字段用于指定Pod的抢占策略。在这个示例中,PreemptLowerPriority
表示如果资源不足,Pod将尝试驱逐优先级较低的Pod以释放资源。
请注意,Pod优先级和抢占策略在Kubernetes 1.11版本之后默认启用。如果你使用的是较旧的版本,可能需要为kube-scheduler指定--feature-gates=PodPriority=true
来启用这些功能。
另外,你还需要确保PriorityClass资源对象已经正确创建,并且其优先级值设置合理。PriorityClass可以通过以下YAML文件进行创建:
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority
value: 1000000 # 设置优先级值
globalDefault: false # 是否设置为默认优先级类
description: "This priority class should be used for high priority pods." # 描述信息
在这个示例中,high-priority
是一个PriorityClass的名称,value
字段设置了该优先级类的优先级值。globalDefault
字段指示是否将该PriorityClass设置为默认优先级类,description
字段提供了关于该优先级类的描述信息。
创建PriorityClass后,你可以在Pod的配置文件中通过priorityClassName
字段引用它,从而为Pod指定优先级。
Pod的优先级(priorityClass)和抢占策略(preemptionPolicy)的更多相关文章
- kubernetes调度之pod优先级和资源抢占
系列目录 Pod可以拥有优先级.优先意味着相对于其它pod某个pod更为重要.如果重要的pod不能被调度,则kubernetes调度器会优先于(驱离)低优先级的pod来让处于pending状态的高优先 ...
- CPU被夺走的三种状态 执行时间久了 IO操作让cpu等待 被优先级高的抢占
CPU被夺走的三种状态 执行时间久了 IO操作让cpu等待 被优先级高的抢占
- OpenAI Kubernetes 相关博文读后笔记
一.概述 最近 ChatGPT 和其公司 OpenAI 特别火:ChatGPT 3, ChatGPT 3.5, New Bing, ChatGPT 4... 怀着学习的心态,这几天访问了 OpenAI ...
- 生产环境中的kubernetes 优先级与抢占
kubernetes 中的抢占功能是调度器比较重要的feature,但是真正使用起来还是比较危险,否则很容易把低优先级的pod给无辜kill.为了提高GPU集群的资源利用率,决定勇于尝试一番该feat ...
- 10.深入k8s:调度的优先级及抢占机制源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 上一篇我们将了获取node成功的情况,如果是一个优先pod获取nod ...
- 关于STM32的抢占式优先级说明。——Arvin
关于STM32的中断设置.--Arvin 中断 STM32 很多人在配置STM32中断时对固件库中的这个函数NVIC_PriorityGroupConfig()配置优先级分组方式,会很不理解,尤其是看 ...
- 【转】STM32中的抢占优先级、响应优先级概念
STM32(Cortex-M3)中有两个优先级的概念--抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级. 具有高抢占式优先级的中断可以在具 ...
- stm32中断 抢占优先级 和 响应优先级 有什么区别
与51不同,stm32的中断分类更灵活.51只是按先后顺序大小排列互相打断. stm32中多了响应优先级这一概念. stm32的中断分为 1.抢占(占先)优先级. 2.响应优先级. 1.抢占优先级.抢 ...
- Kubernetes Pod驱逐策略
Kubelet 能够主动监测和防止计算资源的全面短缺. 在资源短缺的情况下,kubelet 可以主动地结束一个或多个 Pod 以回收短缺的资源. 当 kubelet 结束一个 Pod 时,它将终止 P ...
- kubernetes调度之 PriorityClass
系列目录 kubernetes支持多种资源调度模式,前面讲过简单的基于nodeName和nodeSelector的服务器资源调度,我们称之为用户绑定策略,下面简要描述基于PriorityClass的同 ...
随机推荐
- 4.0 Python 变量与作用域
在python中,变量的作用域决定了变量在哪些位置可以被访问.一个程序中的变量并不是所有的地方都可以访问的,其访问权限决定于变量的赋值位置.python中有两种最基本的变量作用域:局部作用域和全局作用 ...
- [MySQL] 给root用户设置权限
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'roo ...
- 14代i5-14600K现身:多核性能提升多达11%
14代酷睿桌面端还未发售,就陆续在跑分平台上露出. 平台规格为Z790主板.32GB DDR5-5200内存,酷睿i5-14600K的单核成绩为2819,多核成绩为16666,对比酷睿i5-13600 ...
- 关于 React 的作业(未完结)
一.输出 Hello React 信息到网页的程序,非JSX的写法 代码实现如下: <!DOCTYPE html> <html lang="en"> < ...
- GD库常用实例
GD库常用实例 一.图片水印 1.实现步骤 打开原图(也叫操作的目标图片) 打开水印图(也叫水印来源图片) 使用 imagecopymerge 将小图合并至大图的指定位置 输出图片 销毁资源 2. ...
- ASP.NET Core 6.0+Vue.js 3 实战开发(视频)
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章或视频能成为你成长路上的垫脚石. 录制视频的体验 这是一个收费的视频,很抱歉,让您失望了. 我尝试做点收费的视频,不是因为我不 ...
- HarmonyOS 实战小项目开发(二)
HarmonyOS 实战小项目开发(二) 日常逼逼叨 在上期实战项目一中,已经对于练手项目的背景,后端搭建等做了一定的简述,那么本期将结合HarmonyOS 页面搭建个人性格测试的移动端.如有一些错误 ...
- Typora Mac中文破解版获取
作为程序员,markdown是非常好用的文本编辑语言,而Typora是非常好用的一款markdown编辑工具.Typora提供读者和作家的无缝体验.它删除了预览窗口,模式切换器,降低源代码的语法符号以 ...
- 硬件、OS、数据库各种兼容性傻傻分不清?
服务器硬件型号.OS操作系统版本.Oracle数据库版本.. 各种型号各种版本,排列组合的话也是N多种组合,如何确认这些可以兼容并且得到官方认证呢? 其实很简单,各司其职,各自去确认各自的. 我们知道 ...
- DBGRIDEH 排序 我自己大总结【含DBX,Dac控件】
1.三个属性让DBGridEH可以点击表头自动排序 只要设置下面三个属性: ColumDefValues->Title->TitleButton设为TRUE sortlocal 设为 ...