1、Kubernetes需要监控的指标
Prometheus对于Kubemetes集群的监控一般考虑以下方面:
- Kubermetes节点的监控,比如节点的CPU、Load、fdisk、Memory等指标。这些指标可使用node_exporter来实现,也就是每个节点部署node_exporter。
- 内部系统组件状态,比如kube-scheduler、kube-controller-nanager、kubedns/coredns等组件的运行状态。编排级的metrics,比如Deployment的状态、资源请求、调度和API延迟等数据指标。可通过Kube-state-metrics来实现。
kube-state-metrics只是简单的提供一个metrics数据,并不会存储这些指标数据,我们可以使用Prometheus来抓取这些数据然后存储。
kube-state-metrics可获取的指标有如下:
- Deployment、Pod、副本状态等;
- 调度了多少个replicas;
- 现在可用的pod有几个;
- 多少个Pod是running/stopped/terminated状态;
- Pod重启了多少次;
- 我有多少job在运行中;
2、Prometheus监控Kubernetes的几种方法
1. 手工部署
基本过程是通过编写YAML文件,在Kubernetes上部署Prometheus,即按顺序部署了Prometheus、kube-state-metrics、node-exporter以及Grafana等。
大致步骤如下:
- 替换镜像(如果需要);
- 调整yaml文件;