-
Notifications
You must be signed in to change notification settings - Fork 27
Not able to expose grpc app though route still showing http1 #28
Description
Describe the bug
Hi All,
I am trying to expose a grpc app through route but could not get success. I build a new image with latest version of nginx 1.9.x.
I created a new router on other node with default router.
To reproduce
Steps to reproduce the behavior:
-
Build a new image with latest nginx 1.9.x version.
-
deploy the router.
oc adm router router-nginx --images=docker-registry.default.svc:5000/openshift/nginx-openshift-router:0.3 --type='' --selector='router=nginx' --force-subdomain='${name}-${namespace}.testingrouter.com -
Run a sample grpc app, which is working fine when I try to access through service name, from one of node of OCP cluster. As shown below.
[root@app2dev ~]# docker run namely/grpc-cli ls grpc-pod.test-secret.svc.cluster.local:50051
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection
helloworld.Greeter -
I add this env variable to dc of nginx router, showing on ouputt of oc describe dc/router-nginx
ROUTER_USE_HTTP2: true -
This is my route
[root@bastiondev ~]# oc describe route grpc-pod
Name: grpc-pod
Namespace: test-secret
Created: 18 hours ago
Labels:
Annotations: nginx.router.openshift.io/grpc=true
openshift.io/host.generated=true
Requested Host: grpc-pod-test-secret.appseaadev.iamdg.net.ma
exposed on router router 18 hours ago
grpc-pod-test-secret.testingrouter.com exposed on router router-nginx 18 hours ago
Path:
TLS Termination: passthrough
Insecure Policy:
Endpoint Port: grpc-port
Service: grpc-pod
Weight: 100 (100%)
Endpoints: 172.251.13.223:50051
[root@bastiondev ~]#
- Already enabled TLS passthrough
[root@bastiondev ~]# oc get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
grpc-pod grpc-pod-test-secret.appseaadev.iamdg.net.ma ... 1 more grpc-pod grpc-port passthrough None
Getting below error.
[root@app2dev ~]# docker run --add-host grpc-pod-test-secret.testingrouter.com:10.80.243.13 namely/grpc-cli ls grpc-pod-test-secret.testingrouter.com
Received an error when querying services endpoint.
ServerReflectionInfo rpc failed. Error code: 14, message: failed to connect to all addresses, debug info: {"created":"@1611892660.199138688","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":4143,"referenced_errors":[{"created":"@1611892660.199125817","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":398,"grpc_status":14}]}
[root@app2dev ~]#
10.80.243.13, this is the IP on which nginx-router running. and I am adding entry for dns in /etc/hosts with --add-host in above command.
Expected behavior
It should return output like below.
[root@app2dev ~]# docker run --add-host grpc-pod-test-secret.testingrouter.com:10.80.243.13 namely/grpc-cli ls grpc-pod-test-secret.testingrouter.com
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection
helloworld.Greeter
It is still serving http1, I tried with bloomrpc to access it, return this error.
{
"error": "14 UNAVAILABLE: Trying to connect an http1.x server"
}
Your environment
Dev environment
- NGINX Router version
- Nginx 1.9.x
- Openshift version
- 3.11
- NGINX or NGINX Plus version
Nginx
Additional context
Add any other context about the problem here. Any log files you want to share.
What I am missing, Could you help to fix this.
--
BR
Amit Bondwal