gpt4 book ai didi

kubernetes - Kubernetes 中 Prometheus 的动态目标?

转载 作者:行者123 更新时间:2023-12-02 11:31:43 25 4
gpt4 key购买 nike

在我的 docker 设置中,我维护 targets.json 文件,该文件会根据要探测的目标动态更新。该文件一开始是空的,但在某些用例中附加了目标。

示例 targets.json

[
{
"targets": [
"x.x.x.x"
],
"labels": {
"app": "testApp1"
}
},
{
"targets": [
"x.x.x.x"
],
"labels": {
"app": "testApp2"
}
}
]

此文件随后作为 file_sd_configs 提供给 prometheus 配置。一切正常,由于应用程序中的某些事件,目标被添加到 targets.json 文件中,并且 prometheus 开始与黑盒一起监控以进行健康检查。

scrape_configs:
- job_name: 'test-run'
metrics_path: /probe
params:
module: [icmp]
file_sd_configs:
- files:
- targets.json
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox:9115

在我的 node.js 应用程序中,我能够将数据附加到 targets.json 文件,但是现在我试图在 minikube 上的 Kubernetes 中复制它。我尝试如下添加 ConfigMap 并且它有效,但我不想在配置中填充目标,而是维护一个 json 文件。

这可以使用持久卷来完成吗?运行 Prometheus 的 pod 将始终读取目标文件,而运行 pod 的应用程序将写入目标文件。

kind: ConfigMap
apiVersion: v1
metadata:
name: prometheus-cm
data:
targets.json: |-
[
{
"targets": [
"x.x.x.x"
],
"labels": {
"app": "testApp1"
}
}
]

简单来说,Kubernetes 中推荐使用什么策略,以便一个 pod 可以读取一个 json 文件,另一个 pod 可以写入该文件。

最佳答案

为了实现您的目标,您需要使用 PVC :

A PersistentVolume (PV) is a piece of storage in the cluster that hasbeen provisioned by an administrator. It is a resource in the clusterjust like a node is a cluster resource. PVs are volume plugins likeVolumes, but have a lifecycle independent of any individual pod thatuses the PV. This API object captures the details of theimplementation of the storage, be that NFS, iSCSI, or acloud-provider-specific storage system.

A PersistentVolumeClaim (PVC) is a request for storage by a user. Itis similar to a pod. Pods consume node resources and PVCs consume PVresources. Pods can request specific levels of resources (CPU andMemory). Claims can request specific size and access modes (e.g., canbe mounted once read/write or many times read-only).

如果一个 pod 必须写入它而另一个 pod 必须读取它,则需要持久化 json 文件。有一个 official guide分步骤描述该概念:

  • 创建一个PersistentVolume

  • 创建一个PersistentVolumeClaim

  • 创建一个使用您的 PersistentVolumeClaim 作为卷的 Pod

我还推荐阅读此书:Create ReadWriteMany PersistentVolumeClaims on your Kubernetes Cluster作为补充。

关于kubernetes - Kubernetes 中 Prometheus 的动态目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63147444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com