-
Notifications
You must be signed in to change notification settings - Fork 370
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
L4 Support #47
Comments
@youngnick PTAL when you have a moment. Feel free to provide input and any relevant xref's as needed. |
From my understanding most Gateway API implementations have been L7 support only, e.g. HTTPRoute. xref a MetalLB issue I created on this topic: metallb/metallb#847 |
In short, my experience has been that implementing TCPRoute and UDPRoute (that is, doing Layer 4 forwarding) inside a Kubernetes cluster is difficult because, to have it work the way users expect requires tight coordination with the CNI and routing tables, which I think is beyond the scope of this project. An implementation that fills the functions of an Ingress controller, and implements HTTPRoute and TLSRoute, can be done using Envoy proxy as it exists today, without requiring anything other than a way to expose the proxy containers to the internet (which can be as simple as a Service of Type LoadBalancer, a NodePort, or other method.) That's this project. 😄 |
@youngnick Not supporting the TCPRoute and UDPRoute in the Gateway API spec is consistent with Contour's approach - projectcontour/contour#1248 However there have been numerous requests in the community to support UDPRoute particularly for voice applications. The Istio issue is istio/istio#1430 If the view is that Envoy Gateway can't support the TCPRoute or UDPRoute route resources, should the upstream work in the Kubernetes SIG Gateway API remove these routes from the specification? According to the Implementations page, NGINX Kubernetes Gateway and Traefik plan on supporting UDPRoute |
I would definitely like to see both TCP and UDP implemented by this project, so let's discuss after the initial HTTP bootstrapping work is done. Having both TCP and UDP support is a consistent customer request. |
@youngnick Perhaps Im missing something but I dont understand the issue you describe? In an ingress its just bypassing kubeproxy just like httpRoute would? Service LoadBalancers bypass kubeproxy when externalTrafficPolicy is set to Local. I would think a complete gateway implementation would support all 3 route types? |
Per my comment above we will definitely support all 3 types in this project. Where it lands on the roadmap I'm not sure. Let's see how things evolve and who wants to work on what. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions. |
xref #646 for adding UDPRoute support. |
Note: This is a tracking issue and separate issues/PRs are used for specific L4 protocol support. I assigned myself this issue to track the overall progress of L4 support. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
This can be closed when UDPRoute and TCProute support are added. |
closing this since UDPRoute and TCPRoute support is in |
During the 4/29/21 community meeting, support for L4 support, e.g. TCPRoute was discussed. The community should come to an agreement on if L4 should be supported and if so, how.
The text was updated successfully, but these errors were encountered: