GKE中grpc web服务的Gcloud Cloud Armor-有工作配置吗



我有一个基于grpc的web服务,它在Google Kubernetes引擎中运行,我在应用Cloud Armor时运气不佳。目前,该web服务是通过外部负载均衡器类型的Kubernetes服务公开的,该服务绑定到Gcloud中的外部TCP/UDP网络负载均衡器,一切都很好。问题是Cloud Armor无法应用于外部TCP/UDP网络负载平衡器。因此,我尝试通过Node Port和Cluster IP类型的Kubernetes服务公开web服务,以便能够绑定到Ingress,该Ingress将使用Cloud Armor支持的负载均衡器(Global External HTTP(S(、Global External HTTP(S((经典(、External TCP proxy或External SSL proxy(。但我似乎找不到一个真正正确处理grpc流量并进行工作健康检查的配置。其他人能用Cloud Armor保护GKE中运行的基于grpc的web服务吗?

更多背景:该web服务是基于Go的,并且有两个功能来促进Kubernetes的健康检查。首先,它支持带有grpc健康探测器的标准grpc健康协议,并且它所内置的容器也具有grpc健康探测可执行文件(这看起来可以正确地用于pod的活跃度/就绪性检查(。其次,它还在侦听http/2 grpc流量的同一端口上的"/"路由上提供http(1(200/OK。web服务使用CA签名的证书和4096位密钥使用TLS运行,并且当前终止TLS客户端流量本身。但是,如果可以使TLS流量适用于grpc调用,我愿意在边缘/负载均衡器上终止TLS流量。

Cloud Armor SSL TCP代理可用,但有一些限制:

用户可以重用现有的Cloud Armor安全策略(后端安全策略(或创建新策略。

TCP/SSL代理后端服务仅支持具有以下规则属性的安全策略:

  • 匹配条件:IP、Geo、ASN

  • 操作:允许、拒绝、限制、基于速率的禁止

可用性和限制:

  • 可以在控制台中或通过API/CLI 创建/配置安全策略

  • 新的或现有的安全策略只能通过API/CLI连接到由TCP/SSL代理提供的后端服务。

  • 要启用云日志记录事件,请利用CLI/API在相关后端服务上启用TCP/SSL代理日志记录,如负载平衡器文档中所述

有一种网络负载均衡器选项即将上市,目前处于GA之前。它预计将在2023年上半年的某个时候全面上市。

最新更新