0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于K8S的服务质量QoS你知道多少?

马哥Linux运维 来源:ZHDYA 2023-05-22 10:21 次阅读

一、K8S中的应用服务质量(QoS)

服务质量(QoS)类是Kubernetes的概念,它确定Pod的调度和驱逐优先级

Kubelet使用它来管理驱逐pod的顺序,以及使用高级CPU管理策略允许更复杂的pod调度决策。

QoS由Kubernetes本身分配给Pod。但是,DevOps可以通过处理Pod内各个容器的资源请求和限制来控制分配给容器的QoS类。

二、QoS级别

Guaranteed:POD中所有容器(包含初始化容器)都必须统一设置了limits,并且设置参数都一致;

Burstable:POD中有容器设置了 内存 或 CPU request;

BestEffort:POD中的所有容器都没有指定CPU和内存的requests和limits;

2.1、Guaranteed

对于 QoS 类为 Guaranteed 的 Pod:

Pod 中的每个容器,包含初始化容器,必须指定内存 请求和 内存 限制,并且两者要相等。

Pod 中的每个容器,包含初始化容器,必须指定 CPU 请求和 CPU 限制,并且两者要相等。

apiVersion: v1
kind: Pod
metadata:
name: qos-demo
spec:
containers:
- name: qos-demo
 image: nginx
 resources:
  limits:
   memory: "500Mi"
   cpu: "700m"
  requests:
   memory: "500Mi"
   cpu: "700m"

验证:

# kubectl describe po qos-demo
···
QoS Class:          Guaranteed

注意点:

如果容器指定了自己的内存limits,但没有指定内存requests,Kubernetes 会自动为它指定与内存limits匹配的内存requests。同样,如果容器指定了自己的 CPU limits,但没有指定 CPU requests,Kubernetes 会自动为它指定与 CPU limits匹配的 CPU requests;

2.2、Burstable

如果满足下面条件,将会指定 Pod 的 QoS 类为 Burstable:

Pod 不符合 Guaranteed QoS 类的标准;

Pod 中至少一个容器具有内存 CPU requests;

apiVersion: v1
kind: Pod
metadata:
name: qos-demo2
spec:
containers:
- name: qos-demo2
 image: nginx
 resources:
  limits:
   memory: "500Mi"
  requests:
   memory: "200Mi"

验证:

# kubectl describe po qos-demo2
···
QoS Class:          Burstable

2.3、BestEffort

对于 QoS 类为 BestEffort 的 Pod,Pod 中的容器必须没有设置内存和 CPU 限制或请求。

apiVersion: v1
kind: Pod
metadata:
name: qos-demo3
spec:
containers:
- name: qos-demo3
 image: nginx

三、QoS优先级

3种QoS优先级从有低到高(从左向右):

BestEffort pods -> Burstable pods -> Guaranteed pods

四、驱逐原理

可压缩资源:CPU

在压缩资源部分已经提到CPU属于可压缩资源,当pod使用超过设置的limits值,pod中进程使用cpu会被限制,但不会被kill。

不可压缩资源:内存

4.1、节点OOM时如何处理Guaranteed, Burstable 和 BestEffort Pods?

如果节点在Kubelet可以回收之前耗尽了内存,即节点发生了oom,则oom_killer会根据其oom_score终止容器。

对于 “Guaranteed” Pod中的容器,oom_score_adj 为 “ -998”;

对于 “BestEffort” Pod中的容器,其为“ 1000”;

Burstable Pod中的容器,值为“ min(max(2,1000-(1000 * memoryRequestBytes)/ machineMemoryCapacityBytes),999” )”。

oom_killer首先终止QoS等级最低,且超过请求资源最多的容器。这意味着会优先从Burstable中选择占用资源请求过多的容器进行驱逐;

五、最佳实践

1、按照应用类型进行分类:核心应用(core)/ 常规应用(nomarl)/ 附加应用(extral)

2、核心应用:Guaranteed / 常规应用:Burstable / 附加应用:BestEffort

3、集群节点分为:核心应用节点 / 常规应用节点 / 附加应用节点

4、调度策略:

核心应用:可以采用nodeAffinity的prefer调度策略调度到核心节点;

常规应用:可以采用nodeAffinity的硬亲和调度策略调度到常规节点;

附加应用:可以采用nodeAffinity的硬亲和调度策略调度到附加节点;





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206564
  • QoS
    QoS
    +关注

    关注

    1

    文章

    133

    浏览量

    44510

原文标题:关于K8S的服务质量QoS你知道多少?

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解决方案与选型对比

    。Logtail保证多次加载同一容器配置的幂等性。总结阿里云日志服务提供的解决方案完美地解决了k8s上日志采集难的问题,从之前需要多个软件、几十个部署流程精简到1款软件、3个操作即可轻松上云,让广大用户真正体验到一个字:爽,从此日志运维人员的生活
    发表于 02-28 12:49

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解决方案与选型对比

    。Logtail保证多次加载同一容器配置的幂等性。总结阿里云日志服务提供的解决方案完美地解决了k8s上日志采集难的问题,从之前需要多个软件、几十个部署流程精简到1款软件、3个操作即可轻松上云,让广大用户真正体验到一个字:爽,从此日志运维人员的生活
    发表于 02-28 12:50

    K8S容器编排的互通测试

    K8S容器编排之NetWorkPolicy官方实例
    发表于 06-06 11:28

    k8s核心原理学习指南3

    k8s学习3 - 核心原理
    发表于 09-25 16:37

    IPTV服务质量白皮书

    IPTV服务质量白皮书
    发表于 10-14 14:11

    k8s volume中的本地存储和网络存储

    八 、 k8s volume 本地存储和网络存储
    发表于 03-25 08:44

    搭建K8s环境平台的步骤

    1 搭建K8s环境平台规划1.1 单master集群1.2 多master集群
    发表于 11-04 06:03

    什么是PM QoS

    (requester)。PM QoS framework针对两种对象分别提供了电源管理的基础框架和接口。 那么在电源管理的范畴内要如何理解服务质量呢?实际上在这里,服务的定义是请求方对于某一个性能的需求,比如...
    发表于 12-27 06:38

    移动环境下的MPLS及服务质量的实现

    介绍了移动MPLS,同时分析了实现移动MPLS 的关键技术,并且在研究分析了各种移动IP 服务质量的基础上,提出了一种基于服务质量代理的移动IP QoS 解决方案。关键词:多协议标记
    发表于 09-03 09:31 15次下载

    服务质量QoS协议的研究与分析

    本文主要介绍了服务质量QoS)的协议和结构,对其原理和功能做了一定的分析,涉及了QoS 的四种应用方法和模型,分析Internet/RSVP、区分服务Differ、MPLS、SBM
    发表于 09-07 15:50 8次下载

    SOM神经网络的服务质量预测

    服务质量预测在服务计算领域中是一个热点研究问题,在历史QoS数据稀疏的情况下,设计一个满足用户个性化需求的服务质量预测方法成为一项挑战.为解决这一挑战问题,本文提出一种基于SOM神经网
    发表于 12-14 16:54 0次下载
    SOM神经网络的<b class='flag-5'>服务质量</b>预测

    基于不确定服务质量感知的云服务组合方法

    针对不确定服务质量QoS)感知的云服务组合优化问题的求解,提出一种不定长时间序列(ULST)模型和锦标赛策略的改进遗传算法( T-GA)。首先,基于用户对服务不同时间段的访问规律,
    发表于 12-14 10:54 5次下载
    基于不确定<b class='flag-5'>服务质量</b>感知的云<b class='flag-5'>服务</b>组合方法

    DesignWare核心以太网服务质量数据本

      本文档介绍Synopsys DesignWare核心以太网服务质量(DWC_Ethernet_qos)核心,5.10a。DWC_Ethernet_qos实现了与MAC层相关的以太网服务质量
    发表于 03-31 15:11 3次下载

    Qos如何提高网络服务质量

    网络拥塞不仅会造成资源浪费,严重的话还会引发业务异常,网络拥塞作为普遍发生的网络问题,有什么机制可以提高网络资源使用率,提供更好的网络服务质量呢?
    的头像 发表于 07-14 10:05 1559次阅读

    服务质量QoS(Quality of Service)在网络中的重要性

    QoS(Quality of Service)即服务质量,在网络业务中可以通过保证传输的带宽、降低传输时延、降低数据丢包率以及时延抖动等措施来提高服务质量QoS是一套用于管理和提高网
    的头像 发表于 03-16 09:24 796次阅读
    <b class='flag-5'>服务质量</b><b class='flag-5'>QoS</b>(Quality of Service)在网络中的重要性