全部产品
云市场

Kubernetes对接Prometheus

更新时间:2019-04-16 17:56:35

Kubernetes(K8S)是用于自动部署,扩展和管理容器化应用程序的开源系统。如要了解更多有关Kubernetes的信息,请参考Kubernetes文档。本文介绍如何基于阿里云容器Kubernetes版本部署Prometheus监控方案,并将Prometheus的监控数据存储至阿里云TSDB中。

Prometheus是一款面向云原生应用程序的开源监控工具,支持通过服务发现或者静态配置去获取要采集的目标服务器,而在Kubernetes系统中,监控对象具体为:

  • 系统组件:Kubernetes集群中内置的组件,包括apiserver、controller-manager、etcd等。
  • 静态资源实体:节点的资源状态、内核事件等。
  • 动态资源实体:Kubernetes中抽象工作负载的实体,例如Deployment、DaemonSet、Pod等。
  • 自定义应用:应用内部需要定制化的监控数据以及监控指标。

对于系统组件和静态资源实体的监控方式,在配置文件中指明即可。
对于动态资源实体的监控,可以使用Prometheus监控部署方案。

Kubernetes的监控指标数据通过Prometheus存储至阿里云TSDB的具体步骤如下:

步骤一 部署Prometheus监控方案

在Kubernetes中,可通过Prometheus Operator来简单快速地安装Prometheus监控方案。详细步骤请参考阿里云容器Kubernetes版本的帮助文档:部署Prometheus监控方案

步骤二 修改Prometheus配置

修改文件prometheus-prometheus.yaml,在spec下添加Prometheus的remoteWrite和remoteRead的相关配置。需要值得注意是,Prometheus Operator在配置Prometheus的配置remote相关配置项时,采用的是驼峰命名法,具体可以参考Prometheus Operator的配置项说明文档。假设购买的TSDB示例规格为3xlarge,则建议参考配置如下。其中queueConfig的配置项,可以根据实际情况进行适当调整。

  1. spec:
  2. remoteWrite:
  3. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_write"
  4. queueConfig:
  5. capacity: 10000
  6. maxShards: 6
  7. maxSamplesPerSend: 500
  8. remoteRead:
  9. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read"
  10. readRecent: true

关于prometheus-prometheus.yaml的更多配置项,可以从prometheus-operator的Github仓库获取到。

步骤三 应用更新

修改prometheus的配置后,执行下面这行命令即可使得修改后的配置生效。

  1. kubectl apply -f manifests/prometheus-prometheus.yaml