加载中...

K8s Operater部署prometheus


一、简介

1.1 Prometheus Operator工作原理

从概念上来讲Operator就是针对管理特定应用程序的,在Kubernetes基本的Resource和Controller的概念上,以扩展Kubernetes api的形式。帮助用户创建,配置和管理复杂的有状态应用程序。从而实现特定应用程序的常见操作以及运维自动化。

在Kubernetes中我们使用Deployment、DamenSet,StatefulSet来管理应用Workload,使用Service,Ingress来管理应用的访问方式,使用ConfigMap和Secret来管理应用配置。我们在集群中对这些资源的创建,更新,删除的动作都会被转换为事件(Event),Kubernetes的Controller Manager负责监听这些事件并触发相应的任务来满足用户的期望。这种方式我们成为声明式,用户只需要关心应用程序的最终状态,其它的都通过Kubernetes来帮助我们完成,通过这种方式可以大大简化应用的配置管理复杂度。

而除了这些原生的Resource资源以外,Kubernetes还允许用户添加自己的自定义资源(Custom Resource)。并且通过实现自定义Controller来实现对Kubernetes的扩展。

如下所示,是Prometheus Operator的架构示意图:

Prometheus的本质就是一组用户自定义的CRD资源以及Controller的实现,Prometheus Operator负责监听这些自定义资源的变化,并且根据这些资源的定义自动化地完成如Prometheus Server自身以及配置的自动化管理工作。

1.2 Prometheus Operator作用

要了解Prometheus Operator能做什么,其实就是要了解Prometheus Operator为我们提供了哪些自定义的Kubernetes资源,列出了Prometheus Operator目前提供的️4类资源:

  • Prometheus:声明式创建和管理Prometheus Server实例;
  • ServiceMonitor:负责声明式的管理监控配置;
  • PrometheusRule:负责声明式的管理告警配置;
  • Alertmanager:声明式的创建和管理Alertmanager实例。

简言之,Prometheus Operator能够帮助用户自动化的创建以及管理Prometheus Server以及其相应的配置。

二、实战配置

2.1部署Prometheus Operator

#github项目地址,直接使用git拉下来即可
https://github.com/prometheus-operator/kube-prometheus
[root@k8smaster ~]#git clone https://github.com/prometheus-operator/kube-prometheus
#主要使用项目目录为`manifests`
[root@k8smaster manifests]# pwd
/root/kube-prometheus/manifests
#开始创建所有服务
[root@k8smaster manifests]kubectl create -f ./setup
[root@k8smaster manifests]kubectl create -f .
#部署完成确认
[root@k8smaster manifests]# kubectl -n monitoring get all
NAME                                       READY   STATUS    RESTARTS   AGE
pod/alertmanager-main-0                    2/2     Running   0          13d
pod/alertmanager-main-1                    2/2     Running   0          13d
pod/alertmanager-main-2                    2/2     Running   0          13d
pod/blackbox-exporter-6798fb5bb4-64knd     3/3     Running   0          13d
pod/grafana-77f997786c-4gbrh               1/1     Running   0          3h58m
pod/kube-state-metrics-bdb774b4d-mkrvk     3/3     Running   0          13d
pod/node-exporter-hn54g                    2/2     Running   0          13d
pod/node-exporter-jjxmr                    2/2     Running   0          13d
pod/node-exporter-qnppx                    2/2     Running   0          13d
pod/prometheus-adapter-5b8db7955f-6s97n    1/1     Running   0          13d
pod/prometheus-adapter-5b8db7955f-bp9bb    1/1     Running   0          13d
pod/prometheus-k8s-0                       2/2     Running   0          5h20m
pod/prometheus-k8s-1                       2/2     Running   0          5h20m
pod/prometheus-operator-5685494db7-tphkp   2/2     Running   0          13d
.......

2.2 web界面查看

#通过查看server端口访问web界面
[root@k8smaster manifests]# kubectl get svc -n monitoring
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)
prometheus-k8s          NodePort    10.107.194.41    <none>        9090:32523/TC

所有监控都正常即可打开grafana查看服务自带的监控面板


文章作者: huhuhahei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 huhuhahei !
评论
  目录