资源指标从哪来
集群不原生保存资源用量数据,节点上的组件只提供实时采样。metrics-server 周期抓取这些采样并通过聚合接口暴露给集群,供命令行与自动扩缩容使用。它不存储历史数据,也不替代监控系统,作用是把实时用量变成集群内可查询的接口。
基本信息
| 适用平台 | Kubernetes 1.20+,以部署清单方式安装 |
|---|---|
| 部署位置 | 系统命名空间,通常单副本运行 |
| 数据来源 | 各节点的实时采样接口 |
| 暴露方式 | 注册为聚合接口供命令行查询 |
| 数据特点 | 只有近期采样,没有长期历史 |
典型使用场景
- 查看节点与 Pod 的实时资源用量
- 为自动扩缩容提供用量数据来源
- 容量规划时快速了解当前水位
- 排查资源相关问题时确认实际用量
- 新集群搭建时的基础组件安装
部署与自检
部署与自检
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl -n kube-system get pods -l k8s-app=metrics-server # 副本状态
kubectl get apiservice v1beta1.metrics.k8s.io -o jsonpath='{.status.conditions}' # 聚合接口状态
kubectl -n kube-system logs -l k8s-app=metrics-server --tail=50 # 采集失败原因
kubectl top nodes # 实际查询自检顺序
| 检查项 | 正常表现 | 异常处理 |
|---|---|---|
| 部署副本 | 就绪且重启次数稳定 | 查看日志中的采集错误 |
| 聚合接口 | 状态为可用 | 接口不可用时命令行会直接报错 |
| 节点采样 | 能列出全部节点用量 | 部分节点缺失说明该节点侧不可访问 |
| 查询结果 | 数据随时间刷新 | 长期不变说明采集已停止 |
自签证书环境常见的两个参数:跳过节点证书校验(仅适合测试)与优先使用内网地址连接。生产环境应配置正确的证书链,而不是长期跳过校验。
安装完成后,用命令行查询节点用量比查看 Pod 状态更可靠:聚合接口注册失败时,组件进程仍在运行、Pod 依然显示就绪,但查询会直接返回错误。
跳过证书校验只适合实验环境。生产环境这样做会削弱节点身份验证,中间人可以在集群内部伪装成节点提供伪造用量。