ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

K8s的Qos

2022-06-30 17:10:16  阅读:155  来源: 互联网

标签:QoS OOM 内存 Qos Pod K8s CPU pod


  QoS(Quality of Service) 简介 QoS(Quality of Service),大部分译为 “服务质量等级”,又译作 “服务质量保证”,是作用在 Pod 上的一个配置,当 Kubernetes 创建一个 Pod 时,它就会给这个 Pod 分配一个 QoS 等级,可以是以下等级之一:

  Guaranteed:Pod 里的每个容器都必须有内存/CPU 限制和请求,而且值必须相等。如果一个容器只指明limit而未设定request,则request的值等于limit值。

  Burstable:Pod 里至少有一个容器有内存或者 CPU 请求且不满足 Guarantee 等级的要求,即内存/CPU 的值设置的不同。

  BestEffort:容器必须没有任何内存或者 CPU 的限制或请求。

  设置资源很烦,但是十分必要。如果不设,Pod虽然很容易被调度,可以使用整个node资源,但是当资源紧俏时,会被第一个kill。

  该配置不是通过一个配置项来配置的,而是通过配置 CPU/MEM的 limits 与 requests 值的大小来确认服务质量等级

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

  不可压缩资源:内存 Kubernetes通过cgroup给pod设置QoS级别,当资源不足时先kill优先级低的pod,当container因为OOM被kill掉时,系统倾向于在其原所在的机器上重启该container或其他重新创建一个pod。在实际使用过程中,通过OOM分数值来实现,OOM分数值从0-1000。

OOM分数

 

 

三种 QoS 优先级,从高到低(从左往右)

 Guaranteed --> Burstable --> BestEffort

 OOM 的优先级如下:

  BestEffort Pod > Burstable Pod > 其它进程 > Guaranteed Pod > kubelet/docker 等 > sshd 等进程

 使用建议 如果资源充足,可以将 pod QoS 设置为 Guaranteed 不是很关键的服务 pod QoS 设置为 Burstable 或者 BestEffort。

 

参考连接:

1.https://blog.csdn.net/yujia_666/article/details/108806068
2.https://blog.csdn.net/weixin_45141866/article/details/120100728

标签:QoS,OOM,内存,Qos,Pod,K8s,CPU,pod
来源: https://www.cnblogs.com/xiaoxiaomuyuyu/p/16427583.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有