llm-wiki wiki · sources 2026-06-14

原文:raw/metrics-server-architecture-analysis.md · 仓库:https://github.com/kubernetes-sigs/metrics-server · 优先级 P0

一句话定位

Kubernetes 资源指标管道,把 kubelet summary/metrics 暴露成 metrics.k8s.io,供 HPA/VPA/kubectl top 使用。

核心架构图

┌────────────────────────────────────────────────────────────────────────────┐
│ Node resource usage                                                        │
│ Kubelets expose CPU and memory usage through stats and summary APIs.       │
└────────────────────────────────────────────────────────────────────────────┘
                                       │
                                       ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ metrics-server                                                             │
│ Scrapes kubelets, normalizes samples, and serves an aggregated APIService. │
└────────────────────────────────────────────────────────────────────────────┘
                                       │
                                       ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Resource metrics API                                                       │
│ metrics.k8s.io backs kubectl top and basic Kubernetes autoscaling.         │
└────────────────────────────────────────────────────────────────────────────┘
                                       │
                                       ▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Consumers                                                                  │
│ HPA, VPA, dashboards, and platform controllers read current resource       │
│ metrics.                                                                   │
└────────────────────────────────────────────────────────────────────────────┘

模块分层

层 / 模块 职责
Scraper 周期访问 kubelet metrics
Storage 只保留最新 CPU/memory resource metrics
APIService 注册 metrics.k8s.io aggregated API
Consumers HPA/VPA/kubectl top

关键数据流

kubelet 暴露节点和 Pod 指标
        │
        ▼
metrics-server 拉取并聚合
        │
        ▼
aggregated API 提供 NodeMetrics/PodMetrics
        │
        ▼
HPA/VPA/kubectl top 读取

设计决策与哲学