EKS删除NodePort服务后仍可外部访问的异常问题咨询
问题解答
这是正常行为,和AWS无关,本质是TCP连接的底层机制导致的,具体原因如下:
- 删除NodePort服务后,Kubernetes会停止节点上对应旧端口的监听,但已建立的TCP连接不会被强制终止。原访问设备之前已经和节点完成了TCP三次握手,建立了稳定连接,只要这条连接没主动关闭、没触发超时,就能继续通过旧端口和后端Pod通信。
- 重建服务分配新端口后,原设备能继续用旧端口访问,是因为设备本地网络栈保留了这条已建立的连接记录,发起数据传输时不需要重新建立连接,自然不会用到新端口。而其他设备/节点没有这条历史连接,发起新请求时节点旧端口已无监听,所以无法访问。
- 断开重连WiFi后,原设备的本地TCP连接缓存被清空,再次发起请求时会尝试新建连接,此时节点旧端口已无Kubernetes的监听进程,因此会出现连接拒绝。
内容的提问来源于stack exchange,提问作者rodolk
相关产品推荐
相关产品推荐

