Example 2-3. Resource limits

apiVersion: v1
kind: Pod
metadata:
 name: random-generator
spec:
 containers:
 - image: k8spatterns/random-generator:1.0
 name: random-generator
 resources:
 requests:
 cpu: 100m
 memory: 100Mi
 limits:
 cpu: 200m
 memory: 200Mi

request: Initial resource request for CPU and memory 容器需要的最低资源量(CPU,MEM)
limits: Upper limit until we want our application to grow at max 容器运行中所能分配的最大资源量

根据这两个参数的配置,k8s在集群资源不足的时候有不同的处理策略 – Quality of Service (QoS)

Best-Effort 最大努力
requests和limits两个参数都没有设置。就是没有对资源做限制,只要节点有足够资源会尽可能满足其需求。但是这种容器优先级是最低的:节点CPU或MEM资源不够时,会优先把该类容器杀掉以回收资源。

Burstable 爆发的?
requests和limits都有设置并且requests小于limits。即最低要求requests所指定的资源,最高以limits为上限。优先级较Best-Effort高一点: 节点资源不足时,如果没有Best-Effort类型的容器,会删除该类容器。

Guaranteed 有保障的
requests参数与limits参数相同。具有最高优先级,资源不足时会优先删除Best-Effort和Burstable类容器以确保其运行。

参考 O’Reilly《Kubernetes Patterns》Chapter 2.

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐