41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
---
|
||
title: "Metrics Server"
|
||
type: concept
|
||
tags:
|
||
- Kubernetes
|
||
- EKS
|
||
- Metrics
|
||
- Monitoring
|
||
- Autoscaling
|
||
sources:
|
||
- ctp-topic-64-scaling-out-with-amazon-eks
|
||
last_updated: 2026-04-28
|
||
---
|
||
|
||
## Definition
|
||
Metrics Server 是 Kubernetes 集群级别的指标采集组件(Metrics API Provider),负责从 kubelet 收集 CPU/内存等资源使用指标,为 HPA、VPA 和 `kubectl top` 命令提供标准化的指标数据。
|
||
|
||
## Key Mechanisms
|
||
- **Metrics API**:实现 `metrics.k8s.io` API,提供 Pod 和 Node 的资源指标
|
||
- **数据采集**:定期从各节点的 kubelet 获取指标数据
|
||
- **内存高效**:采用流式处理,仅保留最近 5 分钟的指标数据
|
||
- **HPA 依赖**:HPA 的标准资源指标(CPU/内存)完全依赖 Metrics Server
|
||
|
||
## Deployment
|
||
- 通过 Deployment 部署单个副本(非高可用)
|
||
- 通常随 EKS 集群自动安装(EKS Add-on 或 eks-charts)
|
||
- 监控指标:Pod CPU/内存利用率、Node CPU/内存容量
|
||
|
||
## Limitations
|
||
- 仅支持标准资源指标(CPU、内存)
|
||
- 不支持自定义/外部指标(需要 Custom Metrics API)
|
||
- 单副本部署,非高可用设计
|
||
|
||
## Relationship with HPA
|
||
- HPA 通过 Metrics Server 获取 Pod 的 CPU/内存利用率
|
||
- 计算公式:`desiredReplicas = ceil(sum(podMetricValue) / targetValue)`
|
||
- 目标阈值(targetValue)通常设置为 70-80%,保留缓冲空间
|
||
|
||
## Sources
|
||
- [[ctp-topic-64-scaling-out-with-amazon-eks]]
|