系列目录

在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行服务质量管理。QoS的英文全称为"Quality of Service",中文名为"服务质量",它取决于用户对服务质量的预期,也就是期望的服务质量。对于POD来说,服务质量体现在两个指标上,一个指标是CPU,另一个指标是内存。在实际运行过程中,当NODE节点上内存资源紧张的时候,kubernetes根据POD具有的不同QoS标记,采取不同的处理策略。

高
^  +------------------------+
|  |                        |
|  |       Guaranteed       |
|  |                        |
|  +------------------------+
|  |                        |
|  |       Burstable        |
|  |                        |
|  |                        |
|  +------------------------+
|  |                        |
|  |       BestEffort       |
+  |                        |
低  +------------------------+

这三个QoS级别介绍,可以看下面表格:

QoS级别

QoS介绍

BestEffort

POD中的所有容器都没有指定CPU和内存的requests和limits,那么这个POD的QoS就是BestEffort级别

Burstable

POD中只要有一个容器,这个容器requests和limits的设置同其他容器设置的不一致,那么这个POD的QoS就是Burstable级别

Guaranteed

POD中所有容器都必须统一设置了limits,并且设置参数都一致,如果有一个容器要设置requests,那么所有容器都要设置,并设置参数同limits一致,那么这个POD的QoS就是Guaranteed级别

以下是举例说明:

QoS级别

QoS配置例子

BestEffort

containers:

name: foo

resources:

name: bar

resources:

Burstable

containers:

name: foo

resources:

limits:

cpu: 10m

memory: 1Gi

requests:

cpu: 10m

memory: 1Gi

name: bar

containers:

name: foo

resources:

limits:

memory: 1Gi

name: bar

resources:

limits:

cpu: 100m

containers:

name: foo

resources:

requests:

cpu: 10m

memory: 1Gi

name: bar

Guaranteed

containers:

name: foo

resources:

limits:

cpu: 10m

memory: 1Gi

name: bar

resources:

limits:

cpu: 100m

memory: 100Mi

containers:

name: foo

resources:

limits:

cpu: 10m

memory: 1Gi

requests:

cpu: 10m

memory: 1Gi

name: bar

resources:

limits:

cpu: 100m

memory: 100Mi

requests:

cpu: 10m

memory: 1Gi

QoS级别决定了kubernetes处理这些POD的方式,我们以内存资源为例:

  • 当NODE节点上内存资源不够的时候,QoS级别是BestEffort的POD会最先被kill掉;当NODE节点上内存资源充足的时候,QoS级别是BestEffort的POD可以使用NODE节点上剩余的所有内存资源。

  • 当NODE节点上内存资源不够的时候,如果QoS级别是BestEffort的POD已经都被kill掉了,那么会查找QoS级别是Burstable的POD,并且这些POD使用的内存已经超出了requests设置的内存值,这些被找到的POD会被kill掉;当NODE节点上内存资源充足的时候,QoS级别是Burstable的POD会按照requests和limits的设置来使用。

  • 当NODE节点上内存资源不够的时候,如果QoS级别是BestEffort和Burstable的POD都已经被kill掉了,那么会查找QoS级别是Guaranteed的POD,并且这些POD使用的内存已经超出了limits设置的内存值,这些被找到的POD会被kill掉;当NODE节点上内存资源充足的时候,QoS级别是Burstable的POD会按照requests和limits的设置来使用。

  • 从容器的角度出发,为了限制容器使用的CPU和内存,是通过cgroup来实现的,目前kubernetes的QoS只能管理CPU和内存,所以kubernetes现在也是通过对cgroup的配置来实现QoS管理的。

转载于:https://www.cnblogs.com/tylerzhou/p/11043280.html

kubernetes 之QoS服务质量管理相关推荐

  1. Kubernetes1.3:QoS服务质量管理

    Kubernetes1.3:QoS服务质量管理 在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行服务质量管理.QoS的英文全称为"Quality of ...

  2. 关于K8s中资源服务质量管理Resource Qos的一些笔记整理

    写在前面 分享一些 K8s中资源服务质量管理Resource Qos 的笔记 博文内容涉及: K8s Qos 简单介绍 资源配置的特点: 节点的超用,可压缩/不可压缩,完全可靠性等介绍 QoS Cla ...

  3. pod的requests、limits解读、LimitRange资源配额、Qos服务质量等级、资源配额管理 Resource Quotas

    前言 环境:k8s-v1.22.17 docker-20.10.9 centos-7.9 目录 前言 什么是可计算资源 CPU.Memory计量单位 pod资源请求.限额方式 pod定义request ...

  4. 基于 Kubernetes 的微服务项目设计与实现

    作者:xiaojiaqi 来源:https://github.com/xiaojiaqi/deploy-microservices-to-a-Kubernetes-cluster 随着互联网的发展,后 ...

  5. MQTT——QoS服务质量等级

    1.QoS是MQTT协议中的一个重要标志位.在固定报头第一个字节,低4位中定义: 2.QoS服务质量等级分为三级:QoS0,QoS1,QoS2; 2.1.QoS0:最多发送一次,到达不到达发布者不管, ...

  6. 从零开始入门 | Kubernetes 中的服务发现与负载均衡

    作者 | 阿里巴巴技术专家  溪恒 一.需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机 ...

  7. VMware、Pivotal和Google Cloud协力推出全新基于Kubernetes的容器服务——Pivotal Container Service(PKS)...

    本文讲的是VMware.Pivotal和Google Cloud协力推出全新基于Kubernetes的容器服务--Pivotal Container Service(PKS)[编者的话]定制化应用不再 ...

  8. 基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  9. 程序员修神之路--kubernetes是微服务发展的必然产物

    菜菜哥,我昨天又请假出去面试了 战况如何呀? 多数面试题回答的还行,但是最后让我介绍微服务和kubernetes的时候,挂了 话说微服务和kubernetes内容确实挺多的 那你给我大体介绍一下呗 可 ...

最新文章

  1. 给 Python 初学者推荐的 IDE 哦!
  2. 项目Beta冲刺(团队3/7)
  3. 软件工程python就业方向-月薪2万+的Python Web岗,学到什么程度能找到工作?
  4. std::atomic和std::mutex区别
  5. Daemon线程--《Java并发编程的艺术》学习笔记
  6. 浅谈java对象的equals方法
  7. 怀念经理用鼠标线联网的1990年代当时
  8. 韩昊20190919-3 效能分析
  9. 计算机拼图形 比创意教案,图形联想与创意教案
  10. 论文笔记:TrafficPredict: Trajectory Prediction for Heterogeneous Traffic-Agents
  11. Android动态换肤框架PrettySkin原理篇(一)- LayoutInflater的理解及使用
  12. JavaScript 和 Macromedia Flash 之间的通信示例
  13. VSCode Git 使用 GPG
  14. PHP学习文档——基础篇
  15. 计算机系统数据保存期限,哪种存储器存储数据时间长?
  16. 艾永亮:为什么国内品牌很难在市场中生存下去
  17. Linux监控操作系统CPU、内存、磁盘、网络和dstat
  18. Python入门学习笔记
  19. Cindy中的Filter
  20. 怎样形成计算机知识体系,打牢基础,形成网络化知识体系

热门文章

  1. 【计算机网络】数据流简单分析
  2. android系统优化启动时间(Google官方推荐)
  3. Android Apk 签名方案
  4. Handlebars.js入门教程
  5. (一)Reactor模式详解
  6. 大数据时代的 3V + 3高
  7. 常见的关系型数据库和非关系型数据库区别
  8. redis主从配置(一主多从)
  9. DHCP和交换机的工作原理
  10. 学习笔记-JWT 安全