一、下载对应的kube-prometheus源码
github地址:https://github.com/prometheus-operator/kube-prometheus
根据自己的Kubernetes版本下载对应的Kube-prometheus源码。
kubectl version
我的kubernetes的版本为v1.30.3固下载master分支的源码
1)进入目录
[root@k8s-master ~]# cd kube-prometheus
[root@k8s-master kube-prometheus]# ls
build.sh docs jsonnet manifests
CHANGELOG.md example.jsonnet jsonnetfile.json README.md
code-of-conduct.md examples jsonnetfile.lock.json RELEASE.md
CONTRIBUTING.md experimental kustomization.yaml scripts
DCO go.mod LICENSE sync-to-internal-registry.jsonnet
developer-workspace go.sum Makefile tests
2)可以看到有个manifests目录这里面是我们所需的yaml,并且先运行manifests目录下setup中的yaml文件
[root@k8s-master kube-prometheus]# cd manifests/
[root@k8s-master manifests]# ls
会看到一个setup的文件夹
我们先执行这个文件夹这个里面会为我们创建命名空间
和一些基础清单
[root@k8s-master manifests]# kubectl create -f setup/
3)修改prometheus,grafana,alertmanager的yaml文件修改端口暴露为nodeport模式 为了能从外网访问
修改prometheus-service.yaml,添加NodePort类型和端口
修改prometheus-service.yaml文件,添加NodePort类型和端口
修改alertmanager-service.yaml文件添加NodePort类型和端口
进入kube-prometheus/manifests目录运行
cd kube-prometheus/manifests/
kubectl apply -f .
访问测试
通过以下命令查看相应的服务:
kubectl get svc -n monitoring
其中红框圈出的是比较关键的服务以及其对应的访问端口,但现在还无法访问grafan、prometheus以及alertmanger,因为prometheus operator内部默认配置了NetworkPolicy,需要删除其对应的资源,才可以通过外网访问:
cd .. #需要到manifests的同级目录下运行
kubectl delete -f manifests/prometheus-networkPolicy.yaml
kubectl delete -f manifests/grafana-networkPolicy.yaml
kubectl delete -f manifests/alertmanager-networkPolicy.yaml
删除后,通过服务器ip:服务端口的形式,即可访问对应的服务了,在此,kube-prometheus的部署彻底完成。
grafana的默认账号和密码:admin/admin