docker - 如何保护普罗米修斯数据?

标签 docker kubernetes prometheus high-availability

我们正在使用 Prometheus 进行指标收集。 Prometheus 将被部署为一个容器,它将从各种来源收集指标并将数据存储在本地机器(容器运行的地方)中。如果保存容器的节点发生故障,我们将与该节点一起丢失指标,因为 Prometheus 将所有指标存储在该本地机器中。 Kubernetes 将检测容器故障并在健康节点中跨越该容器,但我们在旧节点中丢失了数据。
​​​​

​为了解决这个问题,我们提出了两个想法

  • 我们必须将整个 Prometheus 与 Kubernetes 解耦。
  • 我们需要确保 Prometheus 服务器和 Prometheus 服务器的数据的高可用性。此外,我们需要确保 Prometheus 的身份验证。这里有一些安全问题,因为默认情况下 Prometheus 不附带 auth prometheus-basic-auth ,我们必须使用反向代理来处理身份验证。 Prometheus 需要与 Kubernetes 内部组件通信,因此我们也需要为此制定一种安全的方式。
  • 我们必须单独解耦存储,例如:NFS 类协议(protocol)(Kubernetes 术语中的 PV)。
  • 我们需要确保 Prometheus 数据的高可用性。需要保护 NFS。

  • 我们应该使用哪一个?

    如果存在任何其他行业解决方案,也可以分享。如果上述任何一种有未提及的副作用,请告诉我。

    最佳答案

    短期答案使用 PV,但可能不是 NFS,您不需要多个编写器。一个简单的网络 block 设备(EBS、GCPDisk 等)就可以了。从长远来看,HA Prometheus 是一个复杂的话题,请查看 Thanos 项目以获得一些想法和技术。此外,Grafana Labs 的人们一直在尝试一些新的 HA 布局。预计完整的 HA Prometheus 将是一个非常重要的项目,需要您深入了解内部结构。

    关于docker - 如何保护普罗米修斯数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58892596/

    相关文章:

    grafana - Prometheus Grafana 模板按计数顺序

    java - Dockerfile 中的 Maven + Java 应用程序

    kubernetes - 如何仅在工作节点上安排 gitlab-runner pod?

    kubernetes - 如何在不同 k8s 命名空间中的 pod 之间共享 cephfs 卷

    kubernetes - Kubernetes部署滚动更新

    java - 当 prometheus 端点调用时 MockMvc 收到 404

    java - 使用千分尺、 Spring Boot 和普罗米修斯测量每秒请求数

    linux - 在 CentOS 6.6 上安装 Docker

    bash - docker上的Nginx-守护并附加到bash

    spring - 在Spring boot应用程序中打印docker容器id