繁体   English   中英

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

[英]GCP VM in same region not able to Ping Internal HTTPS Load Balancer IP created with GKE internal LB ingress

我有一个使用版本 1.20.10-gke.1600 部署的 GKE 集群。 我已经使用 GCE 创建了内部入口,并且将内部 ip 分配给了我的内部入口。 但是,我无法从同一区域和网络中的 VM ping 到这个内部入口 IP。 对外部入口的 Ping 工作正常。 我阅读了下面的文档,它说无法 ping 到内部 TCP/UDP,因为它没有部署为网络设备。 但是,我没有看到有关内部 HTTPS 负载平衡器的任何信息。

https://cloud.google.com/load-balancing/docs/internal/setting-up-internal#no-ping-lb

ping 10.128.0.174 用 32 字节数据 ping 10.128.0.174:请求超时。 10.128.0.174 的 Ping 统计信息:数据包:已发送 = 1,已接收 = 0,丢失 = 1(100% 丢失),

问题是为什么我无法 ping 通到我的内部 LB 入口 IP。 我正在尝试从同一区域和网络中的 VM ping。 Curl 到内部入口 IP 工作但不 ping ..

集群 IP 只是(正如Gari Singh 所写)一个不会响应ping的虚拟设备。 这是预期的行为。

关于ping LB 的内部地址的文档你清楚地链接说:

此测试演示了预期的行为:您无法 ping 负载均衡器的 IP 地址。 这是因为内部 TCP/UDP 负载平衡器是在虚拟网络编程中实现的——它们不是单独的设备。

然后解释原因:

内部 TCP/UDP 负载平衡是使用来宾操作系统中的虚拟网络编程和 VM 配置实现的。 在 Linux VM 上,Linux 来宾环境通过在来宾操作系统路由表中安装路由来执行本地配置。 由于这个本地路由,到负载均衡器的 IP 地址的流量会停留在负载均衡的 VM 本身上。 (此本地路由与 VPC 网络中的路由不同。)

所以 - 例如,如果您尝试设置某种自定义健康检查,请确保,还要考虑从集群内部“ping”LB 的内部地址也是不可靠的:

不要依赖于从正在负载平衡的 VM 向内部 TCP/UDP 负载平衡器发出请求(在该负载平衡器的后端服务中)。 请求始终发送到发出请求的 VM,而健康检查信息将被忽略。 此外,后端可以响应使用协议和目标端口发送的流量,而不是在负载平衡器的内部转发规则上配置的那些。

更:

当发送请求的后端 VM 具有 --next-hop-ilb 路由且下一跃点目标是其自己的负载平衡 IP 地址时,此默认行为不适用。 当 VM 以路由中指定的 IP 地址为目标时,请求可以由另一个负载平衡的 VM 响应。

例如,您可以使用 10.20.1.1 的 --next-hop-ilb 创建目标路由 192.168.1.0/24。

然后,负载均衡器后面的 VM 可以定位 192.168.1.1。 由于该地址不在本地路由表中,因此将其发送到 VM 以使 Google Cloud 路由适用。 假设没有其他更高优先级的路由适用,则选择 --next-hop-ilb 路由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM