Centos
Requests.cpu == Limits.cpu 時出現 Kubernetes OutOfcpu 錯誤
我正在執行 Kubernetes
Jobs
,我在其中設置了對相同數量的 CPU 的限制和請求。在其中一些工作中,我偶爾會看到OutOfcpu
錯誤當我
kubectl describe pods PODNAME
看到以下消息時:Pod Node didn't have enough resource: cpu, requested: 8000, used: 11453, capacity: 16000
這很清楚地表明了為什麼會
OutOfcpu
發生。但是我的
Limits.cpu == Requests.cpu == 8
.Limits: cpu: 8 ephemeral-storage: 500Gi memory: 10Gi Requests: cpu: 8 ephemeral-storage: 300Gi memory: 2Gi
據我所知,我應該在 8 個 CPU 上受到限制,並與 Pod 的 CPU 資源耗盡的節點隔離開來。
我最近才注意到這一點,我們的 Kubernetes 版本是 1.22.5 作為最近的升級。
關於此錯誤的長執行緒存在一個未解決的問題。
它是在 k8s v 1.22 中引入的,似乎是一種競爭條件,當 pod 被調度到另一個 pod 終止的節點上時可能會發生這種情況。調度程序不再看到終止的 pod,但仍使用節點的資源(cpu、記憶體)。