Hi everyone (●’◡’●)
Question: I am curious about the traffic patterns in-between pods (for example, the characteristics of a TCP connection from one service in container A to another service in container B). Will long-live or short-live TCP connections dominate the pod to pod communication?
Related Question: I find it’s very hard to find such studies. And I also cannot find any open traffic data set measured from real deployed K8S applications. o((>ω< ))o
What I can find for now are open-source microservices demo applications with a load generator.
My Experiment: I have deployed the Google Online Boutique microservice demo in my K8S cloud with 1 master and 2 workers. It comes with a load generator. So I have measured its traffic patterns. I have the following finds
- Frontend service will also use one long-live TCP connection to communicate with each backend service. This connection will be initiated when I start a new replica of frontend, and will never expire (during my short experiment).
- The same pattern is also shown between CartService and Database (Redis).
- On the other hand, CheckoutService will always start 9 new short TCP connections when load generator triggers a checkout action to the frontend. (There is no direct communication between load generator(i.e., user) and the checkout service)
I am wondering is this a typical pattern in K8S applications? Will the real-world K8S applications have the same pattern?
Any comments would be greatly appreciated (●’◡’●)