1

I have configured linkerd with 2 clusters in GKE (west and east cluster) for multicluster purpose. I used this demo app provided by google https://github.com/GoogleCloudPlatform/microservices-demo

First I did it with Istio and everything worked out fine, but with linkerd its different. As expected the exported service from east to west cluster with get the cluster name appended to the service. eg in west cluster ,you will get currencyservice-east.

The problem I think I am having is that the frontend in the west cluster keeps sending request to currencyservice instead of currencyservice-east.

I didn't have this problem in Istio because Istio used the same service name across clusters. I am not a GO programmer, but I have googled my life to find out where the service name was defined in the frontend source code to change it but I have not succeeded.

another alternative will be for linkerd to maintain the service name while exporting it.

please guys help me.

Nzube
  • 13
  • 2
  • I think the fundamental issue is that you don't use FQDN in your frontend to call other services. Thus, they will look up the completion in resolv.conf and therefore search in the current cluster. If you want to understand more, see [this answer](https://stackoverflow.com/a/68130684/9208887). Traffic split solution from Williams answer looks also interesting. – The Fool Nov 16 '21 at 18:29

1 Answers1

1

You can use a TrafficSplit on the source cluster to direct calls to currentservice to currentservice-east.

William Morgan
  • 476
  • 2
  • 7