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/

posted @   蒲公英PGY  阅读(179)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示