K8S學習之基礎三十五:k8s之Prometheus部署模式

Prometheus 有多種部署模式,適用于不同的場景和需求。以下是幾種常見的部署模式:

1. 單節點部署

這是最簡單的部署模式,適用于小型環境或測試環境。

特點:
  • 單個 Prometheus 實例負責所有的數據采集、存儲和查詢。
  • 配置簡單,易于維護。
  • 不具備高可用性和擴展性。
適用場景:
  • 小型項目或測試環境。
  • 對高可用性要求不高的場景。
部署步驟:
  1. 下載并解壓 Prometheus。
  2. 配置 prometheus.yml
  3. 啟動 Prometheus。

bash

復制

./prometheus --config.file=prometheus.yml

2. 高可用部署(HA)

為了提高系統的可用性和容錯能力,可以使用高可用部署模式。

特點:
  • 多個 Prometheus 實例同時運行,采集相同的數據。
  • 通過負載均衡器分發查詢請求。
  • 具備高可用性,單個實例故障不會影響整體服務。
適用場景:
  • 對高可用性要求較高的生產環境。
  • 需要確保監控系統持續可用的場景。
部署步驟:
  1. 部署多個 Prometheus 實例,配置相同的 prometheus.yml
  2. 使用負載均衡器(如 Nginx、HAProxy)分發查詢請求。
  3. 配置 Alertmanager 處理告警。

yaml

復制

# prometheus.yml 示例
global:scrape_interval: 15sscrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']

3. 聯邦部署(Federation)

聯邦部署模式適用于大規模分布式系統,通過分層采集和匯總數據。

特點:
  • 多個 Prometheus 實例分別采集不同區域或服務的數據。
  • 一個中心 Prometheus 實例從其他實例中采集匯總數據。
  • 適用于大規模、分布式環境。
適用場景:
  • 大規模分布式系統。
  • 需要分區域或分服務采集數據的場景。
部署步驟:
  1. 部署多個 Prometheus 實例,分別采集不同區域或服務的數據。
  2. 配置中心 Prometheus 實例,從其他實例中采集匯總數據。

yaml

復制

# 中心 Prometheus 配置示例
scrape_configs:- job_name: 'federate'scrape_interval: 15shonor_labels: truemetrics_path: '/federate'params:'match[]':- '{job="prometheus"}'- '{__name__=~"job:.*"}'static_configs:- targets:- 'source-prometheus-1:9090'- 'source-prometheus-2:9090'

4. 分片部署(Sharding)

分片部署模式通過將數據采集任務分散到多個 Prometheus 實例,適用于超大規模環境。

特點:
  • 多個 Prometheus 實例分別負責不同的數據采集任務。
  • 通過分片策略(如哈希分片)分配采集任務。
  • 適用于超大規模、高并發的環境。
適用場景:
  • 超大規模系統,單個 Prometheus 實例無法處理所有數據。
  • 需要高并發采集和存儲的場景。
部署步驟:
  1. 部署多個 Prometheus 實例,配置不同的 prometheus.yml
  2. 使用分片策略(如哈希分片)分配采集任務。
  3. 配置中心 Prometheus 實例或查詢層(如 Thanos)匯總數據。

yaml

復制

# 分片 Prometheus 配置示例
global:scrape_interval: 15sscrape_configs:- job_name: 'sharded_job'static_configs:- targets: ['target1:9100', 'target2:9100']relabel_configs:- source_labels: [__address__]modulus: 2target_label: __tmp_hashaction: hashmod- source_labels: [__tmp_hash]regex: '0'action: keep

5. 使用 Thanos 或 Cortex 的分布式部署

Thanos 和 Cortex 是 Prometheus 的擴展項目,提供了分布式存儲和查詢能力。

特點:
  • 提供全局視圖和長期存儲能力。
  • 支持高可用性和水平擴展。
  • 適用于大規模、長期存儲和查詢的場景。
適用場景:
  • 需要長期存儲監控數據的場景。
  • 需要全局視圖和高可用性的場景。
部署步驟:
  1. 部署多個 Prometheus 實例,配置相同的 prometheus.yml
  2. 部署 Thanos 或 Cortex 組件(如 Sidecar、Store Gateway、Querier 等)。
  3. 配置 Thanos 或 Cortex 的全局視圖和長期存儲。

yaml

復制

# Thanos Sidecar 配置示例
apiVersion: apps/v1
kind: Deployment
metadata:name: prometheus
spec:replicas: 1template:spec:containers:- name: prometheusimage: prom/prometheus:latestargs:- "--config.file=/etc/prometheus/prometheus.yml"- "--storage.tsdb.path=/prometheus"- "--web.enable-lifecycle"- name: thanos-sidecarimage: thanosio/thanos:latestargs:- "sidecar"- "--prometheus.url=http://localhost:9090"- "--tsdb.path=/prometheus"

6. 使用 Operator 部署

Prometheus Operator 是 Kubernetes 上的一個擴展,簡化了 Prometheus 的部署和管理。

特點:
  • 自動化部署和管理 Prometheus 實例。
  • 提供自定義資源定義(CRD)來配置 Prometheus。
  • 適用于 Kubernetes 環境。
適用場景:
  • Kubernetes 環境。
  • 需要自動化部署和管理的場景。
部署步驟:
  1. 安裝 Prometheus Operator。
  2. 使用自定義資源定義(CRD)配置 Prometheus 實例。

bash

復制

# 安裝 Prometheus Operator
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml# 創建 Prometheus 實例
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:name: prometheus
spec:serviceAccountName: prometheusserviceMonitorSelector:matchLabels:team: frontendresources:requests:memory: 400Mi

總結

不同的部署模式適用于不同的場景和需求。單節點部署適合小型環境,高可用部署適合生產環境,聯邦部署和分片部署適合大規模分布式系統,而使用 Thanos 或 Cortex 的分布式部署適合需要長期存儲和全局視圖的場景。在 Kubernetes 環境中,使用 Prometheus Operator 可以簡化部署和管理。

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

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

相關文章

【第14節】windows sdk編程:進程與線程介紹

目錄 一、進程與線程概述 1.1 進程查看 1.2 何為進程 1.3 進程的創建 1.4 進程創建實例 1.5 線程查看 1.6 何為線程 1.7 線程的創建 1.8 線程函數 1.9 線程實例 二、內核對象 2.1 何為內核對象 2.2 內核對象的公共特點 2.3 內核對象句柄 2.4 內核對象的跨進程訪…

Python簡單爬蟲實踐案例

學習目標 能夠知道Web開發流程 能夠掌握FastAPI實現訪問多個指定網頁 知道通過requests模塊爬取圖片 知道通過requests模塊爬取GDP數據 能夠用pyecharts實現餅圖 能夠知道logging日志的使用 一、基于FastAPI之Web站點開發 1、基于FastAPI搭建Web服務器 # 導入FastAPI模…

uniapp工程中解析markdown文件

在uniapp中如何導入markdown文件,同時在頁面中解析成html,請參考以下配置: 1. 安裝以下3個依賴包 npm install marked highlight.js vite-plugin-markdown 2. 創建vite.config.js配置文件 // vite.config.js import { defineConfig } fro…

sass介紹

1、Sass簡介 Sass 是一種 CSS 的預編譯語言。它提供了 變量(variables)、嵌套(nested rules)、 混合(mixins)、 函數(functions)等功能,并且完全兼容 CSS 語法。Sass 能…

[JavaScript]如何利用作用域塊避免閉包內存泄漏?

出自《你不知道的JavaScript》上卷 以下是本書給出的反例: function process (data) {...} var bigdata{...} process(bigdata); var btn document.getElementById(x); btn.addEventListener(click, function click{...});click會被回調在其他位置, 在addEventListener函數內…

leetcode hot100(五)

11. 盛最多水的容器 給定一個長度為 n 的整數數組 height 。有 n 條垂線,第 i 條線的兩個端點是 (i, 0) 和 (i, height[i]) 。 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 返回容器可以儲存的最大水量。 說明:你…

Unity 云渲染本地部署方案

Unity Render Streaming 云渲染環境搭建 0.安裝 Unity Render Streaming 實現原理: 服務器與客戶端實現功能包括: 詳細內容見官方文檔: 官方文檔: https://docs.unity3d.com/Packages/com.unity.renderstreaming3.1/manual/tutorial.html Unity 流送云渲染介紹: …

洛谷 P3986 斐波那契數列

P3986 斐波那契數列 題目描述 定義一個數列: f ( 0 ) a , f ( 1 ) b , f ( n ) f ( n ? 1 ) f ( n ? 2 ) f(0) a, f(1) b, f(n) f(n - 1) f(n - 2) f(0)a,f(1)b,f(n)f(n?1)f(n?2) 其中 a, b 均為正整數,n ≥ 2。 問有多少種 (a, b)&…

【java面型對象進階】------繼承實例

繼承結構下的標準Javabean 代碼如下: package demo10;//定義員工父類 public class Employee {private String id;private String name;private double salary;//構造方法public Employee(){}public Employee(String id,String name,double salary){this.idid;thi…

Vitis 2024.1 無法正常編譯custom ip的bug(因為Makefile里的wildcard)

現象:如果在vivado中,添加了自己的custom IP,比如AXI4 IP,那么在Vitis(2024.1)編譯導出的原本的.xsa的時候,會構建build失敗。報錯代碼是: "Compiling blank_test_ip..."…

【圖論】并查集的學習和使用

目錄 并查集是什么? 舉個例子 組成 父親數組: find函數: union函數: 代碼實現: fa[] 初始化code: find code: 遞歸實現: 非遞歸實現: union code : 畫圖模擬: 路徑壓縮&#xff1a…

Java使用FFmpegFrameGrabber進行視頻拆幀,結合Thumbnails壓縮圖片保存到文件夾

引入依賴 <dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.17</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ja…

mysql與redis的日志策略

MySQL 和 Redis 在日志記錄方面采用了不同的策略&#xff0c;分別對應寫前日志&#xff08;Write-Ahead Logging, WAL&#xff09;和寫后日志&#xff08;Write-After Logging&#xff09;。以下是它們的詳細說明&#xff1a; 1. MySQL&#xff1a;寫前日志&#xff08;Write-A…

nacos安裝,服務注冊,服務發現,遠程調用3個方法

安裝 點版本下載頁面 服務注冊 每個微服務都配置nacos的地址&#xff0c;都要知道 服務發現 2個是知道了解 遠程調用基本實現 遠程調用方法2&#xff0c;負載均衡API測試 遠程調用方法3&#xff0c;注解 負載均衡的遠程調用&#xff0c; 總結 面試題

Ubuntu Qt: no service found for - “org.qt-project.qt.mediaplayer“

1、前言 在一次項目過程中&#xff0c;因項目需求&#xff0c;需要將windows開發的Qt項目遷移到ubuntu系統中&#xff0c;且在某個功能項中需要播放音頻&#xff0c;在windows系統中能夠正常運行&#xff0c;但在ubuntu系統中卻顯示defaultServiceProvider::requestService(): …

Blender制作次表面材質

效果: 主要用沃羅諾伊紋理做出云絮感 然后EV開啟次表面設置

用 pytorch 從零開始創建大語言模型(四):從零開始實現一個用于生成文本的GPT模型

從零開始創建大語言模型&#xff08;Python/pytorch &#xff09;&#xff08;四&#xff09;&#xff1a;從零開始實現一個用于生成文本的GPT模型 4 從零開始實現一個用于生成文本的GPT模型4.1 編寫 L L M LLM LLM架構4.2 使用層歸一化對激活值進行標準化4.3 使用GELU激活函數…

vmware tools灰化

Windows7 32位的某些版本&#xff0c;已經不被vmware支持。下面是解決方法&#xff1a; 安裝kb4474419補丁包&#xff1a;https://www.catalog.update.microsoft.com/Search.aspx?qKB4474419網絡共享。必須要虛擬機和主機可通信。此方法不錯&#xff0c;但是操作起來太麻煩。…

ubuntu高并發內核參數調優 - (壓測客戶端調優)

業務上要求集群提供10w并發&#xff0c;10w并發聽上去不是很難&#xff0c;但10w并發持續1小時呢 在業務上線之前還需要我們自己對業務進行壓測&#xff0c;俗稱benchmark。 壓測的服務器也是需要進行性能調優的&#xff0c;以下列出調優前后的參數對比&#xff0c;更直觀的分析…

html5制作2048游戲開發心得與技術分享

2048游戲開發心得與技術分享 這里寫目錄標題 2048游戲開發心得與技術分享項目概述技術架構1. 核心技術棧2. 項目結構 核心功能實現1. 數據結構設計2. 移動邏輯實現3. 觸摸支持 性能優化1. DOM操作優化2. 事件處理優化 開發心得1. 代碼組織2. 調試技巧3. 用戶體驗優化 項目亮點技…