Kubernetes中使用Resource Requests和Limits通过定义容器对CPU/内存的需求和上限来分配和管理资源。Requests用于调度决策(确保节点有足够资源),Limits用于运行时资源限制(防止容器超额使用)。
延伸知识点:QoS(服务质量等级) Kubernetes根据Requests和Limits的配置将Pod分为三类QoS:
- Guaranteed:所有容器均设置且Limits等于Requests(如
limits.cpu=requests.cpu
)。此类Pod优先级最高,资源不足时最后被终止。 - Burstable:至少一个容器设置Requests但不满足Guaranteed条件。资源不足时可能被终止,但优先级高于BestEffort。
- BestEffort:未设置任何Requests和Limits。优先级最低,资源竞争时最先被终止。
示例:若Pod的容器配置为requests.memory: 256Mi
且limits.memory: 512Mi
,则属于Burstable类型。QoS直接影响Pod调度和节点资源紧张时的驱逐顺序,合理配置可优化集群稳定性。