kubenates 搭建Prometheus operter
要求
开始使用 Prometheus Operator 的最简单方法是将其部署为 kube-prometheus 的一部分。
kube-prometheus 部署了 Prometheus Operator,并且prometheus-k8s
默认情况下已经调度了一个带有警报和规则的 Prometheus。
您只需要使用 kubectl 访问Kubernetes 集群!
注意:对于 Kubernetes v1.20.z 之前的版本,请参阅Kubernetes 兼容性矩阵以选择兼容的分支。
获取 kube-prometheus 项目
为了快速开始,我们将部署 Kubernetes清单的编译版本。
您可以从 GitHub 克隆 kube-prometheus
git clone https://github.com/prometheus-operator/kube-prometheus.git
或将当前主分支下载为 zip 文件并解压缩其内容:
github.com/prometheus-operator/kube-prometheus/archive/main.zip
将机器上的文件更改为项目的根目录后。
部署 kube-prometheus
# Create the namespace and CRDs, and then wait for them to be availble before creating the remaining resources kubectl create -f manifests/setup until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done kubectl create -f manifests/
我们首先创建命名空间和 CustomResourceDefinitions 以避免在部署监控组件时出现竞争条件。或者,可以使用单个命令应用两个文件夹中的资源kubectl create -f manifests/setup -f manifests
,但可能需要多次运行该命令才能成功创建所有组件。
访问普罗米修斯
kubectl port-forward
通过以下命令运行快速入门后,可以快速访问 Prometheus、Alertmanager 和 Grafana 仪表板。
您还可以学习如何通过 Ingress 公开 →
kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090
在浏览器中打开localhost:9090上的 Prometheus。
查看带有预配置规则和警报的警报和规则页面!
这个 Prometheus 应该监控你的 Kubernetes 集群,并确保在它出现问题时提醒你。
对于您自己的应用程序,我们建议运行一个或多个其他实例。
访问警报管理器
kubectl --namespace monitoring port-forward svc/alertmanager-main 9093
在浏览器中打开localhost:9093 上的 Alertmanager 。
访问 Grafana
kubectl --namespace monitoring port-forward svc/grafana 3000
在浏览器中打开localhost:3000上的 Grafana 。
您可以使用用户名admin
和密码登录admin
。
删除 kube-prometheus
如果您已经完成了 kube-prometheus 和 Prometheus Operator 的试验,您可以通过运行以下命令简单地拆除部署:
kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setupb
部署ingress 访问 Prometheus 和grafana
[root@k8s-master01 promethues]# cat prom-ingress.yaml
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: promthues-ingress
namespace: monitoring
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/load-balance: "ip_hash"
nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri"
spec:
rules:
- host: promthues.ingress.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: prometheus-k8s
port:
number: 9090
[root@k8s-master01 promethues]# cat grafana-ingress.yaml
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana-ingress
namespace: monitoring
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/load-balance: "ip_hash"
nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri"
spec:
rules:
- host: grafana.ingress.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: grafana
port:
number: 3000
参考地址:https://prometheus-operator.dev/docs/prologue/quick-start/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通