gpt4 book ai didi

kubernetes - 通过Prometheus从多个Kubernetes容器中刮取自定义统计信息

转载 作者:行者123 更新时间:2023-12-02 12:08:07 30 4
gpt4 key购买 nike

我们正在Kubernetes下的云上运行Prometheus,并且能够获取节点的内存,CPU使用率等统计信息。现在,我们希望能够从云上运行的Pod中抓取自己的自定义时间序列。据我了解,这需要具有kubernetes_sd_config角色“pod”的工作(以及一个重新标签,该标签将仅选择具有给定名称的Pod)。到现在为止还挺好。但是,从文档中我读到:

The pod role discovers all pods and exposes their containers as targets. For each declared port of a container, a single target is generated. If a container has no specified ports, a port-free target per container is created for manually adding a port via relabeling.



因此,每个Pod必须声明一个端口(大概在其k8s yaml中?),否则它将不依赖端口。在那种情况下,我如何确保每个Pod有一个唯一的端口号? (如果没有,那么如果在同一节点上启动两个pod,可能会失败)

最佳答案

and a relabel that will select only pods with a given name



我想这是可能的,但是在我们的配置中,我们只是省略了scrape注释(在下面讨论),并且Prom不会与这些Pod联系。我们已经有几个月没有接触Prom配置了,但是更频繁地更改Pod注释。

So each pod must declare a port



their example config中,您可以看到从Pod中提取注释的位置,并将其用于将Prom刮板指向该特定Pod的端口和路径(当然包括是否完全刮除它)。
metadata:
annotation:
prometheus.io/scrape: true
prometheus.io/path: /custom-prom-metrics
prometheus.io/port: 9145

该代码段可以放入您的ReplicationController,Deployment,ReplicaSet,Pod(如果您部署“裸” Pods),也可以使用Kubernetes API附加到Pod事后。据我所知,您可以随意应用和删除这些注释,而Prom会在下一次抓取中使用它。

how would I ensure that each pod has a unique port number? (and if I didn't, it would presumably fail if two pods were started on the same node)



假设您使用软件定义的网络安装了合理的Kubernetes,则每个Pod都有其自己的IP地址,因此也有其自己的端口 namespace 。如果您想使用9145在每个Pod上进行标准化,那将是非常好的。

关于kubernetes - 通过Prometheus从多个Kubernetes容器中刮取自定义统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47592314/

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