k8s實踐(十二):Prometheus Operator監控Kubernetes集羣

環境說明:node

主機名 操做系統版本 ip docker version kubelet version helm version 配置 備註
master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 v2.14.3 2C2G master主機
node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 v2.14.3 2C2G node節點
node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.6 V1.14.2 v2.14.3 2C2G node節點

 

k8s集羣部署詳見:Centos7.6部署k8s(v1.14.2)集羣
k8s學習資料詳見:基本概念、kubectl命令和資料分享 git

 

1、prometheus簡介

Prometheus是一個開源系統監控和警報工具包,最初是在soundcloud構建的。自2012年成立以來,許多公司和組織都採用了Prometheus,該項目擁有一個很是活躍的開發人員和用戶社區。它如今是一個獨立的開源項目,獨立於任何公司進行維護,於2016年加入了雲原生計算基金會,成爲繼kubernetes以後的第二個託管項目。github

特色:docker

  • 用度量名和鍵值對識別時間序列數據的多維數據模型
  • 靈活的查詢語言
  • 不依賴分佈式存儲;單服務器節點是自治的
  • 經過http上的pull模型進行時間序列收集
  • 經過中間網關支持推送時間序列
  • 經過服務發現或靜態配置發現目標
  • 多種圖形和儀表板支持模式

在微服務架構裏,其對多維數據收集和查詢有很好的的支持。api

2、prometheus架構

圖片.png

Prometheus從jobs獲取度量數據,也直接或經過推送網關獲取臨時jobs的度量數據。它在本地存儲全部被獲取的樣本,並在這些數據運行規則,對現有數據進行聚合和記錄新的時間序列,或生成警報。經過Grafana或其餘API消費者,能夠可視化的查看收集到的數據。bash

3、Prometheus Operator介紹

Prometheus Operator是CoreOS開發的基於Prometheus的Kubernetes監控方案 服務器

圖片.png

Prometheus Operator:整合Kubernetes和Prometheus的最佳方法架構

Prometheus Operator 功能更特色:分佈式

  • 建立/銷燬: 在Kubernetes namespace中更容易啓動一個prometheus實例,一個特定的應用程序或團隊更容易使用Operator。
  • 簡單配置: 配置Prometheus的基礎,好比versions, persistence, retention policies和來自本機kubernetes資源的副本。
  • 經過標籤的目標服務: 基於常見的Kubernetes label查詢,自動生成監控target 配置;無需學習prometheus特定的配置語言。

工做流程:ide

圖片.png

4、Prometheus Operator部署

1.安裝文件下載

[root@master ~]# git clone https://github.com/coreos/kube-prometheus.git

圖片.png

2.鏡像下載

下載鏡像:

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/configmap-reload:v0.0.1

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/alertmanager:v0.18.0

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/kube-state-metrics:v1.8.0

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/kube-rbac-proxy:v0.4.1

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/node-exporter:v0.18.1

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/k8s-prometheus-adapter-amd64:v0.5.0

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/prometheus-config-reloader:v0.33.0

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/prometheus:v2.11.0

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/prometheus-operator:v0.33.0

docker pull registry.cn-hangzhou.aliyuncs.com/loong576/grafana:6.4.3

打tag:

docker tag  registry.cn-hangzhou.aliyuncs.com/loong576/configmap-reload:v0.0.1 quay.io/coreos/configmap-reload:v0.0.1

docker tag registry.cn-hangzhou.aliyuncs.com/loong576/alertmanager:v0.18.0 quay.io/prometheus/alertmanager:v0.18.0

docker tag registry.cn-hangzhou.aliyuncs.com/loong576/kube-state-metrics:v1.8.0 quay.io/coreos/kube-state-metrics:v1.8.0

docker tag registry.cn-hangzhou.aliyuncs.com/loong576/kube-rbac-proxy:v0.4.1 quay.io/coreos/kube-rbac-proxy:v0.4.1

docker tag registry.cn-hangzhou.aliyuncs.com/loong576/node-exporter:v0.18.1  quay.io/prometheus/node-exporter:v0.18.1

docker tag  registry.cn-hangzhou.aliyuncs.com/loong576/k8s-prometheus-adapter-amd64:v0.5.0 quay.io/coreos/k8s-prometheus-adapter-amd64:v0.5.0

docker tag  registry.cn-hangzhou.aliyuncs.com/loong576/prometheus-config-reloader:v0.33.0 quay.io/coreos/prometheus-config-reloader:v0.33.0

docker tag registry.cn-hangzhou.aliyuncs.com/loong576/prometheus:v2.11.0 quay.io/prometheus/prometheus:v2.11.0

docker tag registry.cn-hangzhou.aliyuncs.com/loong576/prometheus-operator:v0.33.0  quay.io/coreos/prometheus-operator:v0.33.0

docker tag registry.cn-hangzhou.aliyuncs.com/loong576/grafana:6.4.3 grafana/grafana:6.4.3

刪除鏡像:

docker rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/configmap-reload:v0.0.1

docker rmi -f registry.cn-hangzhou.aliyuncs.com/loong576/alertmanager:v0.18.0

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/kube-state-metrics:v1.8.0

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/kube-rbac-proxy:v0.4.1

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/node-exporter:v0.18.1

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/k8s-prometheus-adapter-amd64:v0.5.0

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/prometheus-config-reloader:v0.33.0

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/prometheus:v2.11.0

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/prometheus-operator:v0.33.0

docker  rmi -f  registry.cn-hangzhou.aliyuncs.com/loong576/grafana:6.4.3

以上三個步驟全部node節點都執行

3.執行安裝

[root@master kube-prometheus]# kubectl create -f manifests/setup
[root@master kube-prometheus]# kubectl create -f manifests/

4.資源查看

[root@master kube-prometheus]# kubectl get all -n monitoring 
[root@master kube-prometheus]# kubectl get prometheus --all-namespaces -o wide

圖片.png

全部資源都在monitoring命名空間中。

5.更改訪問方式

[root@master kube-prometheus]# kubectl edit -n monitoring service prometheus-k8s
service/prometheus-k8s edited
[root@master kube-prometheus]# kubectl edit -n monitoring service grafana
service/grafana edited
[root@master kube-prometheus]# kubectl edit -n monitoring service alertmanager-main
service/alertmanager-main edited

圖片.png

分別修改service prometheus-k8s、grafana和alertmanager-main,service類型爲NodePort,端口分別爲3002一、3002二、30023

5、頁面展現

1.訪問 Prometheus

http://172.27.9.131:30021

圖片.png

圖片.png

2.訪問 Alert Manager

http://172.27.9.131:30023

圖片.png
圖片.png

3.訪問 Grafana

http://172.27.9.131:30022 用戶名密碼都爲admin

圖片.png

內置模板查看:

圖片.png

集羣資源查看:

圖片.png

kubelet查看:

圖片.png

StatefulSets查看:

圖片.png

Pod查看:

圖片.png

API查看:

圖片.png

namespace查看:

圖片.png

查看各節點資源使用:

圖片.png

Prometheus查看:

圖片.png

其餘模板:

自帶的模板很豐富,不過也能夠下載其餘模板,好比 ‘1 Node Exporter for Prometheus 監控展現看板 update!’ :https://grafana.com/api/dashboards/8919/revisions/10/download

圖片.png

6、Prometheus Operator卸載

[root@master kube-prometheus]# kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

本文全部腳本和配置文件已上傳:k8s實踐(十二):Prometheus Operator監控Kubernetes集羣

相關文章
相關標籤/搜索