在编排容器的时候,需要分配资源的使用。
默认pod资源是没有限制的,这样子会导致节点的资源可能被耗尽,引起多个pod出现问题。
手动分配好pod的资源使用,可以更好地利用机器的资源,也可以让hpa有一个标准,来动态扩容pod。
在编排pod的时候,可以使用sepc.resources中配置资源限制。
一般限制的是CPU和内存的使用,也支持存储等其他资源。
资源限制有两种:
request可以保证pod运行的时候,有最基础的资源保证;limit限制了pod最大能使用的资源,如果是内存超过limit就会出现OOM。
对 CPU 资源的限制和请求以 CPU 单元为单位进行度量。
在 Kubernetes 中,1 个 CPU 单元相当于 1 个物理 CPU 核心或 1 个虚拟核心。
1 CPU = 1000 mCPU
mCPU不支持小数,只能是整数。
单位必须是整数,可以使用单位是:E、P、T、G、M、k,可以用 2 的幂数:Ei、Pi、Ti、Gi、Mi、Ki。
resources: requests: memory: 200Mi cpu: 100m limits: memory: 300Mi cpu: 150m
limit和request设置多少合适呢?
设置多少可以根据不同的应用类型进行设置。
request可以保证基础的资源,集群调度pod的时候会更加合理。
limit可以略大于request,可以防止突增请求,hpa在扩容的时候需要有一个标准,这个标准就是limit。
所以在设置limit之后,也可以设置hpa动态扩容pod,来防止业务短时增长导致请求处理不过来。
留言与评论(共有 0 条评论) “” |