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 协议 ,转载请注明出处!