目录

简介

部署Metrics Server

部署exporter

部署prometheus

部署matrics

整合Grafana


简介

Prometheus项目来自SoundCloud,是继Kubernetes之后CNCF的第二个成员项目,是新起的系统监控平台和告警工具套件,在容器和微服务广泛关注和使用

kube-state-metrics把数据转换为k8s能够识别的数据格式

k8s-prometheus-adapter把指标数据转出为API服务形式,需要基于https提供服务,因为api server也是以https形式提供服务

 

 

Custom Metrics 部署流程

1. node-exporter:prometheus的agent端,收集Node级别的监控数据。

2. prometheus:监控服务端,从node-exporter拉数据并存储为时序数据。

3. kube-state-metrics: 将prometheus中可以用PromQL查询到的指标数据转换成k8s对应的数据格式,即转换成【Custerom Metrics API】接口格式的数据,但是它不能聚合进apiserver中的功能。

4. k8s-prometheus-adpater:聚合apiserver,即提供了一个apiserver【cuester-metrics-api】,自定义APIServer通常都要通过Kubernetes aggregator聚合到apiserver。

部署Metrics Server

从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取, metrics-server 替代了heapster。Metrics Server 实现了Resource Metrics API,Metrics Server 是集群范围资源使用数据的聚器。 Metrics Server 从每个节点上的 Kubelet 公开的 Summary API 中采集指标信息。

注意:

  • Metrics API 只可以查询当前的度量数据,并不保存历史数据
  • Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护
  • 必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据!

kubernetes metrics server 源码下载地址 :https://github.com/kubernetes-incubator/metrics-server

  1. 下载资源清单:
    git clone https://github.com/kubernetes-incubator/metrics-server.git

     

  2. 应用资源清单:
    cd metrics-server/1.8+
    kubectl apply -f ./

     

  3. 查看部署后的资源对象:
    kubectl get svc -n kube-system
    
    kubectl get pod -n kube-system

     

  4. 查看API中有没有:
    kubectl api-versions

     

  5. 查看Metrics API:
    curl http://localhost:8080/apis/metrics.k8s.io/v1beta1

     

  6. 查看kube top命令:
    kubectl top nodes

     

    kubectl top pods

     

     

     

     

     

 

部署exporter

通过各种export采集不同维度的监控指标

 

 

 

部署prometheus

 

 

 

部署matrics

 

 

 

整合Grafana

在实际工作环境中仅通过手工输入PromQL查询语句来获取内容显然是不够的,建议引入Grafana来对Prometheus采集的监控数据进行可视化展示

 

配置DataSource:

导入prometheus数据源自带的面板:

从grafana官网下载更多dashboard:https://grafana.com/dashboards

导入dashboard模板:

 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐