Centos7
kubernetes - 物理 kubernetes 節點上的 OOM 事件 - 如何限制?
我有自己的物理 Kubernetes 節點,託管在物理機器上。(12 核,16GB 記憶體)我注意到在重負載期間,我在日誌中有失敗的 pod 和 OOM 事件(記憶體不足終止)。
如果 RAM 耗盡,我如何強制 kubernetes 不在節點上安排任何作業?我正在
kubernetes v1.16.11
跑步CentOS Linux 7 3.10.0-1127.10.1.el7.x86_64
PS 我添加了一段有問題的 pod 程式碼,我正在使用請求和限制
containers: - name: jnlp (...) resources: requests: cpu: 500m memory: 1024Mi limits: memory: 2048Mi - name: build (...) resources: requests: cpu: 3000m memory: 4096Mi
requests
正如其他人所指出的那樣,您很可能缺少limits
您的 Pod。在您的情況下,由於即使您的核心也報告 OOM 事件,所以您的 Pod 似乎會消耗大量記憶體。您可以在此處閱讀有關資源管理的更多資訊:https ://kubernetes.io/docs/concepts/configuration/manage-resources-containers/因此,請檢查您的 Pod 並嘗試強制執行容器資源。下面是一個容器的範例,它“保留”了 300Mi 的記憶體(容器保證獲得的資源),但最多可以使用 600Mi 的記憶體:
apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image: example-image:1.0 resources: requests: memory: "300Mi" cpu: "1000m" limits: memory: "600Mi" cpu: "2000m"
如果容器嘗試使用超過 600Mi 的記憶體,它將被 OOMKilled。