簡體   English   中英

Kubernetes (minikube) pod OOMKilled,節點中顯然有足夠的內存

[英]Kubernetes (minikube) pod OOMKilled with apparently plenty of memory left in node

我正在使用 minikube,從

minikube start --memory 8192

用於節點的 8Gb RAM。 我正在分配具有資源限制的 Pod

    resources:
      limits:
        memory: 256Mi
      requests:
        memory: 256Mi

因此,我假設每個節點有 256Mb 的 RAM,這將給我 32 個 pod,直到達到 8Gb 內存限制,但問題是,每當我到達要部署的第 8 個 pod 時,第 9 個將永遠不會運行,因為它一直在 OOMKilled。

對於上下文,每個 pod 都是一個 Java 應用程序,帶有一個 frolvlad/alpine-oraclejdk8:slim Docker 容器,使用 -Xmx512m -Xms128m 運行(即使 JVM 確實使用了完整的 512Mb 而不是 256Mb,我仍然遠離 16 個 pod 的限制達到 8Gb 上限)。

我在這里缺少什么? 為什么 pod 被 OOMKilled 明顯地留下了這么多可用的可分配內存?

提前致謝

您必須了解請求和限制的工作方式。

請求是對在節點上調度 pod 所需的可分配資源量的要求。 這些不會導致 OOM,它們會導致 pod 無法調度。

另一方面,限制是給定 pod 的硬限制。 pod 將被限制在這個級別。 因此,即使您有 16GB 的可用 RAM,但有 256MiB 的限制,一旦您的 pod 達到此級別,它就會遇到 OOM 終止。

如果需要,您可以只定義請求。 然后,您的 Pod 將能夠增長到完整的節點容量,而不會受到限制。

https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM