Need Articles and/or Tutorials on Handling microservice communication between multiple datacenters

This is more like a discussion then a help post to clear out my confusion about k8s. I am very new to k8s and trying to get my head around it. Documentations & Resources for k8s is overwhelming in the internet, too much information sometimes creates confusion. So, I would like to discuss a set of questions, confusion with more experienced people here.

Consider this image below where all incoming requests are coming through API gateway which checks for Auth token.

  1. In this types of architecture how does each microservice communicate with each other? Do they require some types of token to talk with each other internally?

  2. What if two microservice are in different data centers and only means of communication is via public network?

  3. How does a microservice know incoming connection is trusted (from a microservice) or from a user?