title: Exposing multiple TCP/UDP services using a single LoadBalancer on K8s
body: <p>Trying to figure out how to expose multiple TCP/UDP services using a single LoadBalancer on Kubernetes. Let's say the services are ftpsrv1.com and ftpsrv2.com each serving at port 21. </p>
  
  <p>Here are the options that I can think of and their limitations :</p>
  
  <ul>
  <li>One LB per svc: too expensive.</li>
  <li>Nodeport :  Want to use a port outside the 30000-32767 range.</li>
  <li>K8s Ingress : does not support TCP or UDP services as of now.</li>
  <li>Using Nginx Ingress controller : which again <a href="https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/" rel="noreferrer">will  be one on one mapping</a>: </li>
  <li>Found <a href="https://github.com/DevFactory/smartnat" rel="noreferrer">this custom implementation</a> : But it doesn't seem to updated, last update was almost an year ago.</li>
  </ul>
  
  <p>Any inputs will be greatly appreciated.</p>