所有分类
  • 所有分类
  • 未分类

K8S-资源的requests和limits

简介

本文介绍K8S资源的requests和limits。

官网网址

为 Pod 和容器管理资源 | Kubernetes

为容器和 Pod 分配内存资源 | Kubernetes

含义

定义 Pod 时可以为容器设定所需要的资源数量。最常见的是 CPU 和内存(RAM)大小。

request(请求):kubelet会为容器预留相应的资源;kube-scheduler 根据此信息来决定将 Pod 调度到哪个节点上。
limit(限制):确保运行的容器不会使用超出所设限制的资源。

超出limits会怎样?

CPU

CPU属于弹性资源,因为CPU是时间片轮转等算法实现的调度,按比例为Pod进行分配。

k8s将CPU资源最小单位定义为一千分之一个CPU,单位为:m(millicpu的意思,也可以称为:毫核)。设置cpu.requests = 0.5 和cpu.requests = 500m是等价的,它代表该Pod所请求的资源是CPU资源的一半。CPU资源按每个Pod设置值的比例进行分配,权重大的Pod会获得比权重小的Pod更多的 CPU 时间。

CPU资源限制不是绝对的,Pod可能会使用超出限制的CPU资源而不会被杀死。但节点CPU满负荷运转的最终结果是:应用延时增加,响应变慢,同时节点会禁止新的Pod创建。

内存

内存属于非弹性资源,因为内存资源是进程独占的,因此k8s对内存使用限制更加严格。

一旦节点可用内存耗尽,或者Pod使用资源超过limits,Pod一定会被杀死并重启。 ​

1

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录