Google cloud platform 如何为HTTPS和gRPC混合流量设置GCP负载平衡器

Google cloud platform 如何为HTTPS和gRPC混合流量设置GCP负载平衡器,google-cloud-platform,load-balancing,grpc,Google Cloud Platform,Load Balancing,Grpc,我试图理解GCP LoadBalancer对于混合HTTPS和gRPC后端的使用情况。LoadBalancer文档似乎表明您可以/应该使用HTTP(S)LoadBalancer,因为它“包括HTTP/2”。对于后端服务,我似乎能够指定一个命名的“grpc”端口并将其设置为7000号,但如果我使用gcloud命令查看我的后端服务: gcloud compute backend-services list --format=json 我的服务显示使用端口名“grpc”(正确)和端口“80”(不正确

我试图理解GCP LoadBalancer对于混合HTTPS和gRPC后端的使用情况。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层负载平衡器,对吗?关于端口的文档不是很明确,如果我在Web上搜索gRPC,我会得到大量关于负载平衡Kubernetes托管应用程序的故事。

为了使用gRPC,你需要使用HTTP/2

要在Google云平台应用程序中使用gRPC,您必须通过HTTP/2端到端代理请求。要使用HTTP(S)负载平衡器执行此操作,请执行以下操作:

配置HTTPS负载平衡器。 启用HTTP/2作为从负载平衡器到后端的协议

HTTP/2和HTTPS不是一回事,但是H2(HTTPS/2)只能在HTTPS上工作。但默认情况下H2未启用,您需要启用它

要在Google云平台应用程序中使用gRPC,您必须通过HTTP/2端到端代理请求。要使用HTTP(S)负载平衡器执行此操作,请执行以下操作:

配置HTTPS负载平衡器。 启用HTTP/2作为从负载平衡器到后端的协议


请参阅:了解更多信息。

Parth,感谢您的回复。我自己已经发现了这一点,但我担心端口值仍然被标注为端口80而不是7000,即使名称“grpc”是正确的。此外,我无法找到如何在前端配置不同的端口号;HTTPS似乎解决了443上的问题。通过这种方式,我无法将Web流量与gRPC流量分开。您可以为HTTPS负载平衡器选择的端口有限是的。TCP/SSL代理负载平衡器提供了更多的选项,您可以从中进行选择:25、43、110、143、195、443、465、587、700、993、995、1883、5222,但即使这样也不包括您正在寻找的端口。看看是否可以使用上面的端口。如果不是,那么你唯一的选择就是网络TCP/UDP负载均衡器。为了澄清你的答案:HTTP/2不需要HTTPS。这是特定于供应商的要求,不是协议要求。我相信H2只能在Https上工作,而不是特定于供应商的要求。如果你想让你的H/2请求在互联网上传播,你必须使用Https。如果你有任何证据支持其他建议,很高兴被纠正。