Один из вариантов заключается в том, чтобы перед вашими услугами использовать входной ресурс (балансировщик нагрузки) и присоединить его к статическому IP, который вы ранее зарезервировали.
Я не смог найти это документально либо в документации Kubernetes или GKE, но я нашел его здесь:
https://github.com/kelseyhightower/ingress-with-static-ip
Имейте в виду, что значение, которое вы установите для kubernetes.io/ingress.global-static-ip-name
аннотации имя зарезервированного ресурса IP, а не самого IP.
К тому же, чтобы быть доступным, вам необходимо создать глобальный IP-адрес, привязать его к балансировщику нагрузки GCE, который имел глобальное таргетирование правил перенаправления в узлах вашего кластера самостоятельно.
Я не верю, что есть способ сделать эту работу автоматически, сегодня, если вы не хотите предоставлять свои услуги с помощью балансировщика нагрузки Ingress или GCP. Тем не менее, Ingress довольно прост, поэтому я бы порекомендовал вам пойти по этому маршруту, если сможете.
Существует также проект Kubernetes Инкубатор называется «внешним DNS», который выглядит надстройка, которая поддерживает это в более общем плане, и полностью внутри самого кластера:
https://github.com/kubernetes-incubator/external-dns
У меня есть еще не пробовал этот подход, но упоминал, что он слышит как-то, что вы, возможно, захотите следовать.