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

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 提供关键的资源使用数据,帮助集群进行资源管理和自动扩展。

相关文章:

  • 【Hestia Project 数据集】美国化石燃料 CO₂ 排放数据
  • 《论语别裁》第01章 学而(27) 无所适从的礼俗
  • uboot中的.config文件
  • superset部署记录
  • min_element用法
  • pytorch快速入门——手写数字分类GPU加速
  • python-数据类型字符串和列表
  • 【Qt】qrc机制介绍
  • Java实现【将Markdown格式文本转换为纯文本】
  • Python跳动的爱心
  • go数据结构笔记
  • Spring(5)——IoC DI
  • DevExpress WinForms 中 SwiftPlot 图表控件的使用指南
  • DeepSeek:技术教育领域的AI变革者——从理论到实践的全面解析
  • 修改 Macbook 终端窗口的显示信息
  • 【算法】用“龟兔赛跑”的思想原地移除元素
  • Go Context包详解与最佳实践
  • Vue学习笔记集--六大指令
  • f-string高级字符串格式化与string Template()
  • NestJS(基于 Express 的现代化框架)
  • 《一鸣惊人》五一特别节目:以戏曲为桥梁,展现劳动者的坚守
  • Meta一季度净利增长三成:上调全年资本支出,受关税影响亚洲出口电商广告支出减少
  • 夜读丨春天要去动物园
  • 全国台联原会长杨国庆逝世,享年89岁
  • 解放日报:上海深化改革开放,系统集成创新局
  • 国有六大行一季度合计净赚超3444亿,不良贷款余额均上升