HTTPRoute applied on Gateway and cross-cluster traffic #12009
Replies: 2 comments
-
Thank you so much @NikitaCloudRuntime for the very detailed report; this allowed me to actually reproduce the problem. So for now I'm gonna move this into an issue for better tracking. |
Beta Was this translation helpful? Give feedback.
-
Just realized that it's likely worth copying my answer from the issue to here for any future readers: I think that this is actually expected behavior if the HTTPRoute is installed in If you mirror both |
Beta Was this translation helpful? Give feedback.
-
Hi there :)
sorry for bringing up a new question but sadly after hours of debugging I was unable to solve the issue :(
I have two clusters -
linkerd-a
andlinkerd-b
Both running 1.16.10 version of Linkerd control plane. Also
multicluster
andfailover
extension are installed to both. Clusters use shared CA authority.In cluster
linkerd-b
I have installedecho
service and mirrored it to the clusterlinkerd-a
. Connection is established over the gateway, not flat network.I used the following yaml manifests to install this part
After manifests from above are applied, I can see mirrored service in
cluster-a
and I can curl it
The responding HOSTNAME is correct and matching pod name running in cluster
linkerd-b
As the next step I'm trying to test
HttpRoute
resource and route traffic coming to gateway in clusterlinkerd-b
to eitherechoserver-headers
service if coming request containsx-request-id: alternative
header or to theechoserver
service otherwise. For that I'm applying the following manifestsOnce it's applied, I'm trying to connect to the same endpoint(
echoserver-linkerd-b.echoserver
) from clusterlinkerd-a
and use configured HTTP header, but my requests get always landed to theechoserver
deployment :(However, if calling from within the local
linkerd-b
cluster, everything works as expectedI'm almost sure this must be working since previously I tested out how Argo Rollouts works with similar installation
echoserver-canary
andechoserver-stable
svc/deploymentsOnce the rollout starts, controller changes weights of the backend routes and I saw how traffic from cluster
linkerd-a
was balancer across two services in clusterlinkerd-b
.Does anyone has any idea why it might be not working and what I'm missing or where is my mistake/misunderstanding?
Thank you
Beta Was this translation helpful? Give feedback.
All reactions