kubernetes部署prometheus-operator

本文介绍了如何在已有Kubernetes集群上部署Prometheus-Operator,包括Operator的作用、核心组件及其工作原理。通过替换镜像源、分类yaml文件、修改服务类型和设置持久化存储,详细阐述了部署过程。最后,提供了访问Prometheus和Grafana的URL,以及导入Grafana的官方模板。

kubernetes v1.22.9部署prometheus-operator

一. prometheus-operator模块介绍

在这里插入图片描述

1、Operator是最核心的部分,作为一个控制器,他会去创建Prometheus、PodMonitor、ServiceMonitor、AlertManager以及PrometheusRule这5个CRD资源对象,然后会一直监控并维持这5个资源对象的状态。

2、其中创建的Prometheus这种资源对象就是作为Prometheus Server存在,而PodMonitor和ServiceMonitor就是exporter的各种抽象,是用来提供专门提供metrics数据接口的工具,Prometheus就是通过PodMonitor和ServiceMonitor提供的metrics数据接口去pull数据的,当然alertmanager这种资源对象就是对应的AlertManager的抽象,而PrometheusRule是用来被Prometheus实例使用的报警规则文件。

3、这样我们要在集群中监控什么数据,就变成了直接去操作 Kubernetes 集群的资源对象了,是不是方便很多了。上图中的 Service 和 ServiceMonitor 都是 Kubernetes 的资源,一个 ServiceMonitor 可以通过 labelSelector 的方式去匹配一类 Service,Prometheus 也可以通过 labelSelector 去匹配多个ServiceMonitor。

二. 部署prometheus-operator

  1. 已有的kubernetes集群
    在这里插入图片描述
  2. 项目官网下载地址
    选择需要的版本下载(本次使用0.10.0)
https://github.com/prometheus-operator/kube-prometheus.git
  1. 替换镜像源
sed -i s#k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0#bitnami/kube-state-metrics:2.3.0#g  /opt/kubernetes/kube-prometheus-0.10.0/manifests/kube-prometheuskubeStateMetrics-deployment.yaml
sed -i s#k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.1#willdockerhub/prometheus-adapter:v0.9.1#g  /opt/kubernetes/kube-prometheus-0.10.0/manifests/prometheusAdapter-deployment.yaml
  1. 为了后续方便管理对yaml文件进行分类
cd /opt/kubernetes/kube-prometheus-0.10.0/manifests
mkdir Adapter alertmanager blackboxExporter grafana kubeStateMetrics nodeExporter Operator prometheus serviceMonitor
mv prometheusAdapter-* Adapter/
mv alertmanager-* alertmanager/
mv blackboxExporter-* blackboxExporter/
mv grafana-* grafana/
mv kubeStateMetrics-* kubeStateMetrics/
mv nodeExporter-* nodeExporter/
mv prometheusOperator-* Operator/
mv prometheus-* prometheus/
mv *-serviceMonitor* serviceMonitor/
  1. 更改prometheus,alertmanager,grafana的service类型为nodeport
    修改
    prometheus/prometheus-service.yaml
    grafana/grafana-service.yaml
    alertmanager/alertmanager-service.yaml
    在这里插入图片描述
    其他两个同理

  2. prometheus和grafana数据持久化
    增加nfs持久化存储(nfs-storageclass动态供给)
    cat prometheus/prometheus-prometheus.yaml
    在这里插入图片描述
    grafana持久化存储
    创建grafana的pvc

cat grafana-pvc.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: grafana-pvc
  namespace: monitoring
  annotations:
    volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 4G

kubectl apply -f grafana-pvc.yaml

cat grafana/grafana-deployment.yaml
在这里插入图片描述
7. 部署prometheus-operator

cd /opt/kubernetes/kube-prometheus-0.10.0/manifests
kubectl create -f setup/
kubectl apply -f Adapter/
kubectl apply -f alertmanager/
kubectl apply -f blackboxExporter/
kubectl apply -f grafana/
kubectl apply -f kubeStateMetrics/
kubectl apply -f nodeExporter/
kubectl apply -f Operator/
kubectl apply -f prometheus/
kubectl apply -f serviceMonitor/

这两个为prometheus rule规则,
kubectl apply -f kubePrometheus-prometheusRule.yaml
kubectl apply -f kubernetesControlPlane-prometheusRule.yaml

查看部署情况

在这里插入图片描述

三. 页面访问URL

prometheus
http://宿主机ip:nodePort端口
在这里插入图片描述
grafana
prometheus-operator自带了很多grafana模板可以使用
在这里插入图片描述
grafana导入官方的模板13105
在这里插入图片描述
完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值