当Kubernetes pod安排在特定节点上时,需要pod具有足够的资源来运行。 Kubernetes知道它的节点资源,但是kubernetes如何知道pod预先需要多少资源才能在节点中有效地安排它。为了那个原因
requests
将会被使用。当我们指定一个
request
资源kubernetes将保证pod将获得该数量的资源。
在另一方面
limit
限制pod的资源使用。 Kubernetes不会允许pod占用更多的资源
limit
。说到CPU,如果你请求更多kubernetes将人为地节流pods CPU。如果pod超过a
limit
pod将被终止。简单来说就是这么简单
limit
永远比大
request
。
这个例子会给你一些想法
request
和
limit
。认为有一个pod,您已将其内存请求指定为7GB,内存限制为10GB。您的群集中有三个节点,其中node1具有2GB内存,node2具有8GB内存,node3具有16GB。您的pod将永远不会在node1上安排。但它将根据pod当前的内存使用情况在node2或node3上进行调整。但如果它在node3上进行了调度,它将在任何情况下终止,它将超过10GB的内存使用量。