K8s中Kubelet与APIServer的/metrics端点指标有什么区别?
K8s API Server与Kubelet /metrics端点指标差异
- 职责匹配的专属指标差异
API Server除了自身请求处理、性能运行类基础指标外,额外包含Etcd交互相关专属指标(如etcd请求延迟、操作成功率、存储配额使用率等),同时覆盖集群维度的认证鉴权、资源准入、API对象生命周期管控类统计指标。
Kubelet仅保留节点侧运行相关指标,包括当前节点的CPU/内存/磁盘资源使用率、本机Pod/容器运行状态、Pod资源预留、容器运行时交互指标、kubelet自身服务性能指标,不存在任何Etcd相关指标。 - 覆盖维度差异
API Server返回的是集群维度的全局统计指标,覆盖全集群资源管控相关的统计数据;Kubelet返回的是单节点维度的局部指标,不同节点的kubelet返回的指标完全独立,仅对应当前节点运行数据。
指标来源逻辑说明
两个组件完全独立维护自身的指标集,不存在互相拉取指标的关系,具体逻辑如下:
- Kubelet
/metrics端点的所有数据均由kubelet进程自身采集、统计生成,不依赖API Server的任何返回数据,即使节点与API Server网络断连,kubelet的/metrics端点依然可以正常返回当前节点的运行指标。 - API Server
/metrics端点的所有数据均由APIServer进程自身统计生成,其中涉及节点、Pod状态的指标,是APIServer处理完资源对象变更请求后自主统计的结果,不会直接复用kubelet的指标数据。
注:两类指标看起来较为相似,是因为均遵循K8s官方统一的指标命名规范,并非数据源相同导致。
内容的提问来源于stack exchange,提问作者Shahed
相关产品推荐
相关产品推荐

