全部产品
Search
文档中心

Kubernetes对接Prometheus

更新时间: 2021-10-18

本文介绍Kubernetes对接Prometheus方法。

背景信息

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

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

  • 系统组件:Kubernetes集群中内置的组件,包括apiserver、controller-manager、etcd等。

  • 静态资源实体:节点的资源状态、内核事件等。

  • 动态资源实体:Kubernetes中抽象工作负载的实体,例如Deployment、DaemonSet、Pod等。

  • 自定义应用:应用内部需要定制化的监控数据以及监控指标。

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

操作步骤

  1. 部署Prometheus监控方案。

    在Kubernetes中,可通过Prometheus Operator来简单快速地安装Prometheus监控方案,操作详情请参考开源Prometheus监控

  2. 修改Prometheus配置。

    修改文件prometheus-prometheus.yaml,在spec下添加Prometheus的remoteWrite和remoteRead的相关配置。Prometheus Operator在配置Prometheus的配置remote相关配置项时,采用的是驼峰命名法。

    以TSDB规格为3xlarge为示例,则建议参考配置如下。其中queueConfig的配置项,可以根据实际情况进行适当调整。

    spec:
      remoteWrite:
      - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_write"
        queueConfig:
          capacity: 10000
          maxShards: 6
          maxSamplesPerSend: 500
      remoteRead:
      - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read"
        readRecent: true

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

  3. 应用更新。

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

    kubectl apply -f manifests/prometheus-prometheus.yaml