<p>I'm wondering if anyone can help with my issue, here's the setup:</p>
<ul>
<li>We have 2 separate kubernetes clusters in GKE, running on v1.17, and they each sit in a separate project</li>
<li>We have set up VPC peering between the two projects</li>
<li>On cluster 1, we have 'service1' which is exposed by an <strong>internal HTTPS load balancer</strong>, we don't want this to be public</li>
<li>On cluster 2, we intend on being able to access 'service1' via the internal load balancer, and it should do this over the VPC peering connection between the two projects</li>
</ul>
<p>Here's the issue:
When I'm connected via SSH on a GKE node on cluster 2, I can successfully run a curl request to access <a href="https://service1.domain.com" rel="nofollow noreferrer">https://service1.domain.com</a> running on cluster 1, and get the expected response, so traffic is definitely routing from cluster 2 &gt; cluster 1. However, when I'm running the same curl command from a POD, running on a GKE node, the same curl request times out.</p>
<p>I have run as much troubleshooting as I can including telnet, traceroute etc and I'm really stuck why this might be. If anyone can shed light on the difference here that would be great.</p>
<p>I did wonder whether pod networking is somehow forwarding traffic over the clusters public IP rather than over the VPC peering connection.</p>

<p>As mentioned in one of the answers <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips" rel="nofollow noreferrer">IP aliases (VPC-native)</a> should work out of the box. If using a route based GKE cluster rather than VPC-native  you would need to use custom routes.</p>
<p>As per this <a href="https://cloud.google.com/vpc/docs/vpc-peering#restrictions" rel="nofollow noreferrer">document</a></p>
<blockquote>
<p>By default, VPC Network Peering with GKE is supported when used with
IP aliases. If you don't use IP aliases, you can export custom routes
so that GKE containers are reachable from peered networks.</p>
</blockquote>
<p>This is also explained in this <a href="https://cloud.google.com/vpc/docs/vpc-peering#benefits_of_exchanging_custom_routes" rel="nofollow noreferrer">document</a></p>
<blockquote>
<p>If you have GKE clusters without VPC native addressing, you might have
multiple static routes to direct traffic to VM instances that are
hosting your containers. You can export these static routes so that
the containers are reachable from peered networks.</p>
</blockquote>
