<p>By default, Kubernetes services with type <code>ClusterIP</code> are accessible from the same cluster. Is there a way to configure a service in GKE to be accessible from the same VPC? e.g., a GCE VM in the same VPC could access the service in GKE, but I don't want to expose it to the internet.</p>

<p>This is not possible. The official GKE documentation on VPC-native clusters says:</p>

<blockquote>
  <p>Cluster IPs for internal Services are available only from within the cluster. If you want to access a Kubernetes Service from within the VPC, but from outside of the cluster (for example, from a Compute Engine instance), use an <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing" rel="nofollow noreferrer">internal load balancer</a>.</p>
</blockquote>

<p>See <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips#restrictions" rel="nofollow noreferrer">here</a>.</p>
