如果无法通过服务访问pod,应该根据下面的列表进行排查:

    • 首先,确保从集群内连接到服务的集群IP, 而不是从外部。
    • 不要通过ping服务IP来判断服务是否可访问(请记住,服务的集群IP是虚拟IP,是无法ping通的)。
    • 如果已经定义了就绪探针,请确保它返回成功;否则该pod不会成为服务的一部分。
    • 要确认某个容器是服务的一部分,请使用kubectl get endpoints来检查相应的endpoints对象。
    • 如果尝试通过FQDN或其中一部分来访问服务(例如,myservice.mynamespace.svc.cluster.local或myservice.mynamespace),但并不起作用,请查看是否可以使用其集群IP而不是FQDN来访问服务。
    • 检查是否连接到服务公开的端口,而不是目标端口。
    • 尝试直接连接到pod IP以确认pod正在接收正确端口上的连接。
    • 如果甚至无法通过pod的IP访问应用,请确保应用不是仅绑定到localhost。