I am trying to configure Linkerd as load balancer for my gRPC client-server communication.
All servers and the client are running into Kubernetes - 1 client and 2 (for now) servers. I’ve followed your startup guide.
gRPC server is listening on port 9050.
gRPC client is using blocking stub pointing to grpc-service host and port 9050
Linkerd finds the grpc pods in the mesh:
What happens is that no matter of how many requests (in the same gRPC ManagedChannel) I send to the server, only one of the PODs is receiving them. On next execution it could be the other node, it could be the same, but the once a Channel is created it does not “re-route” gRPC requests to different PODs.
It acts just like if there is no Linkerd and K8s service is doing it usual round robin stuff.
I couldn’t find anything else to configure apart from “…inject: enabled” annotation.
I am still using the “grpc-service” as hostname for the client - shall I use some other address?
Shall I add some rules somewhere?