使用Prometheus Agent模式部署Prometheus多集群监控
在之前的帖子中,我写了关于 Prometheus 多集群监控以及如何在代理模式下使用 Prometheus 帮助创建用于监控多 Kubernetes 集群的单一管理平台。因此,如果您还没有阅读它,请在这篇动手文章之前阅读它。在这篇文章中,我们将部署 Prometheus 代理模式以及 Prometheus 全局视图,并测试它们如何协同工作。对于本教程,您需要一个 Kubernetes 集群和两个独立的命名空间,monitoring-global 和 monitoring。你准备好跑步了吗?!

AndreaPiacquadio 拍摄的照片来自Pexels
部署全局视图 Prometheus
首先确保您已经创建了两个所需的命名空间。否则,使用以下命令创建它们:
kubectl 创建 ns 监控-全局 && kubectl 创建 ns 监控
我用来部署在测试集群上的所有文件都可以在我的Github上下载或克隆。
1- 部署要在 Prometheus 部署中使用的配置映射。此配置映射创建定义规则语句的prometheus.rules和作为配置文件的prometheus.yml。
kubectl apply -f prometheus-global-view/config-map-global.yml
2- 部署 Prometheus 部署。由于它仅用于测试并且不会存储太多数据,因此我们添加了一个emptyDirVolume 并启用了remote-write-receiver,它允许 Prometheus 接受来自其他 Prometheus 服务器的远程写入请求。
kubectl apply -f prometheus-global-view/prometheus-global-deployment.yml
如果您获得了正在运行的 pod,您会看到创建的 pod。
$kubectl 获取 pods -n 监控全局
名称 就绪 状态 重新开始 年龄
prometheus-deployment-6d84cb9b8b-5r2zb 1/1 运行 0 2m35s
3- 最好在代理模式 Prometheus 的代理模式命名空间中创建一个无头服务作为远程写入端点。
kubectl apply -f prometheus-global-view/headless-service.yml
现在创建了无头服务,您可以简单地将本地端口转发给它并访问正在运行的 Prometheus 全局视图。
$kubectl 端口转发 svc/prometheus-global-headless-service 9090:9090 -n 监控-全局
从 127.0.0.1:9090 -> 9090 转发
从 [::1]:9090 -> 9090 转发
调用运行状况检查端点以确保一切正常。或者你可以在浏览器上浏览zwz100018 http://localhost:9090 zwz100019 zwz100017。
$curlhttp://localhost:9090/-/healthyPrometheus 服务器是健康的。
部署代理模式 Prometheus
现在是时候在代理模式下部署 Prometheus 并将指标远程写入全局视图了。
1- 为 Prometheus 创建一个 ClusterRole 和一个 ClusterRoleBinding 以便能够抓取一些 Kubernetes 指标。
kubectl apply -f prometheus-agent/clusterrole.yml
2- 我们需要创建一个配置映射以用作代理模式 Prometheus 服务器配置文件。在这里,我们添加了remote_write端点。
kubectl apply -f prometheus-agent/config-map.yml
3- 现在我们部署了代理模式部署的所有先决条件,最后,我们可以部署代理模式 Prometheus。我们通过传递--enable-feature=agent参数来启用代理模式安装。
kubectl apply -f prometheus-agent/prometheus-deployment.yml
通过部署最后一块,现在 Prometheus 代理模式正在运行,您可以通过将其 pod 端口转发到您的 localhost 来确认它。
$kubectl 获取 pods -n 监控
名称 就绪 状态 重新开始 年龄
prometheus-deployment-fd7f6557c-tvsjj 1/1 Running 0 $kubectl port-forward prometheus-deployment-fd7f6557c-tvsjj 9080:9090 -n 监控
从 127.0.0.1:9080 -> 9090 转发
从 [::1]:9080 -> 9090 转发
现在,如果您在浏览器上浏览localhost:9080,您会看到以下页面,显示 Prometheus 正在代理模式下运行。

现在,如果您再次移植全局视图并查询可用的指标,您将看到从代理发送的指标可以在其上访问。

结论
当您想要在单个窗格中监控多个集群时,代理模式下的 Prometheus 非常有用。但不仅如此,如今许多公司都在推进边缘计算。现在是物联网、自动驾驶汽车和许多其他模型的时代,您可以在资源有限的设备中部署 Kubernetes 集群。
更多推荐



所有评论(0)