对于混合HTTPS和gRPC后端的用例,我试图理解GCP LoadBalancer。 LoadBalancer文档似乎表明您可以/应该使用HTTP(S)LoadBalancer,因为它“包括HTTP / 2”。对于后端服务,我似乎能够指定一个名为“ grpc”的端口并将其设置为数字7000,但是如果我使用gcloud命令查看我的后端服务:
gcloud compute backend-services list --format=json
显示我的服务使用端口名“ grpc”(正确)和端口“ 80”(错误)。即使提示我实例组已命名端口,也可以(并且确实)选择“ grpc:7000”。
在前端,我只能为HTTP选择端口80和8080,或者为HTTPS选择443。没有提到HTTP / 2,但是我想“ HTTPS包含HTTP / 2”。
我是对的,我无法完全使用第7层LoadBalancer进行场景编程吗?该文档在端口上不是很明确,如果我在Web上搜索gRPC,则会在LoadBalancing Kubernetes托管的应用程序上获得大量的故事。
答案 0 :(得分:0)
要使用gRPC,您需要使用HTTP / 2
要将gRPC与Google Cloud Platform应用程序一起使用,您必须通过HTTP / 2端到端代理请求。为此,请使用HTTP(S)负载均衡器:
配置HTTPS负载平衡器。 启用HTTP / 2作为从负载均衡器到后端的协议。
HTTP / 2和HTTPS不相同,但是H2(HTTPS / 2)只能在HTTPS上运行。但是默认情况下,未启用H2。
要将gRPC与Google Cloud Platform应用程序一起使用,您必须通过HTTP / 2端到端代理请求。为此,请使用HTTP(S)负载均衡器:
配置HTTPS负载平衡器。 启用HTTP / 2作为从负载均衡器到后端的协议。
请参阅:https://cloud.google.com/load-balancing/docs/https/,以获取更多信息。