Kubernetes Autoscaling 自動擴縮容概念介紹
在 Kubernetes 裡部署服務時,資源配置通常不是一次設定好就永遠不需要調整。流量、任務量、背景批次作業與使用者行為都可能隨時間變化。如果 Pod 數量太少,服務可能在高峰時處理不過來;如果資源預留太多,又會讓叢集長時間保留用不到的 CPU 與記憶體。
Autoscaling 的目的,就是讓 Kubernetes 可以根據實際負載與資源使用情況,自動調整工作負載或叢集資源。它不只是「流量變大就加 Pod」這麼單一,而是依照不同層級的需求,調整 Pod 數量、單一 Pod 的資源請求,甚至是 Node 數量。
這篇文章會先整理 Kubernetes Autoscaling 的整體概念,說明常見的擴縮容方向,以及 HPA 與 VPA 分別解決什麼問題。後續文章會再分別深入介紹 HPA 與 VPA 的實作方式。