当前位置: 首页 > news >正文

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 分为三种类型,分别是:

  1. Guaranteed:资源请求和限制都已明确设置,并且一致。适用于最需要严格资源保证的场景。
  2. Burstable:只设置了资源请求,或者请求和限制不一致,适用于对资源有一定保证,但仍然能够利用节点余量的容器。
  3. 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"
  • requestslimits 都设置为相同的值 512Mi500m
  • 这种配置确保了该容器会被分配并保证获得 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 没有设置 requestslimits,因此该 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-1Guaranteed 类型,因为它的 requestslimits 相同。
  • container-2Burstable 类型,因为它的 requestslimits 不同。

在这种情况下,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 文件&#xff1a; 2. Burstable QoS 示例示例 YAML 文件&#xff1a; 3. BestEffort QoS 示例示例 YAML 文件&#xff1a; 4. 混合 QoS 示例&#xff08;多个容器&#xff09;示例 YAML …...

顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Maltab)

顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测&#xff08;Maltab&#xff09; 目录 顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测&#xff08;Maltab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实…...

什么语言适合做 Serverless 开发?

随着云计算的普及&#xff0c;**无服务器架构&#xff08;Serverless Architecture&#xff09;**成为一种流行的开发模式&#xff0c;它使得开发者无需管理服务器基础设施&#xff0c;专注于编写应用逻辑。无服务器架构通常按需提供计算资源&#xff0c;能够灵活地扩展&#x…...

使用OpenCV和卡尔曼滤波器进行实时活体检测

引言 在现代计算机视觉应用中&#xff0c;实时检测和跟踪物体是一项重要的任务。本文将详细介绍如何使用OpenCV库和卡尔曼滤波器来实现一个实时的活体检测系统。该系统能够通过摄像头捕捉视频流&#xff0c;并使用YOLOv3模型来检测目标对象&#xff08;例如人&#xff09;&…...

【25春招前端八股文】——JS数据类型检测方式

检测数据类型 # typeof 总结&#xff1a;数组、对象、null都会被判断为object&#xff0c;其他判断都正确的类型。 可以检测基本数据类型null会检测为Object&#xff0c;因为null也是一个空的引用对象复杂数据类型只能检测function和Object 情况说明&#xff1a; 数组&#x…...

Kafka的学习路径规划

目录标题 1. 记&#xff08;记忆力&#xff09;Kafka核心概念Kafka关键配置 2. 懂&#xff08;理解力&#xff09;Kafka工作原理Kafka核心功能Kafka架构设计 3. 网&#xff08;知识网络&#xff09;技术栈整合用例和场景 4. 拓&#xff08;全面拓展&#xff09;学习材料多样化内…...

linux模拟试题

Linux 基础阶段考试笔试模拟试卷 审核人:王旺旺 一.填空题(每题 1 分,共 30 分) 1.验证 httpd 服务是否启动的命令是_______ 答:systemctl status httpd 或 netstat -anptl 或 ss -anpt 2.将目录 xxhf 下所有文件的所属组改为 user1 的命令是_______ 答:chown -R ,user1 …...

Qt-界面优化QSS

QSS介绍 先说下CSS&#xff1a; 在⽹⻚前端开发领域中, CSS 是⼀个⾄关重要的部分. 描述了⼀个⽹⻚的 "样式". 从⽽起到对⽹⻚美化的作⽤。 Qt 仿照 CSS 的模式, 引⼊了 QSS, 来对 Qt 中的控件做出样式上的设定 。 CSS的功能很强大&#xff0c;QSS要逊色一些&#…...

QT实战-qt各种菜单样式实现

本文主要介绍了qt普通菜单样式、带选中样式、带子菜单样式、超过一屏幕菜单样式、自定义带有滚动条的菜单样式&#xff0c; 先上图如下&#xff1a; 1.普通菜单样式 代码&#xff1a; m_pmenu new QMenu(this);m_pmenu->setObjectName("quoteListMenu"); qss文…...

深度学习基础03_BP算法(下)过拟合和欠拟合

目录 一、BP算法(下) 0、反向传播代码回顾 写法一&#xff1a; 写法二(更常用)&#xff1a; 1、BP中的梯度下降 1.数学描述 2.传统下降方式 3.优化梯度下降方式 指数加权平均 Momentum AdaGrad RMSProp Adam(常用) 总结 二、过拟合和欠拟合 1、概念 1.过拟合 …...

web vue 滑动选择 n宫格选中 九宫格选中

页面动态布局经常性要交给客户来操作&#xff0c;他们按时他们的习惯在同一个屏幕内显示若干个子视图&#xff0c;尤其是在医学影像领域对于影像的同屏显示目视对比显的更为重要。 来看看如下的用户体验&#xff1a; 设计为最多支持5行6列页面展示后&#xff0c;右侧的布局则动…...

Spring Boot整合EasyExcel

Spring Boot整合EasyExcel主要涉及到以下几个步骤&#xff1a; 1.添加EasyExcel依赖到Spring Boot项目的pom.xml文件中。 2.创建数据模型类&#xff0c;用于映射Excel文件中的数据。 3.编写读取和写入Excel的服务。 以下是一个简单的例子&#xff1a; 1.添加EasyExcel依赖 …...

微软表示不会使用你的 Word、Excel 数据进行 AI 训练

​微软否认使用 Microsoft 365 应用程序&#xff08;包括 Word、Excel 和 PowerPoint&#xff09;收集数据来训练公司人工智能 (AI) 模型的说法。 此前&#xff0c;Tumblr 的一篇博文声称&#xff0c;雷德蒙德使用“互联体验”功能抓取客户的 Word 和 Excel 数据&#xff0c;用…...

JavaScript(一)

1.JavaScript 基本使用 2.JavaScript简单事件 3.JavaScript修改样式 4.JavaScript数据类型 JavaScript和Java有什么关系 知识点一 JavaScript基本使用 JS写在哪 还有一种写在中间的&#xff0c;也就是<head>里面 JS一些注意事项 JS修改元素内容 #JS获取对象<…...

Day 32 动态规划part01

今天正式开始动态规划! 理论基础 无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了? 其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!…...

winform跨线程更新界面

前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任软件经理&#xff0c;从事C#上位机软件开发8年以上&#xff01;我们在开发C#程序的时候&#xff0c;有时候需要在非Ui主线程更新界面&#xff0c;为了…...

【合作原创】使用Termux搭建可以使用的生产力环境(二)

前言 上期文章没看的可以先从上期文章开始看起 【合作原创】使用Termux搭建可以使用的生产力环境&#xff08;一&#xff09;-CSDN博客 目前我们已经完成了FinalShell ssh连接手机Termux的功能了&#xff0c;这期我们继续朝我们的目标前进。今天早上有读者进群以为生成环境指…...

微积分复习笔记 Calculus Volume 2 - 3.3 Trigonometric Substitution

3.3 Trigonometric Substitution - Calculus Volume 2 | OpenStax...

vue2+svg+elementui实现花瓣图自定义el-select回显色卡图片

项目需要实现花瓣图&#xff0c;但是改图表在echarts&#xff0c;highCharts等案例中均未出现&#xff0c;有类似的韦恩图&#xff0c;但是和需求有所差距&#xff1b; 为实现该效果&#xff0c;静态图表上采取svg来手动绘制花瓣&#xff1a; 确定中心点&#xff0c;以该点为中…...

记录一次网关异常

记一次网关异常 网关时不时就会出现下面的异常。关键是不知道什么时候就会报错&#xff0c;并且有时候就算什么都不操作&#xff0c;也会导致这个异常。 ERROR org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in schedul…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

STM32标准库-ADC数模转换器

文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”&#xff1a;输入模块&#xff08;GPIO、温度、V_REFINT&#xff09;1.4.2 信号 “调度站”&#xff1a;多路开关1.4.3 信号 “加工厂”&#xff1a;ADC 转换器&#xff08;规则组 注入…...