原文: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文章,用