Я пытаюсь настроить Ingress Nginx для Deployment'ов с Prometheus, Alertmanager и Grafana. Но я столкнулся с проблемой перенаправления трафика. Вот мой конфиг Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-controller01
annotations:
kubernetes.io/ingress.className: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: prometheus
port:
number: 9090
- pathType: Prefix
path: /grafana/
backend:
service:
name: grafana
port:
number: 3000
- pathType: Prefix
path: /alertmanager/
backend:
service:
name: alertmanager
port:
number: 9093
Мои сервисы для Prometheus, Grafana и Alertmanager:
apiVersion: v1
kind: Service
metadata:
name: prometheus
spec:
selector:
app: prometheus
ports:
- port: 9090
name: prometheus-port
targetPort: prom-prt
---
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
selector:
app: grafana
ports:
- port: 3000
name: grafana-port
targetPort: grafana-prt
---
apiVersion: v1
kind: Service
metadata:
name: alertmanager
spec:
selector:
app: alertmanager
ports:
- port: 9093
name: alertmanager-port
targetPort: alert-prt
Когда я пытаюсь в браузере открыть URL
http://server/grafana/
, то мне выдаёт ошибку 404 page not found. Логи Ingress Nginx Controller'a при этом выдают следующее:
192.168.2.46 - - [19/Dec/2023:09:03:54 +0000] "GET /grafana/ HTTP/1.1" 302 29 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0" 673 0.004 [default-grafana-3000] [] 10.244.1.12:3000 29 0.004 302 80eda3db119fd4c3a81ecf545f52f171
192.168.2.46 - - [19/Dec/2023:09:03:54 +0000] "GET /login HTTP/1.1" 404 19 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0" 670 0.002 [default-prometheus-9090] [] 10.244.1.10:9090 19 0.001 404 d7290e97e225f61ec42053413286709e
То есть Grafana меняет адресную строку
http://server/grafana/
на
http://server/login
, из-за чего происходит перенаправление трафика на Prometheus. Собственно вопрос: как этого можно избежать? Я пробовал менять аннотацию rewrite-target на /$1, /$2, комментить её, но ничего не помогало.
Upd. Корневой URL
http://server/
успешно открывает Prometheus.