1
votes

I have three cluster in Google Kubernetes Engine. (I called Cluster A, B C). In three cluster, i deployed some services.

Im trying call example api with flow : Api call Service A1 in cluster A (Gke-A), and service A1 call service B1 in Gke-B then service B1 call service C1 in Gke C. I'm using nginx ingress and this flow worked with public traffic.

Now i want to service A1 call service b1, and service B1 call service c1 by network internal. I'm using VPC peering in Cluster B and CLuster C. In one node of cluster B, i try to call serivce C1, i worked. But when i call service A1 in ccluster Gke-A, it's not working.

I checked log and i saw, reuqest from service C1 from B1 is not working.

What happen? Thanks!

1
i don think internal calls can be done between services in two clusters because of the way google cloud structures the clusters internally. If im right, its done through instance groups in which the instances communicate with each other through a load balancer. If what you want is to make sure all the requests coming to a certain service is only from one or a set of authorized services then i would suggest you look into service to service authenticationedwinj

1 Answers

1
votes

This question is a little vague as it is, but in general there is no proper support for accessing services running in antother Kubernetes Cluster inside GCE, yet.

One thing that could work would be to use an internal GCE load balancer and headless service pointing to this LBs IPs. But I'm not sure if/how that works with an nginx Ingress.