Expose multiple Ports of a service using ExternalIP

We need to expose few Kubernetes services on multiple ports for external traffic on non-standard TCP ports(97XX, 87XX) for the same domain name. like:

Have two options:

  1. NodePort - Since the number of node ports will be 100+, managing and keeping track of the nodeports is a challenge

  2. ExternalIP - We were able to configure and test externalIP. It works. But, if we send requests through Domain name instead of IPAddress, router is not able to identify where to route the traffic.
    Can someone please guide me how to make it work with domain name?

Cluster information:

Kubernetes version: 1.14
Cloud being used: GCP
Installation method: Ansible
Host OS: Centos

The option 2 looks promising. Have you tried using a separate IP for each sub-domain? The TCP Load Balancer doesn’t know your domain name - it’s resolved by your client.

I am confused. A Service type-LoadBalancer with multiple ports works…