Если не нужна балансировка или выделенные IP для каждого сервиса - можно создать "безголовый" сервис. Для него:
не создается ClusterIP
не выполняется балансировка нагрузки
не выполняется проксирование
Для таких сервисов DNS настраивается автоматом, в зависимости от того, с селекторами они созданы или нет.
С селекторами - это значит endpoint controller создает записи конечных точек в API и изменяет настройки DNS так, чтобы возвращать записи DNS типа A, указывающие прямо на поды, на которых запущен этот сервис.
Без селекторов - эндпойнт контроллер не создает записи. Для сервисов типа ExternalName - DNS-сервер создает записи CNAME, для других - A-записи для всех конечных точек, с теми же именами что и сервис.
Создать безголовый сервис просто - в конфиге просто не нужно указывать для сервиса параметр ClusterIP: None
Если обращаться к обычному сервису по имени - DNS вернет один IP-адрес кластерного IP.
Если к безголовому - то вернется набор IP отдельных подов.
$ dig frontend-headless.test A +search +short
172.17.0.3172.17.0.6