Фильтр EnvoyFilter для grpc_json_transcoder в istio - PullRequest
0 голосов
/ 09 июня 2019

istio EnvoyFilter не преобразует службу http1X в http2X (GRPXC)

Я предоставил службу GRP в Azure AKS и istio-1.1.6, моя служба GRPC прослушивает порт 50051, у меня есть фильтр EnvoyFilter для отслеживания JSON в GRPC, но в моей службе по-прежнему поступает запрос http 1X, даже когда я его вызываю через запрос клиента GRPC (Http2.o)

Envoy Filer

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: envoy-proxy
  namespace: istio-system
spec:

  filters:
  - listenerMatch:
      listenerType: GATEWAY (tried with INBOUD_SIDECAR too)
      listenerProtocol: HTTP
    insertPosition:
      index: BEFORE
      relativeTo: envoy.router
    filterName: envoy.grpc_json_transcoder
    filterType: HTTP
    filterConfig:
      proto_descriptor: "/mnt/azure/descriptor_set.pb"
      services:
      - x.x.x.HelloService
      printOptions:
        alwaysPrintPrimitiveFields: True


GRPC Service

---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: c7-service
  name: c7-service
spec:
  type: ClusterIP

  ports:
  - name: "50051"
    protocol: TCP
    port: 80
    targetPort: 50051

  selector:
    app: c7-service
status:
  loadBalancer: {}

Ошибка:

Jun 09, 2019 12:13:59 AM io.grpc.netty.shaded.io.grpc.netty.NettyServerTransport notifyTerminated
INFO: Transport failed
io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception: Unexpected HTTP/1.x request: POST 
        at io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:85)
        at io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.readClientPrefaceString(Http2ConnectionHandler.java:314)
...