java请求资源限制_K8S 资源限制 QoS

K8S 资源限制 QoS

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

QoSGuaranteed:每个容器都必须设置CPU和内存的限制和请求(最大和最小)。最严格的要求Every Container in the Pod must have a memory limit and a memory request, and they must be the same.

Every Container in the Pod must have a CPU limit and a CPU request, and they must be the same.

Burstable:在不满足Guaranteed的情况下,至少设置一个CPU或者内存的请求。The Pod does not meet the criteria for QoS class Guaranteed.

At least one Container in the Pod has a memory or CPU request.

BestEffort:什么都不设置,佛系资源申请。For a Pod to be given a QoS class of BestEffort, the Containers in the Pod must not have any memory or CPU limits or requests.

可压缩资源

CPU资源。当资源紧俏,发生资源抢占时,Pod可以分享时间片。例如,在1U的node上,容器A请求0.6U,容器B请求0.4U。资源紧俏时,将会按照请求的比例分配时间片。容器A:0.6U/(0.6U+0.4U);容器B:0.4U/(0.6U+0.4U)。

当资源剩余,发生超用时,即实际使用超过请求,Pod按照比例分配剩余资源。例如,在1U的node上,容器A请求0.6U,容器B请求0.3U,剩余0.1U。两个容器都想超用,剩余的0.1U将会按照请求的比例进行2:1分配给两个容器。

关于提高资源利用率,可以将负载高峰时间错开的应用部署在一起,提高node利用率。

不可压缩资源

内存和磁盘资源。

当资源紧俏时,例如OOM,kubelet会根据QoS进行驱逐:Best-Effort,最低优先级,第一个被kill;

Burstable,第二个被kill。

Guaranteed,最高优先级,最后kill。除非超过limit或者没有其他低优先级的Pod;

由于对于不可压缩资源,发生抢占的情况会出Pod被意外Kill掉的情况,所以建议对于不可以压缩资源(Memory,Disk)的设置成0

至于这三种是哪一种不用配置,k8s会自动给pod分配,比如你什么都没配(cpu,内存),k8s就给你分个BestEffort,依次类推

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值