是否可以通过不带ESP的GKE通过L4 LB直接连接grpc客户端?

问题描述

我尝试使用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