我一直在 GCP 上使用 K8S(GKE 及其平台提供 HTTPS 全局负载均衡器),但是当 K8S 中有数百个域和数十个独特的公共后端站点时,发现负载均衡器很难管理,每个站点都有自己的后端服务定义和插入单个负载平衡器。
集群没有使用本机 VPC IP 地址设置,因此每个站点都获得了为其定义的 NodePort 服务,并且该 NodePort 被添加到后端服务中。因此,来自负载均衡器的健康检查有些错误,因为单个 pod 给出错误响应意味着整个组将被视为不健康,而实际上该 pod 可能完全位于集群中的其他位置。同样,由于 NodePort 配置,请求可能会被路由到一个组(区域)并通过 K8S 服务获取路由到另一个区域中的另一个节点以进行处理。
如果集群启用了本机 VPC IP,则可以使用网络端点组 (NEG) 配置站点并直接路由到 pod,处理迂回路由和健康检查。但它不会降低负载均衡器的复杂性。
但是向 K8S 添加网关,如 Istio 网关、nginx、大使、traefik 等,都将提供一个层,可以在 K8s 上配置第 7 层路由,这将最大限度地减少配置数量,并添加谷歌负载均衡器缺少的功能.
这种添加第 7 层网关的方法是否会降低应用程序的整体可靠性?