集群透视 - K8s 核心监控组件与日志管理方案

集群透视 - K8s 核心监控组件与日志管理方案


对于 SRE 而言,仅仅让应用跑起来是远远不够的,确保整个 Kubernetes 集群的健康、稳定,并能够快速定位应用问题,依赖于一套完善的监控和日志体系。

Kubernetes 监控分层与核心组件

Kubernetes 的监控可以从不同层面进行:

  • 节点 (Node) 层面: 监控每台物理机或虚拟机的硬件资源使用情况、操作系统状态等(通常由 Node Exporter 负责,我们在 Prometheus 系列中已介绍)。
  • Pod/容器层面: 监控每个 Pod 及其内部容器的资源消耗、网络流量等。
  • Kubernetes 控制平面层面: 监控 API Server, etcd, Scheduler, Controller Manager 等核心组件的健康和性能(云厂商的托管 K8s 服务通常会提供这部分监控,或者需要专门配置)。
  • Kubernetes API 对象状态层面: 监控 Deployments, Services, StatefulSets, PersistentVolumeClaims 等 K8s 资源对象自身的状态。

为了支持这些监控,Kubernetes 生态提供了一些核心组件:

A. metrics-server (资源指标管道)

  • 用途: metrics-server 是一个轻量级的、集群范围的资源使用数据聚合器。它主要负责收集和提供临时的、短期的 Pod 和 Node 的核心资源使用指标(CPU 和内存)。
  • 工作原理: 它从每个 Node 上的 kubelet(kubelet 又从内置的 cAdvisor 获取数据)收集汇总的资源使用数据,然后在内存中存储这些聚合指标,并通过 Kubernetes Metrics API (metrics.k8s.io) 暴露出来。
  • 主要消费者:
    • Horizontal Pod Autoscaler (HPA): HPA 依赖 metrics-server 提供的 Pod CPU/内存平均利用率来进行水平伸缩决策。
    • kubectl top podkubectl top node 命令: 这两个命令显示的就是 metrics-server 提供的实时

你可能感兴趣的:(云原生,kubernetes,容器,云原生)