Welcome! Log In Create A New Profile

Advanced

Ingress Controller Configuration for backend service with relative path

Vishal Mehra
June 16, 2021 11:22PM
What is the best way to route traffic to a backend web front service which
uses different relative paths within the web application.

As an example, take a standard Jaeger service kubectl create -f
https://tinyurl.com/yc52x6q5.

I would like to expose this service endpoint via an ingress controller, see
ingress configuration below

apiVersion: networking.k8s.io/v1kind: Ingressmetadata:
name: frontend-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/add-base-url: "true"spec:
rules:
- host:
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend
port:
number: 4444
- path: /jaeger
pathType: Prefix
backend:
service:
name: jaeger-query
port:
number: 443

Using ingress endpoint https://<host public ip>/jaeger, I am able to
successfully invoke the backend service (jaeger-query), however the backend
service pages with the relative URLs (like /static and /api) are not
getting loaded/rendered on the browser as ingress controller does not have
a rule to route that traffic.

As a workaround, I added ingress rules for /static and /api to point to the
same backend service. configuration.

apiVersion: networking.k8s.io/v1kind: Ingressmetadata:
name: frontend-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/add-base-url: "true"spec:
rules:
- host:
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend
port:
number: 4444
- path: /jaeger
pathType: Prefix
backend:
service:
name: jaeger-query
port:
number: 443
- path: /search
pathType: Prefix
backend:
service:
name: jaeger-query
port:
number: 443
- path: /static
pathType: Prefix
backend:
service:
name: jaeger-query
port:
number: 443
- path: /api
pathType: Prefix
backend:
service:
name: jaeger-query
port:
number: 443

Ideally, I would like one Ingress rule per backend service and the relative
paths like /static and /api to automatically adjust to /jaeger/static and
/jaeger/api.

Do you know how that can be achieved?
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Ingress Controller Configuration for backend service with relative path

Vishal Mehra June 16, 2021 11:22PM

Re: Ingress Controller Configuration for backend service with relative path

Sergey A. Osokin June 17, 2021 03:34PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 295
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready