Вы можете установить Global Loadbalancer поверх Istio. Однако вы не можете достичь балансировщика нагрузки TCP, автоматически настроенного Istio Ingress Gateway.
Этот Ingress Gateway - это служба K8S, которая предоставляет NodePorts. Вы можете получить их с помощью следующих команд:
# For HTTP
kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'
# For HTTPS
kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}'
Теперь вы можете настроить свой глобальный сервер балансировки нагрузки с группой экземпляров, созданной вашим кластером и NodePort. Таким образом, ваш трафик будет направляться в Istio без использования шлюза Ingress (-> TCP Loadbalancer).
В двух регионах у вас должно быть 2 группы экземпляров, по 1 в каждом регионе и 2 TCPБалансировщик нагрузки, 1 в каждом регионе. Кстати, вы можете определить 2 разных бэкэнда на вашем Global Load Balancer, но вы не можете сбалансировать один и тот же трафик между двумя регионами. У вас будет 2 разных правила пути, то есть 2 разных записи URL
ОБНОВЛЕНИЕ
После отражения, если вы хотите направить один и тот же трафик в 2 регионах, выприходится полагаться на службу динамического DNS, которая выполняет этот вид балансировки нагрузки. В большинстве случаев этот вид службы DNS включает проверку работоспособности, чтобы проверить, отвечает ваш регион или нет. Сегодня Google Global Load Balancing не позволяет этого. Я знаю, что Cloudflare делают это.