k8s之内存和cpu配置
介绍
资源请求(requests):即允许运行的最小资源,pod调度规则根据该值判断。
资源限制(limits):即允许运行的最大资源,limits不会影响pod调度规则,因此limits总和可以超过服务器提供的总资源数,服务运行超过该值会被kill重启。
另外:k8s仅会确保pod能够获得他们请求的cpu时间额度,他们能否获得额外的cpu时间,则取决于其他正在运行的作业对cpu资源的占用情况。例如,对于总数为1000m的cpu来说,容器a请求使用200m,容器b请求使用500m,在不超出它们各自的最大限额的前提下,余下的300m在双方都需要时会以2:5的方式进行配置。(限制cpu是限制其运行占用cpu时间)
名称空间资源配置
设置名称空间namespaces
默认资源
名称空间设置是应用到名称空间下所有未定义资源配置的pod中,如果pod单独定义资源配置,则优先使用pod定义的配置。
1 |
|
创建 limit-default.yaml
:编辑以下内容
1 |
|
更新配置
1 |
|
pod资源配置
pod资源配置有deployment
控制器定义的
1 |
|
以下为修改内容
1 |
|
查看pod修改后的配置
1 |
|
查看pod所在node节点资源配置
1 |
|
资源配置详解
配置示例
1 |
|
pod
部分:
max
表示pod
中所有容器资源的Limit
值和的上限,也就是整个pod
资源的最大Limit
,如果pod
定义中的Limit
值大于LimitRange
中的值,则pod
无法成功创建。min
表示pod
中所有容器资源请求总和的下限,也就是所有容器request
的资源总和不能小于min
中的值,否则pod
无法成功创建。maxLimitRequestRatio
表示pod
中所有容器资源请求的Limit
值和request
值比值的上限,例如该pod
中cpu
的Limit
值为3,而request
为0.5,此时比值为6,创建pod
将会失败。
container
部分
- 在
container
的部分,max
、min
和maxLimitRequestRatio
的含义和pod
中的类似,只不过是针对单个的容器而言。下面说明几个情况:
如果
container
设置了max
,pod
中的容器必须设置limit
,如果未设置,则使用defaultlimt
的值,如果defaultlimit
也没有设置,则无法成功创建如果设置了
container
的min
,创建容器的时候必须设置request
的值,如果没有设置,则使用defaultrequest
,如果没有defaultrequest
,则默认等于容器的limit
值,如果limit
也没有,启动就会报错
defaultrequest
和defaultlimit
则是默认值,注意:pod
级别没有这两项设置
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!