问题描述
我尝试使用GKE做的是:
GRPC客户端-> L4 LB-> GRPC服务器(在Pod内部)
我试图在客户端获得“连接被拒绝”。
它与ESPv1(可扩展服务代理-使用Nginx的google端点组件)一起正常工作。
我想知道是否有人成功完成了此事,或者您是否对为什么没有ESP不能解释问题有一个解释。
如果需要,我可以发布我的配置。
更新
已经提出了使用Nginx的解决方案。 ESP也包括Nginx,所以我想知道是否可以避免使用Nginx或任何代理/反向代理,如果没有,为什么?
Nginx正在做什么以使grpc连接正常工作?
解决方法
(!?)应该在没有代理的情况下工作。我有信心做到这一点,但是找不到我写给您分享的博客文章。我不记得L4 LB不起作用的明显原因(由于HTTP / 2,L7是另外一个故事)。
使用NGINX肯定没有要求;最新版本的ESP(与Google的许多其他代理一样)现在使用Envoy。
您可以直接连接到服务的其中一个Pod吗?您可以尝试kubectl port-forward
到Pod,然后直接从客户端使用该endpoint:port。
您可能希望使用grpcurl
来避免使用客户端进行测试。
使用L4负载平衡器当然不会给您gRPC负载平衡。
,构建docker映像
您必须适应使用的dockerfile
$ docker build -f Dockerfile -t gcr.io/chemidy-cloud/k8s/backend-grpc-greeter。
或访问:https://itnext.io/deploy-go-grpc-services-behind-loadbalancer-on-gke-95df6496b026