雲端與容器基礎
resources:
requests:
cpu: 500m
limits:
cpu: 1000m在 Pod 的容器做了上面設定的 Deployment 中,有4個 Pod 在執行,每個 Pod 都使用400m(0.4核心)的CPU。HorizontalPodAutoscaler 的CPU使用率目標為60%,所需 Pod 數以 ⌈目前數量 × 目前使用率 ÷ 目標使用率⌉ 求得。所需的 Pod 數為下列何者?
- A3個
- B5個
- C6個
查看答案與解析
正確答案:C. 6個
HorizontalPodAutoscaler 使用的CPU使用率,是相對於 requests 而不是 limits 的比例。各 Pod 使用 400m ÷ 500m = 80%,所以所需數量為 4 × 80 ÷ 60 = 5.33…,無條件進位為6個。增加到6個後,整體使用量 400m × 4 = 1,600m 被分攤,每個約267m,使用率約53%,低於目標。若沒有設定 requests,以CPU使用率為基準的自動擴展就不會運作。
- A. 這是以相對於 limits(1000m)的比例40%計算的值(4 × 40 ÷ 60 = 2.67… 進位)。使用率以 requests 為基準。
- B. 這是把5.33…無條件捨去的值。5個時每個為 1,600m ÷ 5 = 320m,使用率64%,超過目標的60%。
- C. 正確。以使用率80%計算,4 × 80 ÷ 60 = 5.33…,進位為6個。