什麼是自動擴展

依負載指標(CPU使用率、要求數、佇列長度等)自動增減伺服器或容器數量的機制。增加數量稱為水平擴展(scale-out),減少稱為縮減(scale-in)。Kubernetes 的 HorizontalPodAutoscaler 以 ⌈目前數量 × 目前值 ÷ 目標值⌉ 求出所需數量。新增的執行個體開始運作需要時間,因此常以保留餘裕的目標值因應負載急增,並在減少前設置觀察時間,避免數量變動得太頻繁。

日文名稱: オートスケーリング

「自動擴展」出現在2領域的2道練習題中(系統架構與可靠度設計, 雲端與容器基礎等)。

這個名詞所屬的領域: 雲端與容器基礎

練習自動擴展的題目

對於使用自動擴展(autoscaling)、依負載自動增減伺服器台數的系統,一般而言較理想的設計為下列何者?

  1. A在各伺服器的本機磁碟上,儲存只有該伺服器才有的業務資料
  2. B把使用者的工作階段(session)資訊存放在共用的資料儲存區而非各伺服器的記憶體中,使不論由哪台伺服器處理要求都得到相同的結果
  3. C減少台數時,即使有處理中的要求也立即停止伺服器
查看答案與解析

正確答案:B. 把使用者的工作階段(session)資訊存放在共用的資料儲存區而非各伺服器的記憶體中,使不論由哪台伺服器處理要求都得到相同的結果

在自動擴展中,為了讓伺服器隨時被加入或移除都不會造成問題,最好採用不讓各伺服器持有自身狀態(無狀態,stateless)的設計。若把工作階段資訊與業務資料放在共用的資料儲存區,不論哪台伺服器收到要求都能同樣地處理,減少台數時資料也不會遺失。減少台數時,要先停止分配新的要求,等處理中的要求結束後再停止伺服器。

解析中的「自動擴展」

出現「自動擴展」的題目(2題)

  1. 對於使用自動擴展(autoscaling)、依負載自動增減伺服器台數的系統,一般而言較理想的設計為下列何者?
  2. 在 Pod 的容器做了上面設定的 Deployment 中,有4個 Pod 在執行,每個 Pod 都使用400m(0.4核心)的CPU。HorizontalPodAutoscaler 的CPU使用率目標為60%,所需 Pod 數以 ⌈目前數量 × 目前使用率 ÷ 目標使用率⌉ 求得。所需的 Pod 數為下列何者?

相關名詞

Pod 不可變基礎設施 可用區域 可觀測性 共同責任模型 物件儲存 金絲雀部署 容器技術 容器映像檔 基礎設施即程式碼(IaC)

前往名詞解釋列表