雲端與容器基礎
在 Kubernetes 中,關於為容器設定的資源 requests 與 limits,下列何者正確?
- A節點依 requests 選擇,記憶體超過 limits 時可能被強制終止,CPU則被壓在 limits 以內
- B排程器配置 Pod 時讓 limits 的合計落在節點的資源以內,CPU使用量超過 requests 的容器會被強制終止
- Crequests 是容器可使用的上限,使用量超過 requests 時,不論記憶體或CPU,容器都會立即被強制終止
查看答案與解析
正確答案:A. 節點依 requests 選擇,記憶體超過 limits 時可能被強制終止,CPU則被壓在 limits 以內
requests 是容器希望預留的資源量,排程器選擇放置 Pod 的節點時,會讓節點上 Pod 的 requests 合計不超過節點可分配的量。limits 是使用量的上限。CPU是可以依時間分享的資源,因此快要超過 limits 時使用會被壓制(節流,throttling),處理變慢。記憶體很難收回,因此嘗試使用超過 limits 的容器,可能會因記憶體不足而被強制終止(OOMKilled)。
- A. 正確。配置依 requests,上限是 limits,超過時的處理方式在CPU與記憶體之間不同。
- B. 配置的判斷使用的是 requests 而不是 limits。而且CPU用量多也不會被強制終止,而是使用受到壓制。
- C. 使用量超過 requests 本身是允許的,上限是 limits。CPU超過 limits 也不是強制終止,而是使用受到壓制。