K8S部署Prometheus高可用集群

Prometheus 是一个开源的监控和警报工具,特别适合云原生环境,Prometheus的架构图。

图片

Prometheus有非常多的优点:灵活的数据模型、简单易用、高效的查询语言、拉取模型、高可扩展性、开源社区支持,告警系统。这些优点使得 Prometheus 成为现代 IT 基础设施监控的热门选择。

如果要全面了解Prometheus,需要先部署一个测试环境。

在K8S上部署prometheus一般有两种常用的方式,一种是Operator安装,一种是helm安装。

监控K8S效果展示

我下面就介绍一下使用operator方式安装prometheus

在安装之前需要查看一下兼容性,根据自己的K8S版本选择对应的prometheus版本

下载地址:https://github.com/prometheus-operator/kube-prometheus

1 安装prometheus

1.1 下载软件包

wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.16.0.tar.gz

如果网络不好,可以在github上下载后再上传到服务器。

1.2 修改配置

上传软件包后解压

# 解压
tar -xvf kube-prometheus-0.16.0.tar.gz

# 重命名
mv kube-prometheus-0.16.0  kube-prometheus

执行基本配置安装

进入到解压后目录,可以看到有个manifests目录这里面是我们所需的yaml,并且先运行manifests目录下setup中的yaml文件

[root@k8s-master data]# cd kube-prometheus

# 进入manifests目录
[root@k8s-master kube-prometheus]# cd manifests/

# 执行setup文件夹,将会为prometheus创建名称空间和一些基础清单
[root@k8s-master manifests]# kubectl create -f setup/

修改暴露端口

主要修改prometheus,grafana和alertmanager的Service类型为NodePort,默认是ClusterIP

【温馨提示】端口范围:30000-32767,也可以不指定具体端口,会随机生成一个

(1)修改prometheus暴露端口为30090

vim prometheus-service.yaml

spec:
  type: NodePort
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 30090

(2)修改granfana暴露端口为30000

vim grafana-service.yaml

spec:
  type: NodePort
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 30000

(3)修改altermanager暴露端口为30093

vim alertmanager-service.yaml 

spec:
  type: NodePort
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 30093

1.3 安装prometheus

(1)执行安装

cd /data/kube-prometheus/manifests/
kubectl apply -f .

(2)删除不必要的网络策略

注意:新版添加了NetworkPolicy,可能会导致grafana、prometheus以及alertmanger等服务无法访问,所以需要删除掉:

kubectl delete networkpolicy --all -n monitoring

(3)查看安装情况

kubectl get pod -n monitoring

发现grafana,s

[root@k8s-master manifests]# kubectl get pod -n monitoring
NAME                                   READY   STATUS              RESTARTS   AGE
alertmanager-main-0                    2/2     Running             0          58m
alertmanager-main-1                    2/2     Running             0          58m
alertmanager-main-2                    0/2     Init:ErrImagePull   0          58m
blackbox-exporter-697ff675cd-2l67w     3/3     Running             0          61m
grafana-765466c5cd-x5fdq               1/1     Running             0          61m
kube-state-metrics-885669f79-hmqgt     3/3     Running             0          44m
node-exporter-rbkq7                    2/2     Running             0          61m
node-exporter-vllkd                    2/2     Running             0          61m
node-exporter-whqwj                    2/2     Running             0          61m
prometheus-adapter-74c49c584b-bvlx8    1/1     Running             0          56m
prometheus-adapter-74c49c584b-svfmp    1/1     Running             0          56m
prometheus-k8s-0                       0/2     Init:0/1            0          19m
prometheus-k8s-1                       2/2     Running             0          19m
prometheus-operator-5869ccc896-pln49   2/2     Running             0          61m

tate-metrics和adapter这三个pod镜像拉取失败,这种一般通过添加镜像加速器来解决。

1.4 解决镜像问题

(1)Adapter镜像问题

在镜像前面添加m.daocloud.io

[root@k8s-master manifests]# grep image prometheusAdapter-deployment.yaml
        image: m.daocloud.io/registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0

# 重新加载
[root@k8s-master manifests]# kubectl replace -f  prometheusAdapter-deployment.yaml

(2)grafana镜像问题

在镜像前面添加docker.m.daocloud.io

[root@k8s-master manifests]# grep image grafana-deployment.yaml
        image: docker.m.daocloud.io/grafana/grafana:12.1.0

# 重新加载
[root@k8s-master manifests]# kubectl replace -f grafana-deployment.yaml

(3)kubeStateMetrics镜像问题

在镜像前面添加m.daocloud.io

        image: m.daocloud.io/registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.16.0
        image: quay.io/brancz/kube-rbac-proxy:v0.19.1
        image: quay.io/brancz/kube-rbac-proxy:v0.19.1

# 重新加载
kubectl replace -f kubeStateMetrics-deployment.yaml

查看deployment,Service和pod的情况

kubectl get deploy,svc,po -n monitoring

2 使用promtheus和grafana

2.1 登录界面

(1)grafana登录界面

默认登录密码为admin/admin,首次登录需要修改密码!

192.168.9.225:30000

(2)prometheus登录界面

192.168.9.225:30090

(3)altermanager登录界面

192.168.9.225:30093

2.2 导入监控模版

登录grafana后,自动会连接到prometheus中

图片

导入监控模板,可以从grafana官网查找:

图片

2.3 常用的监控模板

Dashboard ID:15661

可以查看集群的整体资源状态

图片

Dashboard ID:9730

主要展示Deployment,Pod等重要资源对象的可用情况和使用率

图片

至此,Prometheus监控搭建好,后续再分享Alertmanager相关的告警知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值