Prometheus抓取K8s入口端点

时间:2019-06-17 20:59:42

标签: kubernetes prometheus nginx-ingress

我的Prometheus实例当前已部署到K8s集群的外部。 我看了下面的文章: https://www.linkedin.com/pulse/monitoring-kubernetes-prometheus-outside-cluster-steven-acreman

,这为通过api服务器访问K8s服务提供了一个很好的主意。我仍在尝试使其工作(卡有证书问题)。

但是,我的问题是,我们不能使用Prometheus代替入口控制器主机名来刮擦度量标准端点。 还是那是一种标准方法?

我找不到相同的单个文档或实现。 请建议是否有人实现了上述方案或上面有任何文档。

1 个答案:

答案 0 :(得分:1)

我会使用Kubernetes SD configurations,并冒险使用各种角色来发现目标。

  

Kubernetes SD配置允许从Kubernetes' REST API检索抓取目标,并始终与集群状态保持同步。

您可以使用角色类型endpoints

  

endpoints角色从列出的服务端点发现目标。对于每个端点地址,每个端口都发现一个目标。如果端点由Pod支持,则该Pod的所有其他未绑定到端点端口的容器端口也会被发现为目标。

     

可用的元标签:

     
      
  • __meta_kubernetes_namespace:端点对象的名称空间。
  •   
  • __meta_kubernetes_endpoints_name:端点对象的名称。
  •   
  • 对于直接从端点列表中发现的所有目标(未从基础容器中另外推断出的那些目标),将附加以下标签:      
        
    • __meta_kubernetes_endpoint_hostname:端点的主机名。
    •   
    • __meta_kubernetes_endpoint_node_name:托管端点的节点的名称。
    •   
    • __meta_kubernetes_endpoint_ready:将端点的就绪状态设置为truefalse
    •   
    • __meta_kubernetes_endpoint_port_name:端点端口的名称。
    •   
    • __meta_kubernetes_endpoint_port_protocol:端点端口的协议。
    •   
    • __meta_kubernetes_endpoint_address_target_kind:端点地址目标的种类。
    •   
    • __meta_kubernetes_endpoint_address_target_name:端点地址目标的名称。
    •   
  •   
  • 如果端点属于服务,则会附加role: service发现的所有标签。
  •   
  • 对于吊舱支持的所有目标,将附加role: pod发现的所有标签。
  •   

或角色类型ingress

  

ingress角色为每个入口的每个路径发现一个目标。这通常对黑盒监视入口很有用。该地址将设置为入口规范中指定的主机。

     

可用的元标签:

     
      
  • __meta_kubernetes_namespace:入口对象的名称空间。
  •   
  • __meta_kubernetes_ingress_name:入口对象的名称。
  •   
  • __meta_kubernetes_ingress_label_<labelname>:入口对象中的每个标签。
  •   
  • __meta_kubernetes_ingress_labelpresent_<labelname>true用于入口对象中的每个标签。
  •   
  • __meta_kubernetes_ingress_annotation_<annotationname>:来自入口对象的每个注释。
  •   
  • __meta_kubernetes_ingress_annotationpresent_<annotationname>true用于来自入口对象的每个注释。
  •   
  • __meta_kubernetes_ingress_scheme:入口协议方案,如果设置了TLS配置,则为https。默认为http
  •   
  • __meta_kubernetes_ingress_path:来自入口规范的路径。默认为/
  •   

如果您想查看为Kubernetes配置Prometheus的详细示例,请参阅this file

您可能还会对第三方Prometheus Operator感兴趣,该第三方可自动在Kubernetes上建立Peometheus。