prometheus概述

  • Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件 Prometheus server 会定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉取数据,当新拉取到的数据大于配置的内存缓存区时,数据就会持久化到存储设备当中。每个采样数据占3.5 bytes左右,300万的时间序列,30s间隔,保留60天,消耗磁盘大概200G。

  • 每个被监控的主机都可以通过专用的 exporter 程序提供输出监控数据的接口,它会在目标处收集监控数据,并暴露出一个 HTTP接口供 Prometheus server 查询,Prometheus 通过基于 HTTP 的 pull 的方式来(周期性)的采集数据。 如果存在告警规则,则抓取到数据之后会根据规则进行计算,满足告警条件则会生成告警,并发送到 Alertmanager 完成告警的汇总和分发。当被监控的目标有主动推送数据的需求时,可以以 Pushgateway 组件进行接收并临时存储数据,然后等待 Prometheus server 完成数据的采集。

  • 任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示,监控目标可以通过(配置信息以静态形式指定),就是(手动配置),也可以让 Prometheus 通过服务发现的机制进行(动态管理)。Prometheus 能够直接把 API Server 作为服务发现系统使用,进而动态发现和监控集群中的所有可被监控的对象。

 

阅读全文 »

持久卷

Persistent Volume(PV)描述的是持久化存储数据卷。主要定义一个持久化存储在宿主机上的目录。
持久卷不属于任何命名空间,它跟节点一样是集群层面的资源。
通常情况下,会先在kubernetes集群里创建PV对象,比如定义一个NFS类型的PV:

1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx-pv-nfs
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
storageClassName: manual
nfs:
server: 172.21.0.5
path: "/pk1yjy13/"

注意

  • RWOReadWriteOnce,允许单个节点挂载读写。
  • ROXReadOnlyMany,允许多个节点挂载只读。
  • RWXReadWriteMany,允许多个节点挂载读写。
阅读全文 »

部署前的准备

  • 需要保证每个节点都有自己独立的公网IP
  • kubeadm将apiServer服务暴露至公网
  • 由于Node节点加入集群的时候被登记的INTERNAL-IP是节点内网IP,这样Master节点在和Node节点通信的时候会直接访问Node的内网IP,所以需要做iptables的NAT转发。
阅读全文 »

服务

kubernetes服务是为一组功能相同的pod提供单一不变的接入点资源。当一个服务存在时,它的IP和端口不会改变。客户端通过IP地址和端口号建立连接。连接会被路由到提供该服务的任意一个pod。

通过这种方式,客户端不需要知道提供服务pod的ip和端口信息,这样这些pod可以在集群中随时被创建和删除。

假如有前端web服务器和后端数据库服务器,有很多pod提供前端服务,而中有一个pod提供后台数据库服务。需要解决两个问题才能发挥系统作用

  • 外部客户无须关心服务器数量而连接到前端Pod上。
  • 前端的pod需要连接后端的数据库。由于数据库运行在pod上,他可能会在集群中随时重启而移动,导致IP地址随时变动。当后端数据库被移动时,不必为前端pod重新配置。
阅读全文 »
0%