On my AKS cluster I have a Nginx ingress controller that I used to reverse proxy my kibana service running on the AKS. I want to however add another http services through the ingress, rabbitmq management console.
I'm unable to get both to work with the following configuration:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-aegis
namespace: dev
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- dev.endpoint.net
secretName: dev-secret
rules:
- host: dev.endpoint.net
http:
paths:
- path: /
backend:
serviceName: kibana-kibana
servicePort: 5601
- path: /rabbit
backend:
serviceName: rabbitmq
servicePort: 15672
The Kibana works fine at root however RabbitMQ fails to load with a 503
with any path except /
. If RabbitMQ's path is /
then it works fine but then Kibana won't run.
I assume this is because internally they are sitting on the root aka localhost:15672 so it redirects to / on dev.endpoint.net.
How do I have multiple services like Kibana and RabbitmQ running from one endpoint?
What you need to do is set the basePath
for kibana to /kibana
See the below url
https://www.elastic.co/guide/en/kibana/current/settings.html
You are looking to configure server.basePath
to /kibana
. Then this will sort the reverse proxying issues and you can keep the MQ one directly on root /
You can also set SERVER_BASEPATH
environment variable in your kibana
pod and it will automatically pick the base path from that variable
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With