resources.limits 和 resources.requests Guaranteed QoS

在Kubernetes中,resources.limitsresources.requests 是两个不同的资源配置参数,它们对Pod的行为和调度有着不同的影响:

  1. resources.requests:这是容器请求的最小资源量,Kubernetes调度器会确保每个节点有足够的资源来满足所有容器的请求。如果节点资源不足以满足Pod的请求,Pod将不会被调度到该节点上

  2. resources.limits:这是容器可以使用的最大资源量。如果容器尝试使用超过其限制的资源,Kubernetes会进行限制。对于CPU,超过限制可能会导致容器无法获得更多的CPU时间片;对于内存,超过限制可能会触发OOM Killer,强制结束占用过多内存的进程

如果一个Pod的resources.limitsresources.requests设置为相同的值,这意味着:

  • 调度影响:Pod的调度不会受到影响,因为requests是调度决策的主要因素,只要节点有足够的资源来满足这个值,Pod就会被调度
  • 运行时行为:在运行时,Pod中的容器将被限制在请求的资源量内运行,因为limitsrequests相同,容器既不会因资源不足而被饿死,也不会因资源超用而被限制
  • 优先级和稳定性:设置limitsrequests相同,可以提高Pod的优先级和稳定性。在节点资源不足时,这种配置的Pod(属于Guaranteed QoS类)会被优先保护,不会轻易被驱逐
posted @ 2024-12-04 08:24  滴滴滴  阅读(3)  评论(0编辑  收藏  举报