Changes how? It's not as if the IP of a server magically changes out of the blue.
Why re-invent DNS?
There is no reason to re-invent DNS. Each docker container will have to have the info where the other containers are. So you could write that into /etc/hosts of the containers for example.
Also, how do you protect these services
from unauthorized access?
You need to do this no matter if you use Kubernetes or your own config scripts.