kubernetes 舵手,普罗米修斯:在ec2示例上使用data/default目录安装prometheus

ldxq2e6h  于 2023-01-12  发布在  Kubernetes
关注(0)|答案(1)|浏览(181)

我正在Kubernetes环境中运行prometheus,我想监控我们的pod,这些pod准备直接向prometheus发送指标。我可以通过helm install stable/prometheus命令安装prometheus,但prometheus.yml刮擦文件在pod中,如果pod重新启动,该文件也不会持久。
由于我们还在试验中,在我们确定这个文件对我们有效之前,这个文件将经过一些迭代。我坚持使用helm的原因是它还安装了其他包,如grafana,nodeexpoerter等,这些包很有帮助
我怎样才能让helm使用AWS上的一个特定的数据目录呢?比如说/var/prometheus。如果这不可能,那么至少有一个自定义的prometheus.yml,当服务器端更新时,它可以反映在prometheus pod中。
至少到目前为止我想补充一点

kubernetes_sd_configs:
          - role: pod
        relabel_configs:
          - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
            action: keep
            regex: true
          - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
            action: replace
            target_label: __metrics_path__
            regex: (.+)
          - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
            action: replace
            regex: ([^:]+)(?::\d+)?;(\d+)
            replacement: $1:$2
            target_label: __address__
          - action: labelmap
            regex: __meta_kubernetes_pod_label_(.+)
          - source_labels: [__meta_kubernetes_namespace]
            action: replace
            target_label: kubernetes_namespace
          - action: labeldrop
            regex: '(kubernetes_pod|app_kubernetes_io_instance|app_kubernetes_io_name|instance)'

This in the scraping file. What am I missing? Thank you. :-)
ovfsdjhp

ovfsdjhp1#

回答您的问题:

可以使用hostPath类型的卷:https://kubernetes.io/docs/concepts/storage/volumes/#hostpath。它可以是单个文件或目录。因此,挂载Prometheus配置目录或仅挂载prometheus.yml。稳定Prometheus图表的相关变量。

要解决您的问题:

这里的问题是Prometheus不会自动重新加载更新的配置。要解决这个问题,您有几个选择:

  • 以ConfigMap的形式编写scrape配置,并使用hash annotation trick强制Prometheus pod的滚动更新(考虑重新启动)。
  • 以ConfigMap的形式编写scrape配置,并使用稳定的Prometheus图表中的内置重载器来处理更新。
  • 利用kube-prometheus-stack等基于Pod/Service标签生成临时配置的框架,并自动将更新后的配置重新加载到Prometheus中。

相关问题