【发布时间】:2021-08-25 21:00:26
【问题描述】:
我需要帮助将流量路由到Ingress controller's 自己的服务之一metric service。
我已经部署了一个Nginx Ingress Controller 并启用了metrics 选项,它在控制器internal-controller 的名称之后自动创建了一个名称为internal-controller-metrics 的服务。该服务有端口 10254/TCP 来抓取指标,如果我从集群内发出 curl 请求,我可以看到这些指标。
但我想从外部 Prometheus scraper 中刮取那些。
因此,我想将请求路由到该服务,为此我编写了以下入口规则。但是请求curl http://dnsname.of.ingress.controller.com/metric/metrics,它响应404。
apiVersion: v1
items:
- apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
kubernetes.io/ingress.class: nginx-internal
name: metrics-ingress
spec:
rules:
- host: dnsname.of.ingress.controller.com
http:
paths:
- backend:
service:
name: nginx-internal-controller-metrics
port:
number: 10254
path: /metric(/|$)(.*)
pathType: Prefix
kind: List
我无法在控制器日志中找到任何请求未路由的原因。
Nginx 控制器版本为nginx version: nginx/1.20.1
GKE 节点版本1.17.17.
谢谢
【问题讨论】:
标签: nginx google-kubernetes-engine kubernetes-ingress nginx-ingress gke-networking