GKE 上的 GRPC 负载均衡(在 L7 上,HTTP/2 + TLS)

GRPC load balancing on GKE (on L7, HTTP/2 + TLS)

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

我知道我可以选择使用 L4(TCP 层)来配置 "LoadBalancer" 类型的服务。但我想知道我是否可以在 HTTP/2+TLS.

上使用 Ingress + L7 负载平衡

我还看到 "HTTP/2 to backends is not supported for GKE."(在 https://cloud.google.com/load-balancing/docs/backend-service#HTTP2-limitations 上)。但是不知道是不是真的

当您使用 https.

时,GKE Ingress 现在可以 load balance with HTTP/2

要在负载平衡器(入口控制器)和您的 pods 之间获得 HTTP/2,您的服务需要额外的注释:

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

此外,您的 pods 最常使用 TLS 并且拥有 ALPN h2 configured. This can be done e.g. with an HAProxy as a sidecar with http2 configuration。我已在 GKE 上成功使用此设置。