Kubernetes:具有请求/限制的Pod调度/逐出关系

问题描述 投票:0回答:2

如果我有一个具有16 GB RAM的节点,并且Pod的内存请求为1GB,内存限制为4GB,那么将在该节点上调度多少个Pod? 4或16?

基于此https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/,我认为是16岁

调度程序确保对于每种资源类型,计划容器的资源请求少于节点的容量。

并且,如果某个Pod开始使用其限制范围内的4GB内存,它将被驱逐出该怎么办?重新安排?

我有一个用例,其中我的广告连播通常会使用X内存,但有时会使用4X内存。在这种情况下,我应该如何设置我的要求和限制?我应该将请求设置为X还是4X?

kubernetes scheduling
2个回答
0
投票

Kubernetes调度程序应该能够将16个具有1GB内存请求的Pod调度到一个可用容量为16GB内存的节点。如果在任何时间点任何Pod开始使用更多内存(在限制范围内),将被允许这样做。 。但是,当总内存消耗超过节点的容量时,消耗超过其请求的Pod将被随机终止并重新计划,除非有优先级,在这种情况下,较低优先级的Pod将成为受害者。


0
投票

Requests:此值用于调度。这是容器需要运行的最少资源。请注意,该请求并不意味着这些始终是容器的专用资源。

Limits:这是节点将允许容器使用的资源的[[maximum数量。

https://sysdig.com/blog/kubernetes-pod-evicted/

[首先,kubelet尝试通过删除死容器及其容器,然后删除未使用的映像来释放节点资源,尤其是磁盘。如果这还不够,那么kubelet将按照以下顺序驱逐最终用户吊舱:

    尽力而为。
  • 可爆荚使用的资源多于其对饥饿资源的请求。
  • 可爆荚使用的资源少于其对饥饿资源的请求。
  • enter image description here

    如果容器超出其内存

    限制

  • ,则可能会终止。如果它可以重新启动,则kubelet将重新启动它,就像其他任何类型的运行时失败一样。如果容器超出其内存

    request

    ,则只要节点内存不足,它的Pod就有可能被驱逐。https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/

    如果容器有可用内存,则容器可以超出其内存

    请求

    但是容器不能使用超过其内存

    limit

    的内存。如果容器分配的内存超出其限制,则容器成为 终止的候选对象。如果容器继续消耗超出其限制的内存,则终止容器https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/
    © www.soinside.com 2019 - 2024. All rights reserved.