prometheus使用 (番外篇) prometheus-operator部署

本文介绍了如何使用YAML文件和Helm工具在Kubernetes集群中部署Prometheus监控解决方案。首先,通过YAML文件逐步部署kube-prometheus,包括设置服务端口、替换镜像等步骤。然后,尝试使用Helm安装kube-prometheus-stack,但遇到镜像拉取问题,最终通过手动下载和修改镜像解决。文章提供了详细的配置文件和访问端口,适合需要自定义监控指标的读者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们上一章其实监控还缺少很多东西,我们可以通过部署已经写好整合包

作为案例来编写适合自己环境的监控指标收集,我找到了两个版本在这里演示下

方法1 通过yaml文件进行部署

#项目地址
https://github.com/coreos/kube-prometheus

先将之前我们部署的停掉

kubectl delete -f .

1、拉取软件包

wget https://gitee.com/hackerwjz/kube-prometheus/repository/archive/main.zip

#如果要指定版本,如下
#wget https://gitee.com/hackerwjz/kube-prometheus/repository/archive/release-0.9.zip

根据自己集群的版本去拉取,我这里是1.22.2所以拉取main包

unzip main.zip
cd kube-prometheus-main/manifests/setup/
kubectl apply -f .
cd ..


2、暴露端口访问

#添加以下配置暴露服务端口
vi prometheus-service.yaml
    type: NodePort     #添加
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 30003     #添加



vi grafana-service.yaml
spec:
  type: NodePort       #添加
  ports: 
  - name: http
    port: 3000
    targetPort: http
    nodePort: 30004   #添加



vi alertmanager-service.yaml
  spec:
  type: NodePort   #添加
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 30005   #i提那就啊

4、添加scheduler 和controller-manager的svc

vi prometheus-kubeSchedulerService.yaml

apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: kube-scheduler
  labels:
    k8s-app: kube-scheduler
spec:
  selector:
    component: kube-scheduler  
  ports:
  - name: http-metrics
    port: 10251
    targetPort: 10251
    protocol: TCP

vi prometheus-kubeControllerManagerService.yaml

apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: kube-controller-manager
  labels:
    k8s-app: kube-controller-manager
spec:
  selector:
    component: kube-controller-manager
  ports:
  - name: http-metrics
    port: 10252
    targetPort: 10252
    protocol: TCP

5、替换镜像

有两个镜像不方便拉取,这里直接修改一下

 vi prometheus-adapter-deployment.yaml

  39         image: directxman12/k8s-prometheus-adapter-amd64:v0.7.0

 vi kube-state-metrics-deployment.yaml

     34         image: bitnami/kube-state-metrics:2.3.0

6、启动服务

cd  /apps/install_yaml/kube-prometheus/kube-prometheus-main/manifests
kubectl apply -f .

7、查看

kubectl -n monitoring get pod

 访问3个端口30003、30004、30005

 

报警规则啥的都有现成的可以参考

 还有一些现成的模板和告警

 

方法2   通过helm工具部署

项目地址
https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack

停止上面部署的监控

kubectl delete -f .
kubectl delete -f ./setup

安装

#拉取源
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update



#安装  (反正我这里是装不上,卡住了,包都拉不下来
#helm install test prometheus-community/kube-prometheus-stack

 手动拉取chars包

#梯子拉了个包
#https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-32.2.1/kube-prometheus-stack-32.2.1.tgz


#解压缩部署
tar -zxvf kube-prometheus-stack-32.2.1.tgz

#手动换个镜像
sed -i 's#k8s.gcr.io/ingress-nginx#registry.aliyuncs.com/google_containers#g' kube-prometheus-stack/values.yaml


#部署
helm install  prometheus-stack ./kube-prometheus-stack

这里会卡住,因为镜像拉不下来他会一直等到完成了再显示

quay.io/prometheus/prometheus:v2.33.1
quay.io/prometheus-operator/prometheus-config-reloader:v0.54.0
quay.io/kiwigrid/k8s-sidecar:1.15.1
grafana/grafana:8.3.5
quay.io/prometheus-operator/prometheus-operator:v0.54.0
k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0
quay.io/prometheus/node-exporter:v1.3.1

quay.io镜像加速

#最新的几个源都不太好使了  最后是用了下面的方法成功的
https://tool.chinaz.com/speedtest/quay.io  #这里查一个快点的ip


#添加解析配置
vi /etc/hosts

#添加一个国内的地址进行解析
3.219.111.229 quay.io  

拉取metrics-stats镜像

docker pull bitnami/kube-state-metrics:2.3.0


docker tag bitnami/kube-state-metrics:2.3.0 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0

获取密码

kubectl get secret test-grafana -o yaml | grep admin-password | grep -v '{}' | awk '{print $2}' | base64 -d

我不太清楚operator怎么这么调访问,这边就先edit直接改了,看看效果

这边也是和上面的一样已经全部都配置好了的。。。用到再研究吧啊( •̀ ω •́ )✧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值