当前位置: 首页 > article >正文

Kubernetes 中metrics-server的采集周期,采集链路是什么样的?

0. 运维干货分享

  • 软考高级系统架构设计师备考学习资料
  • 软考高级网络规划设计师备考学习资料
  • Kubernetes CKA认证学习资料分享
  • 信息安全管理体系(ISMS)制度模板分享
  • 免费文档翻译工具(支持word、pdf、ppt、excel)
  • PuTTY中文版安装包
  • MobaXterm中文版安装包
  • pinginfoview网络诊断工具中文版

在 Kubernetes 中,metrics-server 是一个轻量级的指标采集器,用于提供集群节点和 Pod 的资源使用情况(如 CPU 和内存)。它主要用于支撑 Kubernetes 的自动扩展功能,如 Horizontal Pod Autoscaler (HPA) 和 Vertical Pod Autoscaler (VPA)。

1. 采集周期

  • 默认采集周期: metrics-server 的默认采集周期通常为 60 秒,即每隔 60 秒从各节点采集一次指标数据。
  • 可配置采集周期: 你可以通过设置 –metric-resolution 参数来自定义这个采集周期。例如,设置 –metric-resolution=30s 可以将采集周期调整为 30 秒。

2. 采集链路

metrics-server 的采集链路涉及几个关键组件:Kubelet、API Server、和 metrics-server 本身。以下是它的详细采集流程:

步骤 1: Kubelet 采集节点和 Pod 级别的资源使用情况
  • 每个 Kubernetes 节点上都运行着 kubelet,它负责监控该节点上运行的所有容器的状态和资源使用情况。
  • kubelet 从容器运行时(如 Docker 或 containerd)和 cgroups 中采集资源使用数据(例如 CPU 和内存使用量),并将这些数据保存在本地的 /metrics 或 /stats/summary 端点上。
步骤 2: metrics-server 拉取数据
  • metrics-server 周期性地从集群中每个节点的 kubelet 上的 /metrics/resource/v1alpha1 端点(或者 /stats/summary 端点)拉取节点和 Pod 的资源使用数据。
  • 这种通信是通过 HTTPS 加密的,metrics-server 使用节点证书进行认证,并且 metrics-server 必须被配置为可以访问这些节点端点。
步骤 3: metrics-server 聚合数据
  • metrics-server 收集到的数据包括每个节点上所有 Pod 的 CPU 和内存使用量。
  • 它将这些数据进行聚合和处理,并在内存中存储最近一次的采集数据。这意味着 metrics-server 不会持久化历史数据,而是只保留当前的最新状态。
步骤 4: 提供数据给 API Server
  • 一旦数据被处理好,metrics-server 通过 Kubernetes API 端点提供这些数据。API Server 可以通过 apis/metrics.k8s.io/v1beta1 端点访问这些指标数据。
  • 这个数据端点可以被 Kubernetes 内部组件(如 HPA 控制器)或外部用户查询,以获得当前集群中各个 Pod 和节点的资源使用情况。

3. 总结的采集链路图示化

  1. Kubelet 采集节点及容器的资源使用数据(CPU、内存)。
  2. metrics-server 周期性地通过 HTTPS 从每个节点的 Kubelet 拉取数据。
  3. metrics-server 聚合并处理这些数据,保存在内存中。
  4. metrics-server 通过 metrics.k8s.io API 端点将数据提供给 Kubernetes API Server。
  5. 用户或组件(如 HPA) 通过 API Server 查询这些实时资源使用数据,以做出扩展决策。

4.配置和优化

  • 采集周期:你可以通过 –metric-resolution 参数配置 metrics-server 的采集周期。如果集群对实时性要求较高,可以设置更短的采集周期,但这可能会增加系统的开销。
  • 安全性:确保 metrics-server 与 kubelet 之间的通信是安全的,通常通过 TLS 证书认证。此外,配置 metrics-server 使其具有足够的权限去访问节点数据。

通过这些配置和机制,metrics-server 能够为 Kubernetes 提供关键的资源使用数据,帮助集群进行资源管理和自动扩展。


http://www.kler.cn/a/588265.html

相关文章:

  • Vue学习笔记集--六大指令
  • NAT、代理服务器、内网穿透和内网打洞
  • 【web逆向】优某愿 字体混淆
  • 修改 Macbook 终端窗口的显示信息
  • Leetcode做题记录----3
  • [特殊字符]Windows 11 安装 Git 图文教程(含详细配置说明)
  • IMX6ULL学习整理篇——Linux驱动开发的基础2 老框架的一次实战:LED驱动
  • 五大基础算法——递归算法
  • LangChain教程 - Agent -之 REACT_DOCSTORE
  • 1.备战SISAP 2025挑战:调研2024挑战
  • Java语言的WebSocket
  • 施磊老师c++(七)
  • 游戏引擎学习第163天
  • 如何在 GitHub 上修改他人的分支
  • Java 大视界 -- Java 大数据在智慧交通自动驾驶仿真与测试数据处理中的应用(136)
  • 【MCU】芯片复位与软件复位 在生产工装上的应用
  • 苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
  • yungouos微信扫码登录demo示例(支持个人免费)
  • 使用 OpenSSL 生成的 RSA 私钥文件(如`prikey.pem`)可以用于加密和解密数据
  • 【Cadence软件技巧集萃】从Capture到Allergo——分布演示从原理符号导出到网络表