I have a container running on url like http://localhost:8000/ps/app/ui/?pid=201. The container is deployed on kubernetes and exposed to a service as "ps-app-ui:8000" I want to create an ingress which can be accessible from outside. Ingress template is like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ps-ingress
spec:
rules:
- http:
paths:
- path: /myapp/
backend:
serviceName: ps-app-ui
servicePort: 8000
The problem is its not working with this ingress. I also tried adding "ingress.kubernetes.io/rewrite-target: /" but had no success. Can anyone help me to get my application accessible via "http://INGRESS-IP/myapp/ps/app/ui/?pid=201"
Will be really grateful.
if you want to use http://myapp/ps/app/ui/?pid=201
you need to:
myapp
to a IP address where your ingress controller is listeninghost
myapp
to the ingress/ps/app/ui/?pid=201
path)This results in
rules:
- host: myapp
http:
paths:
- backend:
serviceName: ps-app-ui
servicePort: 8000
This ingress will forward all traffic to the host myapp
to your service
I'm thinking
- path: /myapp/
matches your app at http://myapp/myapp/
So if I have a definition:
- host: app.example.com
http:
paths:
- path: /myapp
This would be http://app.example.com/myapp
Ingress version 0.22.0 or higher has changed the way how rewrite-target works. You'll need to regex-match the path and add it to the rewrite-target.
nginx.ingress.kubernetes.io/rewrite-target: /$2
...
...
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something(/|$)(.*)