You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is not a security vulnerability or a crashing bug
This is not a question about how to use Istio
Bug Description
Hello,
I am using istio to expose grpc and grpc-web protocols on the same application.
On my kubernetes namespace, I have 1 deployment which is my grpc server, and 2 services : one for grpc and another for grpc-web with grpc filters. On my service spec, I specify the protocol (grpc or grpc-web), and I use 2 separate DNS: grpc.test.com and grpc-web.test.com. For this issue I will only talk about the grpc-web DNS : grpc-web.test.com which is connected to grpc-web service.
Now when I deploy my chart with these 3 resources, web app grpc-web.test.com only works if the first service created is the grpc-web - the one with grpc web filters. If not, all the grpc-web traffic is routed over the grpc service (which is the first one created in this case) and it fails because it has no filters.
I used this documentation for explicit protocol selection with service name (grpc/grpc-web) : explicit-protocol-selection
Steps to reproduce
To reproduce the problem it's simple, if you have a grpc server and 2 services grpc + grpc-web, you can delete and recreate the grpc-web service : even after recreation the traffic will continue to be routed on the grpc service (without filter).
logs
This is logs from istio gateway:
when not working (grpc service created before grpc-web)
Is this the right place to submit this?
Bug Description
Hello,
I am using istio to expose grpc and grpc-web protocols on the same application.
On my kubernetes namespace, I have 1 deployment which is my grpc server, and 2 services : one for grpc and another for grpc-web with grpc filters. On my service spec, I specify the protocol (grpc or grpc-web), and I use 2 separate DNS: grpc.test.com and grpc-web.test.com. For this issue I will only talk about the grpc-web DNS : grpc-web.test.com which is connected to grpc-web service.
Now when I deploy my chart with these 3 resources, web app grpc-web.test.com only works if the first service created is the grpc-web - the one with grpc web filters. If not, all the grpc-web traffic is routed over the grpc service (which is the first one created in this case) and it fails because it has no filters.
I used this documentation for explicit protocol selection with service name (grpc/grpc-web) :
explicit-protocol-selection
Steps to reproduce
To reproduce the problem it's simple, if you have a grpc server and 2 services grpc + grpc-web, you can delete and recreate the grpc-web service : even after recreation the traffic will continue to be routed on the grpc service (without filter).
logs
This is logs from istio gateway:
when not working (grpc service created before grpc-web)
istio logs
application logs
when working fine (grpc-web service created before grpc)
istio logs
application logs
It seems that istio does not distinguish between grpc and grpc-web. Is this a bug or something I misunderstood ?
Version
Additional Information
service-grpc-web.yaml
virtualservice-grpc-web.yaml
service-grpc.yaml
virtualservice-grpc.yaml
The text was updated successfully, but these errors were encountered: