Let's say, I have two pods A and B are running on K8s. A(source) sends a TCP request to B(dest) and both have a TCP established connection, but somehow pod A is stopped suddenly and don't send FIN package to close this TCP connection, so the TCP connection is still established on pod B and on pod A has gone. But the response of weave-scope-app API of deployment B still has the inbound connection from A and the response of weave-scope-app API of deployment A still have the outbound connection to B even pod A doesn't send TCP request to B anymore.
What you expected to happen?
Don't see the connection between A and B or at least the don't have the outbound connection on deployment A
What happened?
The connection from A to B still exist on both deployment A and deployment B when call weave-scope-app api
How to reproduce it?
Deploy two deployment A and B like Nginx for example
From pod A telnet to pod B and you can see the TCP established connection on pod A and B by check netstat -nat
From pod A install the iptables and drop outbound of FIN package
iptables -I OUTPUT --protocol tcp --tcp-flags FIN FIN -j DROP
Kill the telnet command from pod A or crtl-c
You can see the TCP connection still established on pod B but not on pod A
Call API of weave-scope-app to verify the inbound connection of pod B and outbound connection of pod A still there
http:///api/topology/kube-controllers/;%3Cdeployment%3E
Versions:
Weave scope: 1.13.1
Kubernetes: 1.13.3
Docker on kubernetes node: 18.6.3
Let's say, I have two pods A and B are running on K8s. A(source) sends a TCP request to B(dest) and both have a TCP established connection, but somehow pod A is stopped suddenly and don't send FIN package to close this TCP connection, so the TCP connection is still established on pod B and on pod A has gone. But the response of weave-scope-app API of deployment B still has the inbound connection from A and the response of weave-scope-app API of deployment A still have the outbound connection to B even pod A doesn't send TCP request to B anymore.
What you expected to happen?
Don't see the connection between A and B or at least the don't have the outbound connection on deployment A
What happened?
The connection from A to B still exist on both deployment A and deployment B when call weave-scope-app api
How to reproduce it?
netstat -nat
iptables -I OUTPUT --protocol tcp --tcp-flags FIN FIN -j DROP
Versions:
Weave scope: 1.13.1 Kubernetes: 1.13.3 Docker on kubernetes node: 18.6.3