How do I get more control over the NodePorts my Service assigns to my Deployment?
As far as I understand kubernetes services, that trick is not possible.

What could help you to have preserved hostnames is a StatefulSet.
See more here


  The Pods’ ordinals, hostnames, SRV records, and A record names have
  not changed, but the IP addresses associated with the Pods may have
  changed. In the cluster used for this tutorial, they have. This is why
  it is important not to configure other applications to connect to Pods
  in a StatefulSet by IP address.