【发布时间】:2022-11-11 15:28:41
【问题描述】:
我有一个在 Google Kubernetes Engine 中运行的基于 grpc 的 Web 服务,但我没有将 Cloud Armor 应用到它上面。 目前,此 Web 服务通过外部负载均衡器类型的 Kubernetes 服务公开,该服务绑定到 Gcloud 中的外部 TCP/UDP 网络负载均衡器,并且一切正常。 问题是 Cloud Armor 无法应用于外部 TCP/UDP 网络负载平衡器。 因此,我尝试通过节点端口和集群 IP 类型的 Kubernetes 服务公开 Web 服务,以便能够绑定到将使用 Cloud Armor 支持的负载均衡器的 Ingress(全局外部 HTTP(S)、全局外部 HTTP (S)(经典)、外部 TCP 代理或外部 SSL 代理)。 但我似乎找不到真正正确处理 grpc 流量并进行运行状况检查的配置。 有没有其他人能够在受 Cloud Armor 保护的 GKE 之外获得基于 grpc 的 Web 服务?
更多背景: Web 服务是基于 Go 的,并且有两个功能来促进 Kubernetes 健康检查。首先,它支持带有 grpc-health-probe 的标准 grpc 健康协议,并且它内置的容器也具有 grpc-health-probe 可执行文件(这对于 pod 活跃度/就绪性检查来说似乎可以正常工作)。其次,它还在侦听 http/2 grpc 流量的同一端口上的“/”路由上提供 http(1) 200/OK。 Web 服务使用 CA 签名证书和 4096 位密钥通过 TLS 运行,并且当前终止 TLS 客户端流量本身。但我愿意让 TLS 流量在边缘/负载均衡器处终止,如果它可以用于 grpc 调用。
【问题讨论】:
标签: kubernetes grpc google-cloud-armor