У меня есть локальный клиент и сервер gRPC, и я могу общаться через них через HTTP2 через localhost. Но когда приложения развертываются в среде разработки с использованием Kubernetes и Docker, я не могу вызвать сервер gRPC из клиентского приложения.
Я подключаюсь к клиенту, используя этот код:
ManagedChannel managedChannel = ManagedChannelBuilder.forAddress(host, port).usePlaintext().build();
В DEV: Вот мой application.yml из серверного приложения.
grpc:
port: 6565
enabled: true
У меня сервер gRPC работает на порту 6565, поэтому я изменил следующее в клиентском приложении. yml также
taxgRPC:
host: bpstax-ws.g-dev4.svc.rnq.k8s.copart.com
port: 6565
Когда мой клиент вызывает сервер, сервер не получает никаких входящих запросов, и клиент терпит неудачу, выдавая следующее исключение:
Caused by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: bpstax-ws.g-dev4.svc.rnq.k8s.copart.com/10.148.2.194:6565
Когда я захожу вЯ вижу, что порт слушает сервер gRPC.
[dedas@rndcks401 ~]$ kubectl exec -ti bpstax-g-dev4-v029-74mj2 -n g-dev4 -- bash
bash-4.1$ netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6565 0.0.0.0:* LISTEN 1/java
tcp 0 0 0.0.0.0:38957 0.0.0.0:* LISTEN 1/java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1/java
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 1/java
Мне нужна помощь по подключению к этому серверу gRPC. Пожалуйста, дайте мне знать, если требуются какие-либо пояснения / код.