k8s Quality of Service
文章目录
- QoS 分类规则
- QoS 类别影响
- 创建 QoS 分类的案例
- 1. Guaranteed QoS 示例
- 示例 YAML 文件:
- 2. Burstable QoS 示例
- 示例 YAML 文件:
- 3. BestEffort QoS 示例
- 示例 YAML 文件:
- 4. 混合 QoS 示例(多个容器)
- 示例 YAML 文件:
- 5. Pod QoS 分配总结
- 查看 QoS 类别
- 总结
Kubernetes 提供了 Quality of Service (QoS) 的功能,以帮助管理和保障 Pod 的资源分配。QoS 分类机制根据 Pod 请求和限制的资源配置,将 Pod 分为三种类型,分别是:
- Guaranteed:资源请求和限制都已明确设置,并且一致。适用于最需要严格资源保证的场景。
- Burstable:只设置了资源请求,或者请求和限制不一致,适用于对资源有一定保证,但仍然能够利用节点余量的容器。
- BestEffort:没有设置资源请求和限制。适用于最不重要、能够被最优先终止的容器。
QoS 分类规则
- Guaranteed:如果 Pod 中的所有容器都设置了 请求和限制 且请求和限制的值相同,那么该 Pod 会被分配到 Guaranteed 类别。
- Burstable:如果 Pod 中的容器设置了 请求 和 限制,但是请求和限制的值不相同,或者有些容器没有设置
limit,那么该 Pod 会被分配到 Burstable 类别。 - BestEffort:如果 Pod 中的所有容器都没有设置任何 请求和限制,那么该 Pod 会被分配到 BestEffort 类别。
QoS 类别影响
- Guaranteed:这种类型的 Pod 会得到最优的资源保障,它不会被调度到资源过载的节点上,也不会被 OOM(Out Of Memory)或系统压力杀死。
- Burstable:这种类型的 Pod 可能会在资源紧张时被限制或终止,尤其是在其他 Pod 需要更多资源时。
- BestEffort:这种类型的 Pod 是最容易被抢占和杀死的,尤其在节点资源不足时,Kubernetes 会优先选择终止它们。
创建 QoS 分类的案例
以下是几个示例,展示了不同类型的 QoS 分类如何在实际应用中使用。
1. Guaranteed QoS 示例
Guaranteed QoS 适用于那些希望获得最大资源保障的应用,容器的 请求和限制 设置为相同的值。
示例 YAML 文件:
apiVersion: v1
kind: Pod
metadata:name: guaranteed-pod
spec:containers:- name: app-containerimage: nginxresources:requests:memory: "512Mi"cpu: "500m"limits:memory: "512Mi"cpu: "500m"
- requests 和 limits 都设置为相同的值
512Mi和500m。 - 这种配置确保了该容器会被分配并保证获得 500m 的 CPU 和 512Mi 的内存,且不会超出这个限制,因此属于 Guaranteed QoS 类型。
2. Burstable QoS 示例
Burstable QoS 适用于那些希望获得一定资源保证,但同时允许在节点有剩余资源时 “突发” 使用更多资源的应用。
示例 YAML 文件:
apiVersion: v1
kind: Pod
metadata:name: burstable-pod
spec:containers:- name: app-containerimage: nginxresources:requests:memory: "256Mi"cpu: "200m"limits:memory: "1Gi"cpu: "2"
requests设置了 256Mi 的内存和 200m 的 CPU,表示容器的最小资源需求。limits设置了 1Gi 的内存和 2 核 CPU,表示容器的最大资源使用限制。- 由于请求和限制的资源不同,因此该 Pod 会被分配到 Burstable QoS 类型。
3. BestEffort QoS 示例
BestEffort QoS 适用于那些不需要保证资源的应用,Kubernetes 会尽可能地为这些容器提供资源,但如果节点资源不足,它们会被优先驱逐。
示例 YAML 文件:
apiVersion: v1
kind: Pod
metadata:name: besteffort-pod
spec:containers:- name: app-containerimage: nginxresources: {} # 没有设置 requests 和 limits
- 该 Pod 没有设置 requests 或 limits,因此该 Pod 会被分配到 BestEffort QoS 类型。
- 它会在集群资源紧张时被优先终止,适用于不需要严格资源保证的非关键任务。
4. 混合 QoS 示例(多个容器)
在一个 Pod 中,可以有多个容器。如果某些容器的请求和限制相同,而其他容器的请求和限制不同,Kubernetes 会根据不同容器的配置来为 Pod 分配 QoS 类别。
示例 YAML 文件:
apiVersion: v1
kind: Pod
metadata:name: mixed-pod
spec:containers:- name: container-1image: nginxresources:requests:memory: "512Mi"cpu: "500m"limits:memory: "512Mi"cpu: "500m"- name: container-2image: nginxresources:requests:memory: "256Mi"cpu: "250m"limits:memory: "1Gi"cpu: "1"
container-1是 Guaranteed 类型,因为它的requests和limits相同。container-2是 Burstable 类型,因为它的requests和limits不同。
在这种情况下,Pod 的 QoS 会根据容器中的最高级别来进行分配,因此这个 Pod 会被视为 Burstable。
当 Pod 中有容器的 requests 和 limits 不一致时,整个 Pod 将被分类为 Burstable,即使某些容器满足 Guaranteed 的条件。
5. Pod QoS 分配总结
- Guaranteed:请求和限制都设置,且请求和限制的值相同。
- Burstable:请求和限制都设置,且请求和限制的值不同,或者只设置了其中之一。
- BestEffort:没有设置任何请求和限制。
查看 QoS 类别
你可以使用以下命令查看一个 Pod 的 QoS 类别:
kubectl get pod <pod-name> -o=jsonpath='{.status.qosClass}'
例如:
kubectl get pod burstable-pod -o=jsonpath='{.status.qosClass}'
输出会是类似这样的内容:
Burstable
总结
Kubernetes 的 QoS 分类是通过 请求(requests) 和 限制(limits) 来实现的,可以帮助管理员根据资源需求进行精细化控制。对于生产环境中的关键任务应用,可以使用 Guaranteed 类型来确保它们有稳定的资源;对于一些可适当突发的应用,可以使用 Burstable 类型;对于不需要严格资源控制的应用,可以使用 BestEffort 类型,降低它们的资源消耗。
通过合理设置资源请求和限制,你可以确保在节点资源有限的情况下,重要任务能够优先获得资源,而不重要的任务则能够适应资源的不足。
相关文章:
k8s Quality of Service
文章目录 QoS 分类规则QoS 类别影响创建 QoS 分类的案例1. Guaranteed QoS 示例示例 YAML 文件: 2. Burstable QoS 示例示例 YAML 文件: 3. BestEffort QoS 示例示例 YAML 文件: 4. 混合 QoS 示例(多个容器)示例 YAML …...
顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Maltab)
顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Maltab) 目录 顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Maltab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实…...
什么语言适合做 Serverless 开发?
随着云计算的普及,**无服务器架构(Serverless Architecture)**成为一种流行的开发模式,它使得开发者无需管理服务器基础设施,专注于编写应用逻辑。无服务器架构通常按需提供计算资源,能够灵活地扩展&#x…...
使用OpenCV和卡尔曼滤波器进行实时活体检测
引言 在现代计算机视觉应用中,实时检测和跟踪物体是一项重要的任务。本文将详细介绍如何使用OpenCV库和卡尔曼滤波器来实现一个实时的活体检测系统。该系统能够通过摄像头捕捉视频流,并使用YOLOv3模型来检测目标对象(例如人)&…...
【25春招前端八股文】——JS数据类型检测方式
检测数据类型 # typeof 总结:数组、对象、null都会被判断为object,其他判断都正确的类型。 可以检测基本数据类型null会检测为Object,因为null也是一个空的引用对象复杂数据类型只能检测function和Object 情况说明: 数组&#x…...
Kafka的学习路径规划
目录标题 1. 记(记忆力)Kafka核心概念Kafka关键配置 2. 懂(理解力)Kafka工作原理Kafka核心功能Kafka架构设计 3. 网(知识网络)技术栈整合用例和场景 4. 拓(全面拓展)学习材料多样化内…...
linux模拟试题
Linux 基础阶段考试笔试模拟试卷 审核人:王旺旺 一.填空题(每题 1 分,共 30 分) 1.验证 httpd 服务是否启动的命令是_______ 答:systemctl status httpd 或 netstat -anptl 或 ss -anpt 2.将目录 xxhf 下所有文件的所属组改为 user1 的命令是_______ 答:chown -R ,user1 …...
Qt-界面优化QSS
QSS介绍 先说下CSS: 在⽹⻚前端开发领域中, CSS 是⼀个⾄关重要的部分. 描述了⼀个⽹⻚的 "样式". 从⽽起到对⽹⻚美化的作⽤。 Qt 仿照 CSS 的模式, 引⼊了 QSS, 来对 Qt 中的控件做出样式上的设定 。 CSS的功能很强大,QSS要逊色一些&#…...
QT实战-qt各种菜单样式实现
本文主要介绍了qt普通菜单样式、带选中样式、带子菜单样式、超过一屏幕菜单样式、自定义带有滚动条的菜单样式, 先上图如下: 1.普通菜单样式 代码: m_pmenu new QMenu(this);m_pmenu->setObjectName("quoteListMenu"); qss文…...
深度学习基础03_BP算法(下)过拟合和欠拟合
目录 一、BP算法(下) 0、反向传播代码回顾 写法一: 写法二(更常用): 1、BP中的梯度下降 1.数学描述 2.传统下降方式 3.优化梯度下降方式 指数加权平均 Momentum AdaGrad RMSProp Adam(常用) 总结 二、过拟合和欠拟合 1、概念 1.过拟合 …...
web vue 滑动选择 n宫格选中 九宫格选中
页面动态布局经常性要交给客户来操作,他们按时他们的习惯在同一个屏幕内显示若干个子视图,尤其是在医学影像领域对于影像的同屏显示目视对比显的更为重要。 来看看如下的用户体验: 设计为最多支持5行6列页面展示后,右侧的布局则动…...
Spring Boot整合EasyExcel
Spring Boot整合EasyExcel主要涉及到以下几个步骤: 1.添加EasyExcel依赖到Spring Boot项目的pom.xml文件中。 2.创建数据模型类,用于映射Excel文件中的数据。 3.编写读取和写入Excel的服务。 以下是一个简单的例子: 1.添加EasyExcel依赖 …...
微软表示不会使用你的 Word、Excel 数据进行 AI 训练
微软否认使用 Microsoft 365 应用程序(包括 Word、Excel 和 PowerPoint)收集数据来训练公司人工智能 (AI) 模型的说法。 此前,Tumblr 的一篇博文声称,雷德蒙德使用“互联体验”功能抓取客户的 Word 和 Excel 数据,用…...
JavaScript(一)
1.JavaScript 基本使用 2.JavaScript简单事件 3.JavaScript修改样式 4.JavaScript数据类型 JavaScript和Java有什么关系 知识点一 JavaScript基本使用 JS写在哪 还有一种写在中间的,也就是<head>里面 JS一些注意事项 JS修改元素内容 #JS获取对象<…...
Day 32 动态规划part01
今天正式开始动态规划! 理论基础 无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了? 其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!…...
winform跨线程更新界面
前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#程序的时候,有时候需要在非Ui主线程更新界面,为了…...
【合作原创】使用Termux搭建可以使用的生产力环境(二)
前言 上期文章没看的可以先从上期文章开始看起 【合作原创】使用Termux搭建可以使用的生产力环境(一)-CSDN博客 目前我们已经完成了FinalShell ssh连接手机Termux的功能了,这期我们继续朝我们的目标前进。今天早上有读者进群以为生成环境指…...
微积分复习笔记 Calculus Volume 2 - 3.3 Trigonometric Substitution
3.3 Trigonometric Substitution - Calculus Volume 2 | OpenStax...
vue2+svg+elementui实现花瓣图自定义el-select回显色卡图片
项目需要实现花瓣图,但是改图表在echarts,highCharts等案例中均未出现,有类似的韦恩图,但是和需求有所差距; 为实现该效果,静态图表上采取svg来手动绘制花瓣: 确定中心点,以该点为中…...
记录一次网关异常
记一次网关异常 网关时不时就会出现下面的异常。关键是不知道什么时候就会报错,并且有时候就算什么都不操作,也会导致这个异常。 ERROR org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in schedul…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
