Ask your question here:
Hey all,
We are trying to get a gRPC python server to run as a Knative service that supports gRPC-web. Now after browsing around the docs/the overall internet we couldn't find many resources as to how to get this to work.
A brilliant blog written by Venil Noronha offers a guide as to deploy a gRPC-web application using k8s, istio and Envoy. Having read that blog and trying to replicate it with Knative doesn't seem to be as easy as Knative abstracts parts of this process away. What I suspect to be the issue with this transfer is that the k8s service port is not picked up by istio as a gRPC port hence rendering the EnvoyFilter useless. I might be wrong with this hypothesis, since my knowledge is not that thorough in this domain yet..
We did, however, get the protocol to work with gRPC-node following the gRPC PR in combination with the knative gRPC server - Go example. I am aware that gRPC-web works differently as it relies on an Envoy proxy to have the HTTP1 connection to be "upgraded" to a HTTP2 connection.
Bottomline, we need to figure out if there is a way to use an EnvoyFilter to make gRPC-web work with Knative. Our attempts thus far haven't been fruitful.
Thanks for taking time to read through this :) and hopefully anyone has been through this kind of problem already..
Cheers!
Ask your question here:
Hey all,
We are trying to get a gRPC python server to run as a Knative service that supports gRPC-web. Now after browsing around the docs/the overall internet we couldn't find many resources as to how to get this to work.
A brilliant blog written by Venil Noronha offers a guide as to deploy a gRPC-web application using k8s, istio and Envoy. Having read that blog and trying to replicate it with Knative doesn't seem to be as easy as Knative abstracts parts of this process away. What I suspect to be the issue with this transfer is that the k8s service port is not picked up by istio as a gRPC port hence rendering the EnvoyFilter useless. I might be wrong with this hypothesis, since my knowledge is not that thorough in this domain yet..
We did, however, get the protocol to work with gRPC-node following the gRPC PR in combination with the knative gRPC server - Go example. I am aware that gRPC-web works differently as it relies on an Envoy proxy to have the HTTP1 connection to be "upgraded" to a HTTP2 connection.
Bottomline, we need to figure out if there is a way to use an EnvoyFilter to make gRPC-web work with Knative. Our attempts thus far haven't been fruitful.
Thanks for taking time to read through this :) and hopefully anyone has been through this kind of problem already..
Cheers!