kubernetes - 当我们尝试 ping 负载均衡器 (kubernetes) 类型的服务的外部 IP 时,到底会发生什么?

标签 kubernetes calico metallb

我的集群正在本地运行。目前,当我尝试 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/

相关文章:

kubernetes - 如何从我的 kubernetes 集群中删除/移除 calico cni

kubernetes - 不同主机中的 pod 和服务以及 pod 之间的 calico 网络连接失败

azure - K8s azure VM 节点 - 可以从主节点 ping 工作节点,但无法 ping 工作节点上的 pod

kubernetes - 为什么许多官方 Helm 图表在Values.yaml中都包含密码/凭据?

azure - 将容器暴露给专用网络

permissions - 用于cluster-admin的GKE clusterrolebinding失败,出现权限错误

kubernetes - Microk8s、MetalLB、ingress-nginx - 如何路由外部流量?

浏览器无法访问 Kubernetes MetalLB 外部 IP

kubernetes - 从我的裸机 k8s 节点向世界公开服务

kubernetes - Kubernetes 中 docker exec bash 的 kubectl 等价物是什么?