How to consume external gRPC service?


#1

Hi All,
Is it possible to consume an external gRPC service? I have been unable to get it to work. when I attempt to call the external service, I receive an rpc error: code = Unavailable desc = upstream connect error or disconnect/reset before headers on my go client. Isito proxy also similarly reports a 200 UF status/response flag.

I tried registering the external service with a ServiceEntry like so:

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: grpc-service
spec:
  hosts:
  - external.grpc.service.io
  ports:
  - name: grpc
    number: 7777
    protocol: GRPC
  location: MESH_EXTERNAL
  resolution: DNS

I appreciate any help in setting this up. Thanks.


#2

Maybe you need egress set up to allow the connection?


#3

Is egress only needed for grpc? I have set up http, https, and tcp external services with no issue before. It’s only grpc which seems to have problems.


#4

Is your egress configured to allow http/2 since gRPC is on top of that?


#5

try http2 as a protocol?