我的集群正在本地运行。目前,当我尝试 ping 从 Metal LB 分配给它的服务类型 LoadBalancer 的外部 IP 时。我从托管 Pod 的虚拟机之一收到回复 - 目标主机无法访问。这是因为 Pod 位于内部 kubernetes 网络上(我使用的是 calico)并且无法 ping 通。对场景的详细解释可以帮助更好地理解它。此外,所有服务均按预期运行。我只是想知道这背后的确切原因,因为我是新手。任何帮助都感激不尽。谢谢
最佳答案
LoadbalancerIP 或外部 SVC IP 永远无法 ping 通。
当您定义 LoadBalancer 类型的服务时,您是在说我想在 TCP 端口 8080 上监听,例如:在此 SVC 上。
这是您的外部 SVC IP 唯一会响应的内容。
ping 将是与 TCP 端口 8080 的目标不匹配的 UDP ICMP 数据包。
你可以做nc -v <ExternalIP> 8080
进行测试。
或者
使用像 mtr
这样的工具并通过 --tcp --port 8080 进行测试
关于kubernetes - 当我们尝试 ping 负载均衡器 (kubernetes) 类型的服务的外部 IP 时,到底会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62238074/