在GKE上使用GRPC负载均衡(基于L7,HTTP/2 + TLS)

4
如何在GKE上使用L7(通过HTTP / 2 + TLS的Ingress)为GRPC服务进行负载平衡?
我知道我可以使用L4(TCP层)配置具有“LoadBalancer”类型的服务。但是我想知道是否可以使用Ingress + L7负载平衡来处理HTTP / 2 + TLS。
此外,我看到“不支持将HTTP / 2发送到GKE后端”(请参见https://cloud.google.com/load-balancing/docs/backend-service#HTTP2-limitations)。但我不知道这是否是实际情况。

1
这还不支持。你需要稍等一下,通过 Ingress 进行配置。 :) 但是你可以尝试模仿 Ingress 在 GCP 网络 API 对象上实际执行的操作,并尝试自己使用 HTTP/2 端口进行重建,但我不建议这样做。目前我建议先进行 L4。 :) - ahmet alp balkan
@AhmetB-Google,现在使用Ingress是否可行?如果是,您是否有相关文档的指针?如果不是,您是否有关于L4解决方案的文档指针?这将非常有帮助,因为我无法找到在GKE和GRPC + TLS中获得工作解决方案的方法。 - unludo
1个回答

1

GKE Ingress现在可以使用HTTP/2进行负载均衡, 当您使用https时。

为了在负载均衡器(Ingress控制器)和您的Pod之间获得HTTP/2,您的服务需要一个额外的注释:

apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/app-protocols: '{"my-port":"HTTP2"}'

此外,您的pod必须使用TLS并配置ALPN h2。这可以通过将http2 configuration作为sidecar中的HAProxy来完成。我已经成功地在GKE上使用了这个设置。

谢谢,我已经做好了并且它正在运行,但我没有在这里写。尝试了这个解决方案后,我们开始使用Contour。 - Harlam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接