雲端與容器基礎

resources:
  requests:
    cpu: 500m
  limits:
    cpu: 1000m

在 Pod 的容器做了上面設定的 Deployment 中,有4個 Pod 在執行,每個 Pod 都使用400m(0.4核心)的CPU。HorizontalPodAutoscaler 的CPU使用率目標為60%,所需 Pod 數以 ⌈目前數量 × 目前使用率 ÷ 目標使用率⌉ 求得。所需的 Pod 數為下列何者?

  1. A3個
  2. B5個
  3. 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個。
練習這個領域 前往領域頁面

雲端與容器基礎的其他題目

  1. 在 Kubernetes 中,關於為容器設定的資源 requests 與 limits,下列何者正確?
  2. 有一個可分配資源為CPU 4核心、記憶體 8 GiB 的節點。各 Pod 的容器設定了 requests 為CPU 500m、記憶體 1.5 GiB,limits 為CPU 1核心、記憶體 2 GiB。沒有其他 Pod 與系統預留。這個節點最多可放置的 Pod 數為下列何者?
  3. 使用雲端的託管資料庫服務(由業者營運資料庫軟體的服務)。依共同責任模型的想法,一般仍屬於使用者責任的是下列何者?
  4. 在雲端中,把 Web 伺服器與資料庫的複本分散放在同一區域(region)內的多個可用區域的主要目的,下列何者適當?
  5. 在無伺服器函式(FaaS)中,有時只有一段時間沒被呼叫的函式的第一次呼叫,回應會慢數百毫秒到數秒。關於這個現象的說明,下列何者正確?