title: Kubernetes (AKS) : Expose multiple ports of different service to common load balancer
body: <p>I am setting up Kubernetes cluster on Azure (using AKS) to host Elasticsearch, Kibana, custom api, UI, nginx, etc.</p>
  
  <p>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.</p>
  
  <p>I tried using the approach mentioned in this stackoverflow question - <a href="https://stackoverflow.com/questions/45147664/how-to-expose-multiple-port-using-a-load-balancer-services-in-kubernetes">How to expose multiple port using a load balancer services in kubernetes</a> but didn't work out. </p>
  
  <p>As there are technology clients connecting to my cluster, I need to have service per technology. </p>
  
  <p>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.</p>
  
  <p>Below is sample configuration for what am looking for.</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Any thoughts?</p>