Hi. I use both of nginx ingress controller and ingress gateway. Like this.
apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/backend-protocol: GRPC nginx.ingress.kubernetes.io/upstream-vhost: sample.sample.com name: sample namespace: sample spec: rules: - host: sample.sample.com http: paths: - backend: serviceName: custom-ingressgateway servicePort: 80 tls: - hosts: - sample.sample.com secretName: sample.com
And My VirtualSerivce is very simple
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: sample namespace: sample spec: gateways: - sample-gateway hosts: - sample.sample.svc.cluster.local - sample.kakaopay.com http: - match: - port: 27000 route: - destination: host: sample.sample.svc.cluster.local port: number: 27000
When I use simple http(s) request, there is no problem. However when I use GRPC request, sometimes nginx gives below error.
no connection data found for keepalive http2 connection while sending request to upstream
When I use only nginx, it works well.
I guess the problem is coming between nginx and ingress gateway.
I use nginx config is something like below.
keep-alive: "60" upstream-keepalive-connections: "2048" upstream-keepalive-requests: "3" upstream-keepalive-timeout: "10"
If I set
0, there is no problem.
However I think that is not a solution because that mean turn off the keep-alive.
So I believe if I set some config for keep-alive request on ingress gateway, I can fix this.
However I don’t know how I can adjust.
Should I rebuild proxyv2 image?
Any suggestions or advice will be very appreciated.