【问题标题】:How to set Memory limit for a pod in Kubernetes如何在 Kubernetes 中为 Pod 设置内存限制
【发布时间】:2020-03-14 13:06:24
【问题描述】:
我有一个 6GB 内存的节点。我想在上面运行 2 个 pod。
问题 1:
POD1 的请求为 4GB,限制为 6GB,而 POD2 没有限制。
POD1 以 4GB 运行,节点上有 2GB 可用内存。
Kubernetes 可以在这个节点上分配 POD2 吗?
还是会在 Pending 和 You don’t have enough resources 中?
如果Kubernetes在这个节点上运行这个Pod2,POD2能否增长到POD1分配的4GB内存??
换句话说,Pod2 可以使用分配给 Pod1 的内存吗?
问题 2:
这个设置(pic2)会起作用吗?
【问题讨论】:
标签:
kubernetes
kubernetes-pod
【解决方案1】:
调度器确保对于每种资源类型,调度的Containers的资源请求总和小于节点的容量。
如果容器超出其内存限制,它可能会被终止。如果它是可重新启动的,kubelet 将重新启动它,就像任何其他类型的运行时故障一样。
如果一个 Container 超出了它的内存请求,很可能只要节点内存不足,它的 Pod 就会被驱逐。
Kubernetes可以在这个节点分配POD2吗?
是的,但前提是它的请求不超过 2GB。
如果 Kubernetes 在这个节点上运行这个 Pod2,POD2 可以长成 POD1 的吗?
分配4GB内存??也就是说,Pod2 能否使用分配的内存
用于 Pod1??
没有。
问题 2:此设置 (pic2) 是否有效?
调度程序将调度它。但是如果总内存消耗超过节点的容量,Pod 将被驱逐。