在之前的帖子中,我写了关于 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 集群。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐