Помните, что сеть GCP по умолчанию является глобальной, поэтому не имеет значения, в какой зоне вы развертываете свои ресурсы, они всегда смогут связаться друг с другом, используя внутренние или внешние IP-адреса (имейте в виду, что если вы используя внешние IP-адреса для связи, вы будете платить за входящий / исходящий трафик, а также настраивать необходимые правила брандмауэра).
Если вы используете разные VPC или сети, вам нужно настроить VPC Peering , это позволит установить связь между обоими VPC, например, у вас есть экземпляр GCE в одном VPC и кластер GKE в другом .
Я попытался реплицировать ваш сценарий, кластер GKE и вычислительный экземпляр, развернутые в сети по умолчанию, применил правило брандмауэра, чтобы разрешить входящий трафик всем экземплярам в сети (сетевые теги не используются).
Я выполнил развертывание busybox, используя этот файл yaml в GKE, вошел в один модуль, kubectl get pods , а затем с помощью kubectl exec -ti $ podname sh , наконец, использовал эти инструменты для проверки соединения: traceroute и ping.
Соединение между обоими ресурсами было успешным, обратите внимание, что вместо использования протокола UDP для traceroute я использовал опцию -I , которая означает «использовать ICMP ECHO для зондов».
Экземпляр, находящийся за VPN (Cloud VPN, выделенное межсоединение или прямое пиринг), не влияет на тот факт, что кластер GKE не может достичь его, если, как я уже упоминал ранее, оба ресурса находятся в разных / разных сетях.