-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Websockets do not work with domainmapings by default #13083
Comments
Thank you for the report. @georgyo Are you using net-kourier? If so, you can use DomainMapping with websockets by adding an annotation described in this docs https://github.com/knative-sandbox/net-kourier#tips (Please note that the it still does not work with NodePort as knative-extensions/net-kourier#821) For other net-* plugins like net-istio, net-contour, I think it does not work yet. (Note, this issue was tracked by #12601 but it was automatically closed.) |
I am using net-istio, and the I can confirm that the snippet in #12601 resolved the issue. However, I am having trouble grasping why this helps. Specifically, why domainmappings break by default. IE, how/why does the domain mapping change how the request is routed? In the case of wrtc-star.default.k.fu.io and https://wrtc-star.scalable.io/ both are going to the same istio ingress backed by the same knative service. The Envoy filter allows http2 connections, but why were they only getting blocked when used a mapped domain? |
/triage accepted |
/area networking |
Voicing support for this issue because I think it's reasonable to expect websockets to work when using net-istio and DomainMappings. That is all that's needed to reproduce.
I have found through experimentation and through looking at the istio |
For the one who needs a solution on AWS EKS using:
Below is the envoy filter you need to apply:
The snippet above is similar to this #7933 (comment). I modified the This solution works for both |
What version of Knative?
Expected Behavior
Websockets to work out of the box when using domain mappings. Especially since websockets work with the default endpoints that are created.
Actual Behavior
Websockets ONLY work with the default auto generated endpoint, and return a 503 when using a domain mapping.
Steps to Reproduce the Problem
This is very similar to #7933, however that focuses on GKE. The problem seems to exist for all installations. In my case, I am using RKE2 on vultr.
The exact service config I am deploying is here: https://gist.github.com/georgyo/846e72c94ed20b4d2988a2f164f31c4b/64742e75d9ea78b63a3af261784beb6e48e2ccaa
This creates two endpoints
They are pointing to the same service, and as such you would expect both to work or neither to work.
The text was updated successfully, but these errors were encountered: