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.mzph.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. 用户体验优化 项目亮点技…