基于Kubernetes部署Prometheus監控平臺

#作者:stackofumbrella

文章目錄

  • prometheus和k8s集群版本對照表
  • 架構
  • Prometheus Operator簡介
    • kube-prometheus下載地址
  • 安裝
    • 修改鏡像地址
    • 修改Prometheus的service
    • 修改Grafana的service
    • 修改Alertmanager的service
    • 數據持久化
    • 執行安裝
  • Prometheus驗證
    • Grafana驗證
    • 解決ControllerManager、Scheduler監控問題

prometheus和k8s集群版本對照表

kube-prometheus stackKubernetes 1.23Kubernetes 1.24Kubernetes 1.25Kubernetes 1.26Kubernetes 1.27Kubernetes 1.28Kubernetes 1.29Kubernetes 1.30Kubernetes 1.31
release-0.11???xxxxxx
release-0.12???xxxxxx
release-0.13??x???xxx
release-0.14??x??????
main??xx?????

架構

在這里插入圖片描述
kube-prometheus是一個完整的監控解決方案,可以輕松地將其部署到kubernetes集群中,它包括以下內容

  1. Prometheus用于度量收集

  2. Alertmanager用于指標警報和通知

  3. Grafana用于圖形用戶界面

  4. 一組特定于K8s的exporters用作指標收集代理

  5. 使用Prometheus Operator來簡化和自動化該堆棧的設置

Prometheus Operator簡介

由于Prometheus本身沒有提供管理配置的API接口(尤其是管理監控目標和管理警報規則),也沒有提供好用的多實例管理手段,因此這一塊往往要自己寫一些代碼或腳本。為了簡化這類應用程序的管理復雜度,CoreOS率先引入了Operator的概念,并且首先推出了針對在Kubernetes下運行和管理Etcd的Etcd Operator。并隨后推出了Prometheus Operator
prometheus-operator和kube-prometheus前者只包含了Prometheus Operator,后者既包含了Operator,又包含了Prometheus相關組件的部署及常用的Prometheus自定義監控,具體包含下面的組件
The Prometheus Operator:創建CRD自定義的資源對象
Highly available Prometheus:創建高可用的Prometheus
Highly available Alertmanager:創建高可用的告警組件
Prometheus node-exporter:創建主機的監控組件
Prometheus Adapter for Kubernetes Metrics APIs:創建自定義監控的指標工具(例如可以通過nginx的request來進行應用的自動伸縮)
kube-state-metrics:監控k8s相關資源對象的狀態指標
Grafana:進行圖像展示

kube-prometheus下載地址

https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.13.0.tar.gz

安裝

$ tar -C ./ -xf v0.13.0.tar.gz
$ cd kube-prometheus-0.13.0/manifests/
$ ls -lh *-networkPolicy.yaml
網絡策略文件建議刪除prometheus-networkPolicy.yaml、grafana-networkPolicy.yaml、alertmanager-networkPolicy.yaml
在這里插入圖片描述

修改鏡像地址

由于網絡原因kube-state-metrics和prometheus-adapter鏡像在國內無法下載,因此需要修改以下地址
$ vim kubeStateMetrics-deployment.yaml
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
$ vim prometheus-prometheus.yaml
在這里插入圖片描述
$ vim prometheusAdapter-deployment.yaml
在這里插入圖片描述
$ vim alertmanager-alertmanager.yaml
在這里插入圖片描述
$ vim grafana-deployment.yaml
在這里插入圖片描述
$ vim prometheusOperator-deployment.yaml
在這里插入圖片描述
在這里插入圖片描述
$ vim blackboxExporter-deployment.yaml
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
$ vim nodeExporter-daemonset.yaml
在這里插入圖片描述
在這里插入圖片描述

修改Prometheus的service

$ vim prometheus-service.yaml
在這里插入圖片描述

修改Grafana的service

$ vim grafana-service.yaml
在這里插入圖片描述

修改Alertmanager的service

$ vim alertmanager-service.yaml
在這里插入圖片描述

數據持久化

$ prometheus-prometheus.yaml
在這里插入圖片描述
$ vim grafana-deployment.yaml
在這里插入圖片描述
為grafana新增pvc
$ vim grafana-pvc.yaml

apiVersion: v1
kind: Namespace
metadata:name: monitoring
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: grafana-datanamespace: monitoringannotations:volume.beta.kubernetes.io/storage-class: "nfs-client"
spec:accessModes:- ReadWriteManyresources:requests:storage: 8Gi

創建grafana的pvc
$ kubectl apply -f grafana.yaml

由于grafana默認時區是UTC,比中國時間慢了8小時,很不便于日常監控查看,需要進行修改
$ sed -i ‘s/utc/utc+8/g’ grafana-dashboardDefinitions.yaml

$ sed -i ‘s/UTC/UTC+8/g’ grafana-dashboardDefinitions.yaml

$ grep -i timezone grafana-dashboardDefinitions.yaml

執行安裝

$ cd kube-prometheus-0.13.0
$ kubectl apply --server-side -f manifests/setup
$ kubectl apply -f manifests/
$ kubectl get pods -n monitoring

在這里插入圖片描述

Prometheus驗證

選擇一臺node節點IP+31000訪問
在這里插入圖片描述

Grafana驗證

選擇一臺node節點IP+31002訪問,默認用戶名密碼:admin/admin
在這里插入圖片描述

解決ControllerManager、Scheduler監控問題

默認安裝后訪問prometheus會發現有三個報警:Watchdog、KubeControllerManagerDown、KubeSchedulerDown

Watchdog是一個正常的報警,這個告警的作用是如果alermanger或prometheus本身掛掉了就發不出告警了,因此一般會采用另一個監控來監控prometheus,或自定義一個持續不斷的告警通知,哪一天這個告警通知不發了,說明監控出現問題了。
prometheus operator已經考慮了這一點,本身攜帶一個watchdog,作為對自身的監控。如果需要關閉,刪除或注釋掉Watchdog部分

$ vim prometheus-rules.yaml

修改/etc/kubernetes/manifests/kube-controller-manager.yaml文件,將–bind-address=127.0.0.1改為–bind-address=0.0.0.0

新增prometheus-kubeControllerManagerService.yaml

apiVersion: v1
kind: Service
metadata:namespace: kube-systemname: kube-controller-managerlabels:app.kubernetes.io/name: kube-controller-manager  #要與kubernetesControlPlane-serviceMonitorKubeControllerManager.yaml文件的spec.selector.matchLabels相同
spec:selector:component: kube-controller-manager#此處注意為kube-controller-manager pod的標簽ports:- name: https-metrics#名字要與kubernetesControlPlane-serviceMonitorKubeControllerManager.yaml文件的spec.endpoints.port值相同port: 10257#注意端口號要正確targetPort: 10257#注意端口號要正確protocol: TCP

$ kubectl apply -f prometheus-kubeControllerManagerService.yaml

修改/etc/kubernetes/manifests/kube-scheduler.yaml文件,將–bind-address=127.0.0.1改為–bind-address=0.0.0.0

新增prometheus-kubeSchedulerService.yaml文件

apiVersion: v1
kind: Service
metadata:namespace: kube-systemname: kube-schedulerlabels:app.kubernetes.io/name: kube-scheduler  #要與kubernetesControlPlane-serviceMonitorKubeScheduler.yaml文件的spec.selector.matchLabels相同
spec:selector:component: kube-scheduler   #此處注意為kube-scheduler pod的標簽ports:- name: https-metrics   #名字要與kubernetesControlPlane-serviceMonitorKubeScheduler.yaml文件的spec.endpoints.port值相同port: 10259#注意端口號要正確targetPort: 10259#注意端口號要正確protocol: TCP

$ kubectl apply -f prometheus-kubeControllerManagerService.yaml
刷新prometheus即可恢復
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75808.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75808.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75808.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android之uCrop (裁剪) 的基本使用資料

Android 拍照、選擇圖片并裁剪 uCrop裁剪 uCrop裁剪2 uCrop裁剪3 1.權限檢查 private static final int REQUEST_CAMERA_PERMISSION 333; private void requestCameraPermission() {if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)! …

STM32基礎教程——輸入捕獲模式測量PWM頻率

目錄 前言 技術實現 原理圖 連線圖 代碼實現 內容要點 PWM基本結構 開啟外設時鐘 配置GPIO端口 配置時基單元 初始化輸出比較單元 輸出比較通道重映射 輸入捕獲功能初始化 計算捕獲PWM的頻率 實驗結果 問題記錄 前言 IC(Input Capture)輸…

基于網啟PXE服務器的批量定制系統平臺(詳細版)

項目說明 該項目共分為2個子項目,由iventoy和定制安裝兩部分組成 該項目旨在復習鞏固系統服務部署使用、shell編程等知識,旨在讓學生增加知識面,提高項目實習經歷,充實簡歷 項目背景: 公司新購了一批服務器和臺式機…

旅游CMS選型:WordPress、Joomla與Drupal對比

內容概要 在旅游行業數字化轉型進程中,內容管理系統(CMS)的選擇直接影響網站運營效率與用戶體驗。WordPress、Joomla和Drupal作為全球主流的開源CMS平臺,其功能特性與行業適配性存在顯著差異。本文將從旅游企業核心需求出發&…

el-table下的復選框關聯勾選

效果展示&#xff1a; <el-table style"height: 500px;" :data"tableData" border empty-text"暫無數據" v-loading"loading":header-cell-style"{ text-align: center }" :cell-style"{ text-align: center }"…

解決Cubemx生產的 .ioc文件不能外部打開的方法

正常來說&#xff0c;cubemx生成的文件會有圖標 但是當圖標白色的時候&#xff0c;無法通過直接點擊這個文件進入cubemx 1.首先檢查java環境是不是裝的JAVA8&#xff0c;如果是的話進行第二步操作&#xff1b; 2.重新安裝一次cubemx&#xff0c;在安裝的時候選擇為我安裝&…

從零構建大語言模型全棧開發指南:第三部分:訓練與優化技術-3.1.3分布式數據加載與并行處理(PyTorch DataLoader優化)

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 3.1.3 分布式數據加載與并行處理(`PyTorch DataLoader`優化)1. 大規模數據加載的挑戰與瓶頸分析1.1 數據加載流程的時間分解2. PyTorch DataLoader的深度優化策略2.1 核心參數調優2.2 分布式數據分片策…

K8S學習之基礎五十七:部署代碼掃描工具sonarqube

部署代碼掃描工具sonarqube 拉取postgres、sonarqube鏡像&#xff0c;在harbor上創建postgres、sonarqube項目&#xff0c;將鏡像上傳至harbordocker pull postgres docker pull sonarqube docker tat postgres:latest 172.16.80.140/postgres/postgres:latest docker tat sona…

RAG技術的進化:RQ-RAG查詢優化/化繁為簡Adaptive-RAG智能分類/精準出擊

嘿,親愛的算法探險家們!歡迎來到RAG技術的“奇幻冒險”之旅!?? 今天,咱們要一起探索的是如何讓大語言模型(LLM)從“呆萌小學生”進化成“機智博士生”的奇妙旅程! 想象一下,你正在和一個超級聰明的AI聊天,但它有時候會像個小迷糊,回答得讓你哭笑不得。這時候,RAG…

11:00開始面試,11:08就出來了,問的問題有點變態。。。

從小廠出來&#xff0c;沒想到在另一家公司又寄了。 到這家公司開始上班&#xff0c;加班是每天必不可少的&#xff0c;看在錢給的比較多的份上&#xff0c;就不太計較了。沒想到8月一紙通知&#xff0c;所有人不準加班&#xff0c;加班費不僅沒有了&#xff0c;薪資還要降40%…

滲透測試中發現ak/sk泄露時的驗證工具

項目地址&#xff1a;https://github.com/libaibaia/cloudsec啟動命令&#xff1a;java -jar cloudSec-1.2.2-SNAPSHOT.jar 訪問&#xff1a;http://localhost:8000/#/admin/login 默認用戶名密碼&#xff1a;admin/admin123 注&#xff1a;8000 端口運行&#xff0c;如占用先…

【藍橋杯】重點沖刺

【最高優先級】必考核心算法(占分60%以上) 動態規劃(DP) ?????? 背包問題:01背包、完全背包(必須掌握空間優化的一維寫法) 線性DP:最長上升子序列(LIS)、最長公共子序列(LCS) 路徑問題:網格路徑計數(含障礙物)、最小路徑和 經典模型:打家劫舍、股票買賣問…

藍橋杯python編程每日刷題 day 20

題目&#xff1a; 給定一個長度為 N 的整數序列&#xff1a;A1, A2, , AN。現在你有一次機會&#xff0c;將其中連續的 K 個數修改成任意一個相同值。請你計算如何修改可以使修改后的數列的最長不下降子序列最長&#xff0c;請輸出這個最長的長度。 最長不下降子序列是指…

游戲引擎學習第185天

回顧并計劃今天的內容 我們完成了開始整理這些數據的工作&#xff0c;但我們還沒有機會真正去查看這些數據的具體內容&#xff0c;因為我們只是剛剛開始了數據整理的基本工作。我們收集了大量的信息&#xff0c;但到目前為止&#xff0c;仍然沒有足夠的可視化工具來幫助我們理…

協議學習——1 NCDSSB

上次面試NCDssb, 今天特意學習下&#xff0c;除了物理層的定義&#xff0c;其實再很多物理層的書上都有&#xff0c;主要是講下RRC曾怎么玩的。 配置在專用BWP上配置&#xff0c;切實BWP的專用部分

pom.xml與.yml,java配置參數傳遞

pom.xml與 .yml java配置參數傳遞 在Java項目中&#xff0c;通過 pom.xml 和 .yml 文件&#xff08;如 application.yml&#xff09;傳遞變量通常涉及 構建時&#xff08;Maven&#xff09;和 運行時&#xff08;Spring Boot&#xff09;兩個階段的配置。以下是具體的實現方法&…

【解決】:VSCode 中識別不到電腦中的已安裝的 Git

# 問題 自己電腦中明明已經安裝了 git &#xff0c;但在 vscode 中確識別不到。——————————&#xff08;問題一樣就看下去&#xff0c;不一樣早早潤。省流&#xff01;&#xff01;&#xff01;&#xff01;&#x1f680;&#xff09; # 【第一步】首先要確認你電腦中…

gogs私服搭建

一.介紹&#xff1a; gogs是一個用Go語言開發的自助Git服務&#xff0c;目標是簡單、快速搭建Git服務&#xff0c; 支持多種平臺&#xff0c;包括Linux、Windows等。它類似于GitHub&#xff0c;但更輕量&#xff0c;適合個人或小團隊使用&#xff0c; 在簡化git服務搭建流程的…

數位和相等

問題描述 如果一個正整數轉化成二進制與轉換成八進制后所有數位的數字之和相等&#xff0c;則稱為數位和相等的數。 前幾個數位和相等的正整數為 11, 88, 99, 6464&#xff0c;…… 請問第 2323 個數位和相等的正整數是多少&#xff1f; import java.util.Scanner; public …

Java-servlet(九)前端會話,會話管理與Cookie和HttpSession全解析

Java-servlet&#xff08;九&#xff09;前端會話&#xff0c;會話管理與Cookie和HttpSession全解析 前言一、什么是會話二、會話管理1. 隱藏的表單域2. 網址重寫3. 使用 Cookie3.1 Cookie 的工作流程3.2 Java 中的方法&#xff0c;Cookie 類 三、Cookie 的實現1. 創建 Cookie2…