我一直在阅读kubernetes文档https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container
但是对于我来说,spec.containers[].resources.limits.cpu
和spec.containers[].resources.requests.cpu
有什么区别以及对资源限制有什么影响
您能推荐一些用普通英语解释的读物或书籍吗?
预先感谢
答案 0 :(得分:1)
在特定节点上调度Kubernetes Pod时,要求Pod具有足够的资源来运行。 Kubernetes知道其节点的资源,但是kubernetes如何知道Pod预先需要多少资源才能在节点中进行有效调度。为此,将使用requests
。当我们指定request
的资源时,kubernetes将保证pod可以获取该数量的资源。
另一方面,limit
限制了pod的资源使用情况。 Kubernetes不允许Pod占用比limit
更多的资源。当涉及到CPU时,如果您请求更多kubernetes,则会人为地限制pod的CPU。如果广告连播超过limit
个广告连播,它将终止。为简单起见,limit
总是比request
大。
该示例将使您对request
和limit
有所了解。认为有一个Pod,您在其中已将其内存请求指定为7GB,将内存限制指定为10GB。群集中有三个节点,其中节点1具有2GB的内存,节点2具有8GB的内存,节点3具有16GB的内存。您的Pod永远不会安排在node1上。但是它会根据pod当前的内存使用情况安排在node2或node3上。但是,如果将其安排在node3上,则它将在任何情况下终止,将超过10GB的内存使用量。