谷歌云负载均衡器 + GKE 入口

Posted

技术标签:

【中文标题】谷歌云负载均衡器 + GKE 入口【英文标题】:Google Cloud Load Balancer + GKE ingress 【发布时间】:2021-03-18 14:43:54 【问题描述】:

我已按如下方式配置了 Google Cloud Load Balancer:

GFE(前端)监听 :443,仅 https /* 上的主机匹配 + 路径匹配 单个 NEG(网络端点组)作为负载平衡器的后端服务

我不明白,为什么将实例组作为后端服务链接到此负载均衡器(见下文):

实例组后端服务链接到为我的 Kubernetes 集群配置的虚拟机实例。此外,如果我从此负载均衡器中删除实例组后端服务,my-app 仍然可以通过全局 IP 地址访问。 但是,几分钟后,实例组后端服务又回来了,并再次链接到负载均衡器。

在文档或任何示例中将网络端点组与 Google Cloud Load Balancer 一起使用时,我似乎找不到任何关于此行为的信息。

如果您知道实例组后端服务为什么被链接,为什么被移除后又返回,请回复。

【问题讨论】:

在何处以及如何删除您的实例组后​​端? 在负载均衡器详细信息中(通过云控制台),我编辑并删除了实例组后端。所以在上图中,编辑按钮。 您是否保存了更改? (我已经犯了这个错误......) 是的,我确实保存了。我还看到实例组后端已从负载均衡器中删除。几分钟后,我看到它又被添加了。 这可能就是 Google 在与 Kubernetes 一起使用时实现 NEG 的方式吗? 【参考方案1】:

在创建 GKE 入口时,可以在 yaml 上定义几个选项,其中一个选项是有一个 Default Backend defined,将不匹配任何主机或路径的请求发送到它。

默认情况下,当没有指定默认后端时,GKE 会自动添加它自己的小型 Web 应用程序以回复 404 到任何不匹配的请求,根据您的屏幕截图,您看到的附加实例组是在创建时未手动指定此默认后端。

另外手动删除后端不起作用,因为 GKE 始终尝试使所有资源与 YAML 中描述的内容保持同步,如果您想删除它,则需要为不匹配的请求指定 your own default backend。

【讨论】:

这听起来完全合乎逻辑!我错过了文档中的那部分,感谢您指出。让我看看当我指定默认后端时,Google 提供的后端是否会消失。 刚刚验证,确实是这样。我指定了默认后端,实例组后端消失了。

以上是关于谷歌云负载均衡器 + GKE 入口的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云负载均衡器是单点故障吗?我们可以有一个备用副本吗?

无需停机即可配置谷歌云负载均衡器和托管 SSL

同一区域中的 GCP 虚拟机无法 Ping 使用 GKE 内部 LB 入口创建的内部 HTTPS 负载均衡器 IP

将 kubernetes(GKE) 服务层指标发送到 GCP 负载均衡器

通过谷歌云存储和负载均衡器服务反应应用程序,将任何网址映射到索引?

故障周第二弹:谷歌云平台全局负载均衡服务发生中断