Resources - Metrics Server
什麼是 Metrics Server?
Metrics Server 是 Kubernetes 官方的輕量級聚合器,用於收集和提供集群中資源使用情況的指標數據。 它從各個節點的 Kubelet 中獲取資源數據(如 CPU 和記憶體使用率),並將這些數據提供給 Kubernetes 的 Horizontal Pod Autoscaler (HPA)、Vertical Pod Autoscaler (VPA) 和其他工具使用。
主要功能
- 資源監控:收集 Pod 和 Node 的即時資源使用數據,例如 CPU 和記憶體。
- 支援自動擴縮:提供數據給 HPA 和 VPA,以便動態調整工作負載的資源分配。
- 即時數據查詢:透過
kubectl top命令,輕鬆檢視集群的即時資源使用情況。
Metrics Server 的原理
Metrics Server 是 Kubernetes 的核心組件之一,用於即時收集、聚合並提供節點與 Pod 的資源使用指標(如 CPU 和記憶體),支援 Kubernetes 的資源調度與自動化功能(如 HPA 和 kubectl top)。
- 資料收集
- Kubelet:Metrics Server 通過 Kubernetes API Server 與各節點的 Kubelet 通訊,從
/metrics/resource/v1alpha1端點獲取即時的節點與 Pod 資源使用指標。 - cAdvisor:Kubelet 內部整合了 cAdvisor,負責從容器層面收集 CPU、記憶體等資源使用數據,這些數據經由 Kubelet 提供給 Metrics Server。
- Kubelet:Metrics Server 通過 Kubernetes API Server 與各節點的 Kubelet 通訊,從
- 數據聚合
- Metrics Server 以固定的時間間隔(預設 60 秒)從所有節點的 Kubelet 收集資源使用數據,並進行處理與聚合,形成整個集群的即時資源快照。
- 指標提供
- Metrics Server 將聚合後的資源數據通過
/apis/metrics.k8s.io/v1beta1端點提供給 Kubernetes 組件,支援如 HPA 和kubectl top等工具查詢。
- Metrics Server 將聚合後的資源數據通過
Metrics Server 架構
常見使用場景
-
Horizontal Pod Autoscaler (HPA) Metrics Server 提供 Pod 的即時資源使用數據,幫助 HPA 根據負載動態調整副本數量。
-
資源使用監控 運維人員可使用
kubectl top指令快速了解集群中 Pod 和 Node 的資源使用情況。 -
診斷與排查 Metrics Server 幫助識別資源瓶頸,例如某些 Pod 或 Node 的 CPU 或記憶體過度使用。