[英]Prometheus to scrape K8s Ingress Endpoints
我的Prometheus實例當前已部署到K8s集群的外部。 我瀏覽了以下文章: https : //www.linkedin.com/pulse/monitoring-kubernetes-prometheus-outside-cluster-steven-acreman
這為通過api服務器訪問K8s服務提供了一個很好的主意。 我仍在嘗試使其工作(卡有證書問題)。
但是,我的問題是我們是否可以使用Prometheus代替入口控制器主機名來刮擦指標端點。 還是那是一種標准方法?
我找不到相同的單個文檔或實現。 請建議是否有人實現了上述方案或上面有任何文檔。
我將使用Kubernetes SD配置 ,並冒險使用角色來發現目標。
Kubernetes SD配置允許從Kubernetes的 REST API檢索抓取目標,並始終與集群狀態保持同步。
您可以使用角色類型endpoints
:
endpoints
角色從列出的服務endpoints
中發現目標。 對於每個端點地址,每個端口都發現一個目標。 如果端點由Pod支持,則該Pod的所有其他未綁定到端點端口的容器端口也將被發現為目標。可用的元標簽:
__meta_kubernetes_namespace
:端點對象的名稱空間。__meta_kubernetes_endpoints_name
:端點對象的名稱。- 對於直接從端點列表中發現的所有目標(未從基礎容器額外推斷出的所有目標),將附加以下標簽:
__meta_kubernetes_endpoint_hostname
:端點的主機名。__meta_kubernetes_endpoint_node_name
:承載端點的節點的名稱。__meta_kubernetes_endpoint_ready
:對於端點的就緒狀態,設置為true
或false
。__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
所有標簽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的詳細示例,請參閱此文件 。
您可能也對第三方Prometheus Operator感興趣,它可以自動在Kubernetes上建立Peometheus。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.