第七篇:k8s集群使用helm3安装Prometheus Operator

news2024/9/22 11:41:48

安装Prometheus Operator

目前网上主要有两种安装方式,分别为:1. 使用kubectl基于manifest进行安装 2. 基于helm3进行安装。第一种方式比较繁琐,需要手动配置yaml文件,特别是需要配置pvc相关内容时,涉及到的yaml文件太多,故本文选用第二种基于helm安装的方式。
下面开始重点介绍安装流程,其实安装过程可以概括为以下几点:

  • 配置服务类型,主要是altermanager/prometheus/grafana这三个服务,如果想在浏览器访问,就需要进行服务类型的配置,默认情况使用的是ClusterIP,这样无法在浏览器中访问,这里我们使用LoadBalancer和ingress的方式配置服务,这样我们就可以使用域名和IP:Port进行访问。关于ingress与LoadBalaner的部署可以参考 第二篇:k8s之ingress-nginx-controller与metallb部署
  • 持久化存储的使用,默认安装没有配置持久化存储,默认情况是安装到部署的节点本地,这里会有数据丢失的风险,生产环境下需要配置自己的持久化存储,我这里使用的是ceph rbd作为storageclass,如果没有安装ceph csi, 可以参考我之前的文章 第三篇:k8s之容器存储接口(CSI)ceph-csi-rbd部署

配置altermanager/prometheus/grafana三个服务

服务类型配置

将这个服务的类型由ClusterIP改成LoadBalancer

分别在这三个服务对应的session下找到service项进行如下配置

prometheus:
  ...
  service:
    ...
    type: LoadBalancer

将grafana的服务开启并配置ingress,公司内部通过域名访问

修改grafana配置下的ingress选项,开启功能,并配置hosts

grafana:
  ...
  ingress:
    enable: true
    ...
    hosts: [monitor.prod.wuyacapital.com]

所有Pod绑定到master节点 (可选项,没有这方面的需求可以跳过)

为方便管理应用服务,将应用服务与每日作业计算任务进行区分,所有Pod均绑定到master类型的节点上,这里通过使用affinity进行配置对应的Pod.

所涉及的Pod主要包括:grafana, kube-state-metrics, prometheusOperator, prometheus, alertmanager。其中 grafana, kube-state-metrics, prometheusOperator由于没有Spec配置,所以直接放在其声明下即可,例如

grafana: # prometheusOperator/kube-state-metrics 类似
  ...
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - master01
            - master02
            - master03
  ...

对于 prometheus, alertmanager由于有Spec配置,所以放在各自的session下即可,例如:

prometheus: # alertmanager 对应 alertmanagerSpec, 配置类似,添加下面affinity的内容即可
  ...
  prometheusSpec:
    ...
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
              - master01
              - master02
              - master03
      ...

storage配置

Prometheus在使用过程中会涉及到指标数据的存储问题,下面是Prometheus的架构图

架构

这里我们可以看到我们需要存储指标数据以方便监控系统Grafana进行读取并展示。

我们使用的持久化存储为ceph rbd存储,对应的storageclass为csi-rbd-sc, 这是我之前创建的存储类,现在可以在这直接调用,涉及到存储的部分主要有以下2处:

(1) alertmanager—>alertmanagerSpec—>storage

(2) prometheus—>prometheusSpec—>storageSpec

内容如下:

volumeClaimTemplate:
  spec:
    storageClassName: csi-rbd-sc
    accessModes: ["ReadWriteOnce"]
    resources:
      requests:
      storage: 100Gi #根据实际情况设置

配置完成后,查看完整的配置文件

启动部署脚本

helm upgrade --install prometheus --namespace monitoring --create-namespace  prometheus-community/kube-prometheus-stack -f prometheus.yaml --debug

查看所有Pod的资源信息

master01 ➜  helm git:(master) ✗ kubectl get pod -n monitoring         
NAME                                                     READY   STATUS    RESTARTS        AGE
alertmanager-prometheus-kube-prometheus-alertmanager-0   2/2     Running   1 (3h47m ago)   3h49m
prometheus-grafana-bc859db95-s2pzh                       3/3     Running   0               172m
prometheus-kube-prometheus-operator-8995df666-d7wl5      1/1     Running   0               3h49m
prometheus-kube-state-metrics-6855494647-njsc5           1/1     Running   0               166m
prometheus-prometheus-kube-prometheus-prometheus-0       2/2     Running   0               3h49m
prometheus-prometheus-node-exporter-56m49                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-5b5cx                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-khzzn                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-nfj5m                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-pcjgz                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-r6r82                1/1     Running   0               3h49m
prometheus-prometheus-node-exporter-t8dsh                1/1     Running   0               3h49m

说明部署成功。

可以查看service信息,并打开浏览器查看prometheus服务http://192.168.1.192:9090, 查看所有的target是否监控成功

master01 ➜  helm git:(master) ✗ kubectl get svc -n monitoring
NAME                                      TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
alertmanager-operated                     ClusterIP      None             <none>        9093/TCP,9094/TCP,9094/UDP   3h50m
prometheus-grafana                        ClusterIP      10.101.246.163   <none>        80/TCP                       3h50m
prometheus-kube-prometheus-alertmanager   LoadBalancer   10.102.35.159    192.168.1.194   9093:30033/TCP               3h50m
prometheus-kube-prometheus-operator       LoadBalancer   10.101.1.10      192.168.1.193   443:30001/TCP                3h50m
prometheus-kube-prometheus-prometheus     LoadBalancer   10.106.88.156    192.168.1.192   9090:31242/TCP               3h50m
prometheus-kube-state-metrics             ClusterIP      10.109.156.237   <none>        8080/TCP                     3h50m
prometheus-operated                       ClusterIP      None             <none>        9090/TCP                     3h50m
prometheus-prometheus-node-exporter       ClusterIP      10.105.10.206    <none>        9100/TCP                     3h50m

这里可以看到所有服务均可监控。

targets无法监控的问题

注意:这里经常会遇到这样的问题,kube-controller-manager与kube-scheduler的target是Down的状态,原因是因为这两个服务无法访问,为什么无法访问?原因是因为在k8s集群创建时,这两个服务的的bind-address绑定的是127.0.0.1,所以无法通过其他服务器访问。

解决方案:分别在这三台服务器上打开 /etc/kubernetes/manifests/kube-controller-manager.yaml/etc/kubernetes/manifests/kube-scheduler.yaml,然后找到bind-address这个字段,将后面的127.0.0.1替换成0.0.0.0即可。这里无需重启对应的服务,k8s会自动读取最新的配置。改完之后过一会,就可以看到这2哥监控正常了。

参考文档:解决controller与scheduler无法访问的问题

卸载流程

helm uninstall prometheus -n monitoring

kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
kubectl delete crd alertmanagers.monitoring.coreos.com
kubectl delete crd podmonitors.monitoring.coreos.com
kubectl delete crd probes.monitoring.coreos.com
kubectl delete crd prometheuses.monitoring.coreos.com
kubectl delete crd prometheusrules.monitoring.coreos.com
kubectl delete crd servicemonitors.monitoring.coreos.com
kubectl delete crd thanosrulers.monitoring.coreos.com

查看pvc是否需要手动删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/815132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS--frame和bounds

坐标系 首先&#xff0c;我们来看一下iOS特有的坐标系&#xff0c;在iOS坐标系中以左上角为坐标原点&#xff0c;往右为X正方向&#xff0c;往下是Y正方向如下图&#xff1a; bounds和frame都是属于CGRect类型的结构体&#xff0c;系统的定义如下&#xff0c;包含一个CGPoint…

卡片布局 可左右上删除,可向下拉出上一个 支持复用

效果 支持左右上 三个方向删除内容&#xff0c;支持下拉显示上一个。支持adapter 支持复用。 使用 myLayout.setAdapter(new StackAdapter() {final int[] bgColorsnew int[]{Color.RED,Color.GREEN,Color.BLUE};Overridepublic View getView(int position, LayoutInflater …

Docker Hub和镜像仓库

目录 前言 创建存储库 推送镜像&#xff08;可选&#xff09; 搜索镜像 拉取镜像 前言 Docker Hub 是 Docker 公司提供的官方公共 Docker 镜像注册表&#xff0c;允许用户存储、分享和获取 Docker 镜像。在 Docker Hub 上&#xff0c;你可以找到许多官方和社区维护的 D…

三、前端高德地图、测量两个点之前的距离

点击测距工具可以开启测量&#xff0c;再次点击关闭测量&#xff0c;清除地图上的点、连线、文字 再次点击测量工具的时候清除。 首先 上面的功能条河下面的地图我搞成了两个组件&#xff0c;他们作为兄弟组件存在&#xff0c;所以简单用js写了个事件监听触发的对象&#xff…

JavaScript三元运算符

条件运算符&#xff08;三元运算符&#xff09;的基本结构 条件 &#xff1f; true:false例如&#xff1a; const age 20; age > 18 ? console.log("你已经成年了"):console.log("你还是一个孩子&#xff01;");我们这里把条件运算符和IF来做个区分…

高等数学中如何求间断点

高等数学中求间断点是一项重要的技巧&#xff0c;特别适用于分析函数的性质和图像的特征。在本文中&#xff0c;我们将深入探讨如何在给定函数中找到间断点&#xff0c;并解释其数学原理和实际应用。 什么是间断点&#xff1f; 在高等数学中&#xff0c;间断点是指函数在某个点…

Trello的功能、优缺点、国内使用体验,及4大类似的项目工具

1、Trello是什么软件&#xff0c;有哪些功能&#xff1b; 2、Trello的价格及国内用户的使用体验&#xff1b; 3、盘点国内同类型的项目管理软件&#xff1b; 4、对比国内工具Worktile、Teambition等工具如何。 一、Trello是什么软件&#xff0c;有哪些功能&#xff1f; 【官网…

Pytorch 最全入门介绍,Pytorch入门看这一篇就够了

本文通过详细且实践性的方式介绍了 PyTorch 的使用&#xff0c;包括环境安装、基础知识、张量操作、自动求导机制、神经网络创建、数据处理、模型训练、测试以及模型的保存和加载。 1. Pytorch简介 在这一部分&#xff0c;我们将会对Pytorch做一个简单的介绍&#xff0c;包括它…

uniapp打包本地资源使用原生安卓打包

Android安装打包 1. 安装sdk 2.安装解压openjdk到D盘 3.安装编辑器 在D盘新建文件 Androidstudio 将编辑器安装到这个Androidstudio 文件内 配置sdk路径 打包步骤&#xff1a; 1. 打开项目&#xff0c;如图&#xff1a; 2. uniapp的本地打包资源可以在 这里替换apps包下 再修…

java+springboot+mysql疫情物资管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的疫情物资管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、员工角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理&#xff1b;部门管理&#xff1b;职位管理&#xff1b;员工管理&…

港联证券:股市降印花税是什么意思?股市降印花税利好还是利空?

在股票买卖过程中&#xff0c;需求交纳必定的印花税、佣钱费用和过户费用&#xff0c;那么&#xff0c;股市降印花税是什么意思&#xff1f;股市降印花税利好仍是利空&#xff1f;下面港联证券为我们预备了相关内容&#xff0c;以供参阅。 股票降印花税是指下调投资者买卖股票的…

计算机毕设 深度学习实现行人重识别 - python opencv yolo Reid

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉…

Vue3使用vxetable进行表格的编辑、删除与新增

效果图如下: vxetable4传送门 一、引入插件 package.json中加入"vxe-table": "4.0.23",终端中执行npm i导入import {VXETable, VxeTableInstance

YouIcons-矢量图标、LOGO和插图素材下载 48000000+

YouIcons是一个免费下载矢量图标、LOGO和插图素材下的网站&#xff0c;图标量高达千万级别&#xff0c;目前共收录48109736个&#xff0c;是世界领先的创意徽标logo社区&#xff0c;供创意人员下载、分享、成长和使用&#xff0c;是设计师获取灵感、发现并与全球设计师联系的社…

大模型中的注意力机制——MHA、GQA、MQA

注意力机制是Transformer模型的核心组件。考虑到注意力机制的计算效率问题&#xff0c;研究人员也进行了许多研究。代表的就是以下三种模式&#xff1a; MHA&#xff08;Multi-head Attention&#xff09;是标准的多头注意力机制&#xff0c;包含h个Query、Key 和 Value 矩阵。…

DM数据库Linux安装

创建用户账号密码 groupadd dinstalluseradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdbapasswd dmdba安装前必须创建 dmdba 用户&#xff0c;禁止使用 root 用户安装数据库。 dmdba ncayu123456修改文件打开最大数 vi /etc/security/limits.conf在最后添加四条语句dm…

Siamese+Resnet进行相似度计算

SiameseResnet进行相似度计算 基本介绍效果肺部resnet34肺部Resnet50人脸自定义网络 完整代码 基本介绍 使用SiameseNet进行肺部相似度计算&#xff0c;同样可以用于人脸识别等场景。 特征提取网络结果为Resnet&#xff0c;可以为Resnet34、Resnet50等。 数据组织结构如下图所…

基于STM32设计的数码相册

一、项目介绍 项目是基于STM32设计的数码相册&#xff0c;能够通过LCD显示屏解码显示主流的图片&#xff0c;支持bmp、jpg、gif等格式。用户可以通过按键或者触摸屏来切换图片&#xff0c;同时还可以旋转显示&#xff0c;并能够自适应居中显示&#xff0c;小尺寸图片居中显示&…

复习之kickstart无人职守安装脚本

一、kickstart简介 kickstart是红帽发行版中的一种安装方式&#xff0c;它通过以配置文件的方式来记录linux系统安装的各项参数和想要安装的软件。只要配置正确&#xff0c;整个安装过程中无需人工交互参与&#xff0c;达到无人值守安装的目的。 二、kickstar文件的生成 进入/…

销售易和管易云接口打通对接实战

销售易和管易云接口打通对接实战 来源系统:销售易 销售易CRM支持企业从营销、销售到服务的全流程自动化业务场景&#xff0c;创新性地利用AI、大数据、物联网等新型互联网技术打造双中台型CRM&#xff1b;既能帮助B2B企业连接外部经销商、服务商、产品以及最终用户&#xff0c;…