Kubernetes 通过普罗米修斯从多个库伯内特斯吊舱中获取自定义数据
我们在Kubernetes的领导下在云上运行Prometheus,并且能够获取节点的内存、CPU使用等统计数据。现在,我们希望能够从云上运行的pod中获取我们自己的自定义时间序列。据我所知,这需要一个具有角色“pod”的kubernetes_sd_配置的作业(以及一个只选择具有给定名称的pod的relabel)。到现在为止,一直都还不错。然而,从我读到的文档中: pod角色发现所有pod并将其容器公开为 目标。对于容器的每个已声明的端口,都有一个单独的目标 生成。如果容器没有指定的端口,则为无端口目标 创建每个容器以通过重新标记手动添加端口 因此,每个pod必须声明一个端口(大概是在其k8s yaml中),否则它将出现端口空闲。在这种情况下,我如何确保每个pod都有唯一的端口号?(如果我没有这样做,那么如果在同一个节点上启动两个吊舱,它可能会失败) 以及一个仅选择具有给定名称的吊舱的重新标签 我想这是可能的,但在我们的配置中,我们只是省略了scrape注释(下面讨论),Prom不会联系这些pod;我们已经几个月没有接触Prom配置本身了,但是更频繁地更改Pod注释 所以每个pod必须声明一个端口 在这里,您可以看到从Pod中提取注释的位置,并将其用于将Prom刮板指向特定Pod的端口和路径(当然包括是否完全刮板) 该片段可以进入您的ReplicationController、部署、ReplicatSet、Pod(如果您部署“裸”Pod),或者使用Kubernetes API事后附加到Pod。据我所知,人们可以随意应用和删除这些注释,Prom将在下一次刮取中进行处理 如何确保每个pod都有唯一的端口号?(如果我没有这样做,那么如果在同一个节点上启动两个吊舱,它可能会失败) 假设您有一个合理的Kubernetes安装,使用软件定义的网络,那么每个Pod都有自己的IP地址,从而有自己的端口名称空间。如果你想用9145标准化每个吊舱,那就太好了Kubernetes 通过普罗米修斯从多个库伯内特斯吊舱中获取自定义数据,kubernetes,prometheus,Kubernetes,Prometheus,我们在Kubernetes的领导下在云上运行Prometheus,并且能够获取节点的内存、CPU使用等统计数据。现在,我们希望能够从云上运行的pod中获取我们自己的自定义时间序列。据我所知,这需要一个具有角色“pod”的kubernetes_sd_配置的作业(以及一个只选择具有给定名称的pod的relabel)。到现在为止,一直都还不错。然而,从我读到的文档中: pod角色发现所有pod并将其容器公开为 目标。对于容器的每个已声明的端口,都有一个单独的目标 生成。如果容器没有指定的端口,则为无端
metadata:
annotation:
prometheus.io/scrape: true
prometheus.io/path: /custom-prom-metrics
prometheus.io/port: 9145