kube-state-metrics 详解

kube-state-metrics 是一个针对Kubernetes集群状态的指标收集器,它轮询API服务器并将结构化信息转换为metrics。功能包括CronJob、Deployment、Job等资源的指标。与metric-server不同,kube-state-metrics专注于获取资源状态,不涉及数据存储。文章介绍了部署、使用、优化以及与metric-server的区别,适用于监控和报警场景。
摘要由CSDN通过智能技术生成

原文:https://mp.weixin.qq.com/s/176eyFBknzdA5wpiJrxDSg

概述

已经有了 cadvisor、heapster、metric-server,几乎容器运行的所有指标都能拿到,但是下面这种情况却无能为力:

  • 我调度了多少个 replicas?现在可用的有几个?

  • 多少个 Pod 是 running/stopped/terminated 状态?

  • Pod 重启了多少次?

  • 我有多少 job 在运行中

而这些则是 kube-state-metrics 提供的内容,它基于 client-go 开发,轮询 Kubernetes API,并将 Kubernetes的结构化信息转换为metrics。

功能

kube-state-metrics 提供的指标,按照阶段分为三种类别:

  • 1.实验性质的:k8s api 中 alpha 阶段的或者 spec 的字段。

  • 2.稳定版本的:k8s 中不向后兼容的主要版本的更新

  • 3.被废弃的:已经不在维护的。

     

 

指标类别包括:

- CronJob Metrics

- DaemonSet Metrics

- Deployment Metrics

- Job Metrics

- LimitRange Metrics

- Node Metrics

- PersistentVolume Metrics

- PersistentVolumeClaim Metrics

- Pod Metrics

- Pod Disruption Budget Metrics

- ReplicaSet Metrics

- ReplicationController Metrics

- ResourceQuota Metrics

- Service Metrics

- StatefulSet Metrics

- Namespace Metrics

- Horizontal Pod Autoscaler Metrics

- Endpoint Metrics

- Secret Metrics

- ConfigMap Metrics

 

以 Pod 为例:

- kube_pod_info

- kube_pod_owner

- kube_pod_status_phase

- kube_pod_status_ready

- kube_pod_status_scheduled

- kube_pod_container_status_waiting

- kube_pod_container_status_terminated_reason

- ...

使用

部署清单地址:https://github.com/kubernetes/kube-state-metrics/tree/master/kubernetes

 

主要镜像有: image: quay.io/coreos/kube-state-metrics:v1.5.0 image: k8s.gcr.io/addon-resizer:1.8.3(参考metric-server文章&#x

kube-state-metrics是一个开源的Kubernetes组件,用于将Kubernetes资源信息转换为指标metrics)并暴露给Prometheus。YAML是Kubernetes中常用的声明式配置文件格式。kube-state-metrics也需要通过YAML配置文件进行部署和管理。下面来详细介绍kube-state-metrics YAML的几个方面。 首先,kube-state-metrics YAML需要配置Kubernetes API Server的地址、证书等信息,以便通过API Server获取资源信息。其次,kube-state-metrics需要指定需要收集的资源类型,比如Pod、Deployment等。这些资源类型通过Kubernetes API定义,kube-state-metrics会通过API Server获取这些资源的详细信息,并将其转换为指标。此外,kube-state-metrics YAML还需要指定需要暴露给Prometheus的指标端口等信息,以便Prometheus可以通过这些指标监控Kubernetes集群各种资源的使用情况。 在kube-state-metrics的配置中,还需要指定各个资源指标的定义方式,例如当Pod或Deployment出现异常时,kube-state-metrics需要如何定义这些指标?以及在Prometheus中如何查询这些指标。因此,可以在kube-state-metrics的YAML文件中定义各个指标的名称,以及在Prometheus中的查询方式。这里的细节需要参考kube-state-metrics的文档。 总之,kube-state-metrics YAML是配置kube-state-metrics组件的一种方法,通过对该文件进行配置,可以定制化kube-state-metrics组件的行为,并将它整合到Kubernetes集群中。而kube-state-metrics指标可以用于Kubernetes集群的监控和自动化管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值