k8s 1.27.1部署prometheus
本文使用Operator方法部署prometheus,既可以被描述为一个包,也可以被描述为一个库。
kube-prometheus-stack
此存储库收集Kubernetes清单、Grafana仪表板和Prometheus规则,并结合文档和脚本,以使用Prometheus Operator提供易于操作的端到端Kubernetes集群监控。此stack用于集群监控,因此它被预配置为从所有Kubernetes组件收集指标。除此之外,它还提供了一组默认的仪表板和警报规则。许多有用的仪表板和警报来自kubernetes-mixin项目,类似于这个项目,它提供了可组合的jsonnet作为一个库,供用户根据自己的需求进行定制。
兼容性
支持以下Kubernetes版本,并在各自的分支中对这些版本进行测试。但请注意,其他版本可能会工作!
kube-prometheus stack | Kubernetes 1.21 | Kubernetes 1.22 | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 |
---|---|---|---|---|---|
release-0.9 |
✔ | ✔ | ✗ | ✗ | ✗ |
release-0.10 |
✗ | ✔ | ✔ | ✗ | ✗ |
release-0.11 |
✗ | ✗ | ✔ | ✔ | ✗ |
release-0.12 |
✗ | ✗ | ✗ | ✔ | ✔ |
main |
✗ | ✗ | ✗ | ✗ | ✔ |
本人使用的是k8s1.27.1版本,使用的是release-0.12,经测试可以使用,同时k8s1.26也可以使用release-0.12进行部署prometheus。
部署prometheus
1、下载Prometheus
$ git clone https://github.com/prometheus-operator/kube-prometheus.git -b release-0.12
安装Prometheus
#你克隆时所在目录
$ cd kube-prometheus/
#创建命名空间和crd
$ kubectl apply --server-side -f manifests/setup
#创建其他资源
$ until kubectl get servicemonitors -A ; do date; sleep 1; echo ""; done
$ kubectl apply -f manifests
2、查看安装状态
$ kubectl get po -n monitoring
会看到许多pod拉取失败,原因是镜像源并非国内的,需要找国内镜像替代,找到镜像后手动拉取并且将拉去的替代镜像tag为无法拉取的镜像名称,这里主要是prometheus-adapter和kube-state-metrics会出现问题,由于我K8S版本为1.27.1,根据官方推荐使用的release版本为0.12,自动拉取的镜像为prometheus-adapter:v0.10.0和kube-state-metrics:2.7.0,其他版本的k8s和所使用release版本不同需自己describe拉取失败的pod查看镜像版本进行选择,以下以我的版本配置为例
3、手动拉取镜像
$ docker pull thinkingdata/prometheus-adapter:v0.10.0
$ docker tag thinkingdata/prometheus-adapter:v0.10.0 registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.10.0
$ docker pull bitnami/kube-state-metrics:2.7.0
$ docker tag bitnami/kube-state-metrics:2.7.0 registry.k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.7.0
4、若还是会出现拉取镜像失败或者镜像拉取不全,则需要到配置文件中将image地址修改为国内镜像地址,如我的配置:
#prometheus-adapter
kube-prometheus/mainfests/prometheusAdapter-deployment.yaml#需要修改的文件
将images中地址从registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.10.0改为thinkingdata/prometheus-adapter:v0.10.0
#kube-state-metrics
kube-prometheus/mainfests/kubeStateMetrics-deployment.yaml#需要修改的文件
将images中地址从registry.k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.7.0改为bitnami/kube-state-metrics:2.7.0
5、若配置未生效可以删除重新配置
$ kubectl delete -f manifests
$ kubectl apply -f manifests
可以看到镜像拉取不全问题已解决
lin@k8smaster:~/Desktop/kube-prometheus$ kubectl get po -n monitoring
NAME READY STATUS RESTARTS AGE
alertmanager-main-0 2/2 Running 0 32s
alertmanager-main-1 2/2 Running 0 32s
alertmanager-main-2 2/2 Running 0 32s
blackbox-exporter-8646857dcc-5z6cw 3/3 Running 0 40s
grafana-74cc547459-vtxj9 1/1 Running 0 38s
kube-state-metrics-79b84c8cc8-654zm 3/3 Running 0 38s
node-exporter-42tff 2/2 Running 0 37s
node-exporter-zgk7f 2/2 Running 0 37s
prometheus-adapter-5bccc86595-4b4bk 1/1 Running 0 36s
prometheus-adapter-5bccc86595-5kttw 1/1 Running 0 36s
prometheus-k8s-0 2/2 Running 0 31s
prometheus-k8s-1 2/2 Running 0 31s
prometheus-operator-55cb8b56dc-2mgxn 2/2 Running 0 35s
6、部署完成后通过kubectl get svc -n monitoring
命令可以看到服务对应的端口情况
可以将grafana通过kubectl edit svc grafana -n monitoring
命令进入配置将ipv4.type修改为NodePort
查看端口情况
lin@k8smaster:~$ kubectl get svc -n monitoring
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
alertmanager-main ClusterIP 10.100.198.136 <none> 9093/TCP,8080/TCP 2d7h
alertmanager-operated ClusterIP None <none> 9093/TCP,9094/TCP,9094/UDP 2d7h
blackbox-exporter ClusterIP 10.110.183.15 <none> 9115/TCP,19115/TCP 2d7h
grafana NodePort 10.103.79.135 <none> 3000:30640/TCP 2d7h
kube-state-metrics ClusterIP None <none> 8443/TCP,9443/TCP 2d7h
node-exporter ClusterIP None <none> 9100/TCP 2d7h
prometheus-adapter ClusterIP 10.96.34.76 <none> 443/TCP 2d7h
prometheus-k8s ClusterIP 10.101.189.52 <none> 9090/TCP,8080/TCP 2d7h
prometheus-operated ClusterIP None <none> 9090/TCP 2d7h
prometheus-operator ClusterIP None <none> 8443/TCP 2d7h
通过访问10.103.79.135:30640进入grafana。
7、也可以分别打开三个终端输入以下命令
kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090
kubectl --namespace monitoring port-forward svc/grafana 000
kubectl --namespace monitoring port-forward svc/alertmanager-main 9093
8、在网页中访问dashboard监控k8s集群健康状态
访问Prometheus:http://localhost:9090
访问Grafana: http://localhost:3000文章来源:https://www.toymoban.com/news/detail-815357.html
访问AlertManager:http://localhost:9093
文章来源地址https://www.toymoban.com/news/detail-815357.html
到了这里,关于k8s v1.27部署prometheus的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!