I have a multi-cluster/multi-zone k8s platform running on Google Kubernetes Engine. The underlying GCP VPC network is running in global routing mode. The k8s services are assigned internal IP (clusterIP) addresses via Alias IP subnets.
I can ping nodes from one cluster to the other so there are no problems with firewall rules or routing in general but I cannot connect to the individual services on their internal Alias IPs across clusters.
I can connect from other nodes and containers on the same cluster to the services although if I create an instance outside the k8s cluster in the same zone I cannot connect.
It seems likely that the Alias IP ranges are not being routed even though the subnets appear in the VPC routing table.
Is there some way to ensure that all the Alias IP subnets are correct routed across the whole VPC?
Some detail...
kubectl get services --namespace production
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch LoadBalancer 10.0.64.103 xxx.xxx.xxx.xxx 9200:30182/TCP,9300:31166/TCP 1m
gcloud compute routes list
NAME NETWORK DEST_RANGE NEXT_HOP PRIORITY
default-route-ac89edf7c623eb22 foo 10.0.64.0/19 foo 1000
The clusterIP is in the listed subnet range but is not reachable outside the local k8s cluster.