一个人网站运营怎么做,哈尔滨网页设计师人才招聘,平面设计网站推荐,六安哪里有做网站的Kube-prometheus介绍
Kube-prometheus 是一个用于监控 Kubernetes 集群的完整解决方案。它基于 Prometheus 生态系统#xff0c;提供了一整套预配置的组件和配置文件#xff0c;以便轻松地在 Kubernetes 上部署和运行 Prometheus 监控系统。
Kube-prometheus 主要包括以下组…Kube-prometheus介绍
Kube-prometheus 是一个用于监控 Kubernetes 集群的完整解决方案。它基于 Prometheus 生态系统提供了一整套预配置的组件和配置文件以便轻松地在 Kubernetes 上部署和运行 Prometheus 监控系统。
Kube-prometheus 主要包括以下组件
Prometheus Operator简化了 Prometheus 的部署和管理。它通过 Kubernetes CRD自定义资源定义来管理 Prometheus 实例和 Alertmanager 实例。
Prometheus一个开源的系统监控和报警工具。它通过拉取方式收集时序数据并提供一个灵活的查询语言PromQL来分析数据。
Alertmanager处理来自 Prometheus 的警报可以对警报进行分组、路由和通知。
Grafana一个开源的分析平台用于可视化数据支持多种数据源。它可以用来创建和分享仪表板Dashboards。
Node Exporter一个收集主机硬件和操作系统指标的工具。
Kube-state-metrics从 Kubernetes API 服务器收集集群状态数据的工具。
Prometheus Adapter将 Prometheus 的自定义指标暴露给 Kubernetes 的 Horizontal Pod Autoscaler (HPA) 使用。
Kube-prometheus 的主要特点和优势包括
预配置提供了一整套预先配置好的 Prometheus、Alertmanager 和 Grafana 的配置文件开箱即用。集成性强所有组件都紧密集成可以方便地一起使用。可扩展性基于 Kubernetes 的部署方式使得监控系统能够方便地扩展和升级。社区支持作为一个被广泛使用的项目有着良好的社区支持和文档。
要使用 Kube-prometheus通常通过 Helm Chart 或者直接使用项目中的 Kubernetes 清单文件来部署。部署完成后你可以访问 Grafana 来查看集群的监控指标和预定义的仪表板同时通过 Prometheus 和 Alertmanager 来管理和处理监控数据和警报。
Kube-prometheus安装部署
拉取镜像
git clone https://mirror.ghproxy.com/https://github.com/prometheus-operator/kube-prometheus.git将目录更改为清单 manifests
cd kube-prometheus/manifests修改Grafana服务YAML
修改为NodePort类型集群外可以访问
sed -i /ports:/i \ \ type: NodePort grafana-service.yaml
#下面这个也可以不执行自动生成随机的端口
sed -i /targetPort: http/i \ \ \ \ nodePort: 31100 grafana-service.yaml修改Prometheus服务YAML
修改为NodePort类型集群外可以访问
sed -i /ports:/i \ \ type: NodePort prometheus-service.yaml
#下面这个也可以不执行自动生成随机的端口
sed -i /targetPort: web/i \ \ \ \ nodePort: 31101 prometheus-service.yaml安装CRD
kubectl create -f setup/安装prometheus, alertmanager, grafana, kube-state-metrics, node-exporter等资源
kubectl apply -f .安装成功查看pod,svc
kubectl get pod,svc -n monitoring -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/alertmanager-main-0 2/2 Running 6 (18m ago) 4d16h 10.244.1.183 slave1 none none
pod/alertmanager-main-1 2/2 Running 6 (18m ago) 4d16h 10.244.1.176 slave1 none none
pod/alertmanager-main-2 2/2 Running 6 (18m ago) 4d16h 10.244.1.173 slave1 none none
pod/blackbox-exporter-6fc96d64db-687gh 3/3 Running 9 (18m ago) 4d17h 10.244.1.165 slave1 none none
pod/grafana-85c87f8769-xqlq5 1/1 Running 3 (18m ago) 4d17h 10.244.1.166 slave1 none none
pod/kube-state-metrics-6d79c8794-tpbtr 3/3 Running 9 (18m ago) 4d17h 10.244.1.164 slave1 none none
pod/node-exporter-2dz4d 2/2 Running 14 (18m ago) 7d19h 192.168.10.22 slave1 none none
pod/node-exporter-rqplj 2/2 Running 10 (18m ago) 7d19h 192.168.10.21 main none none
pod/prometheus-adapter-9f76d56cc-47qgh 1/1 Running 5 (18m ago) 4d17h 10.244.1.170 slave1 none none
pod/prometheus-adapter-9f76d56cc-zt64q 1/1 Running 5 (18m ago) 4d17h 10.244.1.179 slave1 none none
pod/prometheus-k8s-0 2/2 Running 7 (18m ago) 4d16h 10.244.1.175 slave1 none none
pod/prometheus-k8s-1 2/2 Running 7 (18m ago) 4d16h 10.244.1.181 slave1 none none
pod/prometheus-operator-84978f59d-jf5cn 2/2 Running 6 (18m ago) 4d17h 10.244.1.169 slave1 none noneNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/alertmanager-main ClusterIP 10.100.61.145 none 9093/TCP,8080/TCP 7d19h app.kubernetes.io/componentalert-router,app.kubernetes.io/instancemain,app.kubernetes.io/namealertmanager,app.kubernetes.io/part-ofkube-prometheus
service/alertmanager-operated ClusterIP None none 9093/TCP,9094/TCP,9094/UDP 7d19h app.kubernetes.io/namealertmanager
service/blackbox-exporter ClusterIP 10.107.213.75 none 9115/TCP,19115/TCP 7d19h app.kubernetes.io/componentexporter,app.kubernetes.io/nameblackbox-exporter,app.kubernetes.io/part-ofkube-prometheus
service/grafana NodePort 10.102.185.87 none 3000:31100/TCP 7d19h app.kubernetes.io/componentgrafana,app.kubernetes.io/namegrafana,app.kubernetes.io/part-ofkube-prometheus
service/kube-state-metrics ClusterIP None none 8443/TCP,9443/TCP 7d19h app.kubernetes.io/componentexporter,app.kubernetes.io/namekube-state-metrics,app.kubernetes.io/part-ofkube-prometheus
service/node-exporter ClusterIP None none 9100/TCP 7d19h app.kubernetes.io/componentexporter,app.kubernetes.io/namenode-exporter,app.kubernetes.io/part-ofkube-prometheus
service/prometheus-adapter ClusterIP 10.101.25.109 none 443/TCP 7d19h app.kubernetes.io/componentmetrics-adapter,app.kubernetes.io/nameprometheus-adapter,app.kubernetes.io/part-ofkube-prometheus
service/prometheus-k8s NodePort 10.107.214.35 none 9090:31101/TCP,8080:30323/TCP 7d19h app.kubernetes.io/componentprometheus,app.kubernetes.io/instancek8s,app.kubernetes.io/nameprometheus,app.kubernetes.io/part-ofkube-prometheus
service/prometheus-operated ClusterIP None none 9090/TCP 4d18h app.kubernetes.io/nameprometheus
service/prometheus-operator ClusterIP None none 8443/TCP 7d19h app.kubernetes.io/componentcontroller,app.kubernetes.io/nameprometheus-operator,app.kubernetes.io/part-ofkube-prometheus访问
prometheus-k8s在slave1上面用slave1的ip加prometheus-k8s的端口http://192.168.10.21:31101/访问
grafana也在slave1上面用slave1的ip加grafana的端口http://192.168.10.21:31100/访问 默认账户密码admin:admin
一键部署shell脚本
#!/bin/bash# Clone the repository
git clone https://mirror.ghproxy.com/https://github.com/prometheus-operator/kube-prometheus.git# Change directory to manifests
cd kube-prometheus/manifests# Prompt the user to enter Grafana NodePort
echo Enter the Grafana NodePort (default is 31100):
read grafana_nodeport
grafana_nodeport${grafana_nodeport:-31100} # Default to 31100 if user doesnt provide any input# Modify Grafana service YAML
sed -i /ports:/i \ \ type: NodePort grafana-service.yaml
sed -i /targetPort: http/i \ \ \ \ nodePort: $grafana_nodeport grafana-service.yaml# Prompt the user to enter Prometheus NodePort
echo Enter the Prometheus NodePort (default is 31101):
read prometheus_nodeport
prometheus_nodeport${prometheus_nodeport:-31101} # Default to 31101 if user doesnt provide any input# Modify Prometheus service YAML
sed -i /ports:/i \ \ type: NodePort prometheus-service.yaml
sed -i /targetPort: web/i \ \ \ \ nodePort: $prometheus_nodeport prometheus-service.yamlkubectl create -f setup/kubectl wait \--for conditionEstablished \--all CustomResourceDefinition \--namespacemonitoring# Apply the Kubernetes manifests
kubectl apply -f .