Report this

What is the reason for this report?

Kubernetes (AKS) : Expose multiple ports of different service to common load balancer listening on same path

Posted on April 17, 2019

I am setting up Kubernetes cluster on Azure (using AKS) to host Elasticsearch, Kibana, custom api, UI, nginx, etc.

As I don’t want separate public IP per service, I need a way to setup a common load balancer/Ingress and then just add the port numbers to there and setup routing.

I tried using the approach mentioned in this stackoverflow question - How to expose multiple port using a load balancer services in kubernetes but didn’t work out.

As there are technology clients connecting to my cluster, I need to have service per technology.

Basically I need to expose 9200, 5601, 80 - all on same IP but on accessing the IP with port, user must be re-directed to appropriate technology service.

Below is sample configuration for what am looking for.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
spec:
  rules:
  - host: myurl.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: elasticsearch
          servicePort: 9200
      - path: /
        backend:
          serviceName: kibana
          servicePort: 5602

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Start building today

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.