<p>We have a Kubernetes cluster running on GKE, using its own VPC created for this with a subnet of <code>10.184.0.0/20</code>. This cluster has a workload that has been assigned an external load balancer towards public access, along with an internal cluster IP towards internal communication. The subnet of the services is <code>10.0.0.0/20</code>.</p>
<p>There is a google cloud Classic VPN setup on the same VPC to be able to access the private network.</p>
<p>We have another system hosted on-premise that is connecting via the above VPN using a tunnel. The on-premise network can ping the Nodes in the VPC via their private IPs on the subnet <code>10.184.0.0/20</code>, but is enable to ping / telnet to the cluster IP which is on the subnet <code>10.0.0.0/20</code>.</p>
<p>Is this possible to achieve?</p>

zulugraffi
<p>This is indeed possible, since your tunnel is already up and you can ping your nodes my guess is that you are unable to reach the pod and services ranges from your on-prem application, meaning that you are only advertising the main 10.184.0.0/20 CIDR but not the secondaries, am I right?</p>
<p>You can easily check that by running a <a href="https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/how-to/running-connectivity-tests" rel="nofollow noreferrer">connectivity test</a>, it will simulate traffic between source-destination (in this case source is an IP from your on-prem network and the destination should be your Service IP) taking into consideration several products (firewall rules, VPC peering, routes, VPN tunnels, etc) and will let you know if there is something wrong/missing in your environment.</p>
<p>If you are missing those ranges in your VPN configuration, you will need to <a href="https://cloud.google.com/network-connectivity/docs/vpn/how-to/creating-static-vpns" rel="nofollow noreferrer">re-create it</a> and be sure to add the secondary ranges in the traffic selectors (or use a wide 0.0.0.0/0 CIDR).</p>
<p>Finally, remember that you need to expose your applications using <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/exposing-apps" rel="nofollow noreferrer">services</a> (Cluster IP, NodePort, Load Balancer) and test again from your on-premises network.</p>
