首页 > 解决方案 > GKE 上的 GRPC 负载平衡(在 L7、HTTP/2 + TLS 上)

问题描述

如何在 L7 上的 GKE 上为 GRPC 服务进行负载平衡(使用 Ingress over HTTP/2 + TLS)?

我知道我可以选择使用 L4(TCP 层)来配置具有“LoadBalancer”类型的服务。但我想知道是否可以通过 HTTP/2+TLS 使用 Ingress + L7 负载平衡。

我还看到“GKE 不支持到后端的 HTTP/2”。(在https://cloud.google.com/load-balancing/docs/backend-service#HTTP2-limitations上)。但不知道是不是真的。

标签: kubernetesgoogle-cloud-platformgrpchttp2google-kubernetes-engine

解决方案


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

要在负载均衡器(入口控制器)和您的 pod 之间获取 HTTP/2,您的服务需要一个额外的注释:

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

此外,您的 pod 大多使用 TLS 并配置了ALPN h2。这可以通过一个 HAProxy 作为带有h​​ttp2 配置的 sidecar 来完成。我已经在 GKE 上成功使用了这个设置。


推荐阅读