環境說明: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
Prometheus
是一個開源系統監控和警報工具包,最初是在soundcloud構建的。自2012年成立以來,許多公司和組織都採用了Prometheus,該項目擁有一個很是活躍的開發人員和用戶社區。它如今是一個獨立的開源項目,獨立於任何公司進行維護,於2016年加入了雲原生計算基金會,成爲繼kubernetes以後的第二個託管項目。github
特色:docker
- 用度量名和鍵值對識別時間序列數據的多維數據模型
- 靈活的查詢語言
- 不依賴分佈式存儲;單服務器節點是自治的
- 經過http上的pull模型進行時間序列收集
- 經過中間網關支持推送時間序列
- 經過服務發現或靜態配置發現目標
- 多種圖形和儀表板支持模式
在微服務架構裏,其對多維數據收集和查詢有很好的的支持。api
Prometheus從jobs獲取度量數據,也直接或經過推送網關獲取臨時jobs的度量數據。它在本地存儲全部被獲取的樣本,並在這些數據運行規則,對現有數據進行聚合和記錄新的時間序列,或生成警報。經過Grafana或其餘API消費者,能夠可視化的查看收集到的數據。bash
Prometheus Operator是CoreOS開發的基於Prometheus的Kubernetes監控方案 服務器
Prometheus Operator:整合Kubernetes和Prometheus的最佳方法
。架構
Prometheus Operator 功能更特色:分佈式
工做流程:ide
[root@master ~]# git clone https://github.com/coreos/kube-prometheus.git
下載鏡像:
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節點都執行
[root@master kube-prometheus]# kubectl create -f manifests/setup [root@master kube-prometheus]# kubectl create -f manifests/
[root@master kube-prometheus]# kubectl get all -n monitoring [root@master kube-prometheus]# kubectl get prometheus --all-namespaces -o wide
全部資源都在monitoring命名空間中。
[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
分別修改service prometheus-k8s、grafana和alertmanager-main,service類型爲NodePort,端口分別爲3002一、3002二、30023
http://172.27.9.131:30022 用戶名密碼都爲admin
內置模板查看:
集羣資源查看:
kubelet查看:
StatefulSets查看:
Pod查看:
API查看:
namespace查看:
查看各節點資源使用:
Prometheus查看:
其餘模板:
自帶的模板很豐富,不過也能夠下載其餘模板,好比 ‘1 Node Exporter for Prometheus 監控展現看板 update!’ :https://grafana.com/api/dashboards/8919/revisions/10/download
[root@master kube-prometheus]# kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup
本文全部腳本和配置文件已上傳:k8s實踐(十二):Prometheus Operator監控Kubernetes集羣