I use k3s + containerd to deploy my service. there are multi services running on a fat container which share the same network with host by set hostnetwork=true in the deployment definition. services on this container communicate with each other using HTTP. I found sometimes HTTP communication will be interrupt by strange RST right after connection established.
I want to know in which case will causing the first RST which interrupt the normal TCP connection ?
following are some tcp traffic captured
- TCP handshake success, then server received the HTTP request and try to send response to client after process, but a RST right after handshake cause client socket to be closed. wireshark packet captured
- TCP handshake success, and server have not received the HTTP request, there also a RST cause client closed after handshake. after 15mins, server try to close this connection because timeout wireshark packet captured
- TCP handshake success, and server have't received the HTTP request. there also a RST cause client closed after handshake. after about 100s, client with the same port which reset by RST try to connect server, server respond a ACK to previous connection which causing a client RST. wireshark packet captured
environments:
- HOST OS: CENTOS7
- CONTAINER OS: CENTOS7
- server program: Python 2.7.5, eventlet 0.22.0
- HTTP library: Python2.7 pycurl (libcurl 7.29.0) Error:
Connection reset by peer - K3S (v1.23.3) + Containerd (1.5.9)
- Kernel Version: 4.18.0