×

Kubernetes监控(coreos/prometheus-operator)

96
殷临风
2018.04.10 18:29* 字数 497

开源监控报警系统Prometheus一出现, 迅速被大家熟知, 高效的性能, 简洁的查询语句具有极大优势. 配合Grafana的前端显示, 是一个非常不错的选择. 之前k8s集群通过heaspter+grafana+influxdb监控, 但当更新pod的时候, 旧的pod数据不会立即消失. 后来又采用weave-scope监控, 各项数据也都能很好的获取, 但其界面显示没那么直观, 加上对cpu的占用非常大, 所以也不适合.

使用prometheus监控k8s一般有两种方案:

  1. https://github.com/giantswarm/kubernetes-prometheus
  2. https://github.com/coreos/prometheus-operator/releases?after=v0.13.0

其中第二种方案我比较推荐,coreos公司维护, 更新非常快, 但一定要注意使用的版本号. 这里只介绍第二种方案

下载

# 拉取源代码
git clone https://github.com/coreos/prometheus-operator.git
cd prometheus-operator
# 切换tag
git checkout v0.11.3

注意这个版本号, 由于v0.12.0开始最低支持k8s-v1.7.0以上, 所以要切换到合适的分支, 具体查看版本更新信息

https://github.com/coreos/prometheus-operator/releases

安装

# 创建命名空间
kubectl create namespace monitoring
# 创建prometheus-operator
kubectl apply -f bundle.yaml -n monitoring
# 创建相关服务
cd contrib/kube-prometheus
./hack/cluster-monitoring/deploy

查看状态

检查

登录Promethues后台

http://你的地址:30900

选择 Status -> Targets, 如果状态都是UP, 证明服务正常

登录Grafana后台

http://你的地址:30902

整个部署过程很简单, 但一定要注意你的k8s版本和它的版本是否兼容. 另外源代码体积比较大, 拉取时间可能会比较长, 容器使用的镜像也会比较难下载.

高可用部署系列

Kubernetes高可用集群部署 - 1. 生成证书
Kubernetes高可用集群部署 - 2. ETCD集群
Kubernetes高可用集群部署 - 3. kubectl工具配置
Kubernetes高可用集群部署 - 4. master集群
Kubernetes高可用集群部署 - 5. node集群
Kubernetes高可用集群部署 - 6. DNS配置

相关服务

Kubernetes配置secret拉取私仓镜像
Kubernetes目录挂载
Kubernetes Ingress使用
Kubernetes限制pod的cpu和内存
Helm部署Kubernetes应用
Kubernetes监控(Heapster)
->Kubernetes监控(coreos/prometheus-operator)

Kubernetes
Web note ad 1