如何为HTTPS和gRPC混合流量设置GCP LoadBalancer

时间:2019-12-09 11:15:15

标签: google-cloud-platform load-balancing grpc

对于混合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托管的应用程序上获得大量的故事。

1 个答案:

答案 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/,以获取更多信息。