application-gateway-kubernetes-ingress
application-gateway-kubernetes-ingress copied to clipboard
gRPC/HTTP2 support
When will AGIC support http2? This is becoming more important as we deploy gRPC services to AKS.
I know I can workaround this with grpc.web but it is adding extra steps to our development.
Please provide an ETA on the gRPC support
We were planning to move our applications to AGIC, but cannot, since we rely on gRPC. gRPC-web is not an alternative since it does not support bidirectional streaming. We would really appreciate if you could give us an ETA. If it takes longer, than we have to find another solution.
We are planning to work on gRPC in CY22, we should have a better idea of approximate ETA around Feb 2022.
Any update on this @mscatyao?
HI @mscatyao is there an update of the gRPC ETA?
+1
If working with AKS, the nginx ingress can be modified to receive gRPC traffic in Azure.
We are planning to work on gRPC in CY22, we should have a better idea of approximate ETA around Feb 2022.
Any update on supporting gRPC? Is there a change it will be in CY22?
Any updates on this @mscatyao ? We have been using gRPC for over two years now and been forced to use both AGW and Azure Firewall. HTTP3 is just around the corner and we still don't have HTTP2 support for the backend pool in any of the current Azure products.
@jovicde any updates on supporting HTTP2 or gRPC in the AGIC?
@jovicde any updates on supporting HTTP2 or gRPC in the AGIC?
Not that I am aware of. We switched to SignalR due to lack of gRPC support in Azure. Also, SignalR supports true bi-di communication, while in gRPC we had to deal with infinite function calls to eventually fire server-sent events. Felt a bit like the forever frame in the good old days.
We are adapting our services to use HTTP/2 it would be necessary for us to have this feature.
Is there any update on gRPC support?
Microsoft just told me
This topic is still in the backlog of the team, and we do not have an ETA on it.
Thanks for passing this on @e96wic and good to know, though seems to confirm this is not their priority and no point holding breath on it. No ETA = don't count on it any time soon, if i read between the lines.
Hello, is there yet support for HTTP2?
@mscatyao is this on your schedule for 2023?
I'm using ApplicationGateway in front of my Kubernetes Cluster (AKS). I've deployed a container that I want to support Bidirectional streaming.
When running locally (in VisualStudio on laptop) the code does (and is expected to) "wait" here await foreach (var y in z.ResponseStream.ReadAllAsync(ct)) { code is supposed to wait here... } [all this works as expected on local laptop]
When the code is deployed behind the ApplicationGateway any attempts to access the ResponseStream doesn't appear to be an option. System.InvalidOperationException: Can't write the message because the request is complete.
I get an IOException when using ApplicationGateway while attempting to try and support the Bidirectional streaming. Example: IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
This is an example proto file for context. rpc SubscribeBiDirectionalStream (stream SubscriberResults) returns (stream SubscriberResult);
I suspect based on the comments above that the ApplicationGateway can't support bidirectional streaming. I've tried gRPC, and gRPC-Web and can't get either to work behind the ApplicationGateway with bidirectional streaming.
Should I just drop the ApplicationGateway and switch to a direct NGINX ingress controller? Any timelines, thoughts on how to go about supporting bidirectional streaming/websockets?
We switched completely to https://github.com/traefik/traefik, @jcoxcomdata it might be an option for you.
Hello guys Is there any news about supporting gRPC in AGIC?
@akshaysngupta Any comment about this feature? Is there still any plan? It's quite critical if we want to use AGIC.
We are experiencing faulty behavior because HTTP2
is enabled
on Azure Application Gateway and I now find out AGIC does not support this. Weird functionality mismatch IMO
We need this :-(
Its good to see that I am not the only one who finds this weird 🤣
Hey guys, Is there any news about this?)
MS seems to not care about feature that does not bring revenue... (or promotes competitors products like grpc).
Switched to full fledged Istio as a Work-Arround/ Final solution as it seems...
Is using the Azure Load Balancer with a different ingress controller a viable alternative?
You can mix and match ingress controllers. We use both the appgateway and the nginx ingress controllers, nginx will use the load balancer deployed for the nodepool.
Another annoying quirk of the appgateway is that if you have frontdoor/cloudflare at the top of the ingress, the appgateway will rewrite X-Forward headers from frontdoor/cloudflare, you need to put in a special policy to re-write them again to what frontdoor outputs.
If we use the default Nginx ingress controller to publish services what's the reason for mixing it with AGW - you can publish APIs/gRPCs/frontend/etc. So what's the reason to use AGW at all? (the logical question isn't it?)
But for me, it's rather a question of not using lots of solutions and not creating chaos in the system) (except of using benefits of AGW by default)