Kubernetes中的Pod resources.limits和resources.requests有什么区别?

时间:2019-03-07 15:13:24

标签: kubernetes doc

我一直在阅读kubernetes文档https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

但是对于我来说,spec.containers[].resources.limits.cpuspec.containers[].resources.requests.cpu有什么区别以及对资源限制有什么影响

您能推荐一些用普通英语解释的读物或书籍吗?

预先感谢

1 个答案:

答案 0 :(得分:1)

在特定节点上调度Kubernetes Pod时,要求Pod具有足够的资源来运行。 Kubernetes知道其节点的资源,但是kubernetes如何知道Pod预先需要多少资源才能在节点中进行有效调度。为此,将使用requests。当我们指定request的资源时,kubernetes将保证pod可以获取该数量的资源。

另一方面,limit限制了pod的资源使用情况。 Kubernetes不允许Pod占用比limit更多的资源。当涉及到CPU时,如果您请求更多kubernetes,则会人为地限制pod的CPU。如果广告连播超过limit个广告连播,它将终止。为简单起见,limit总是比request大。

该示例将使您对requestlimit有所了解。认为有一个Pod,您在其中已将其内存请求指定为7GB,将内存限制指定为10GB。群集中有三个节点,其中节点1具有2GB的内存,节点2具有8GB的内存,节点3具有16GB的内存。您的Pod永远不会安排在node1上。但是它会根据pod当前的内存使用情况安排在node2或node3上。但是,如果将其安排在node3上,则它将在任何情况下终止,将超过10GB的内存使用量。