簡體   English   中英

Kubernetes:Pod 調度/驅逐與請求/限制的關系

[英]Kubernetes : Pod scheduling/eviction relationship with requests/limits

如果我有一個具有 16 GB RAM 的節點和具有 1GB 內存請求和 4GB 內存限制的 Pod,將在該節點上調度這些 Pod 中的多少個? 4 還是 16?

我認為它是 16 基於這個https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

調度器確保對於每種資源類型,被調度的Container 的資源請求總和小於節點的容量。

如果 pod 開始使用在其限制范圍內的 4GB 內存,它會被驅逐嗎? 改期?

我有一個用例,我的 pod 通常使用 X 內存,但有時使用 4X 內存。 對於這種情況,我應該如何設置我的請求和限制? 我應該將請求設置為 X 還是 4X?

Kubernetes 調度器應該能夠調度 16 個 Pod,每個具有 1GB 內存請求到一個具有 16GB 可用內存容量的節點。如果在任何時間點任何 Pod 開始使用更多內存(在限制范圍內),它將被允許這樣做。 但是當總內存消耗超過節點的容量時,消耗超過其請求的 pod 將被隨機終止並重新調度,除非有優先級,在這種情況下,較低優先級的 pod 將成為受害者。

請求:此值用於調度。 這是容器運行所需的最小資源量。 請注意,請求並不意味着這些始終是容器的專用資源。

限制:這是節點允許容器使用的最大資源量。

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

首先,kubelet 嘗試通過刪除失效的 pod 及其容器,然后是未使用的鏡像來釋放節點資源,尤其是磁盤。 如果這還不夠,kubelet 開始按以下順序驅逐最終用戶 pod:

  • 最大努力。
  • Burstable Pod 使用的資源多於其對飢餓資源的請求。
  • Burstable Pod 使用的資源少於其對飢餓資源的請求。

在此處輸入圖片說明

如果 Container 超過其內存限制,它可能會被終止。 如果它是可重啟的,kubelet 將重啟它,就像任何其他類型的運行時故障一樣。

如果 Container 超過其內存請求,則每當節點內存不足時,它的 Pod 很可能會被驅逐。

https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/

如果節點有可用內存,則容器可能會超出其內存請求

但是不允許容器使用超過其內存限制 如果 Container 分配的內存超過其限制,則 Container將成為終止的候選者。 如果 Container 繼續消耗超過其限制的內存,則 Container 將被終止

https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/

暫無
暫無

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

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