Minimizing Traffic Loss in 5G Applications: Avoiding a noisy neighbor problem in Kubernetes

9 January 2024

The telecommunication networks have been evolving with every generation, improving connectivity and data speeds. First, we had 4G which promised faster network speeds, faster sharing, no lags, etc. Then we had 5G which promised even faster network speeds. The tech world is rapidly evolving needing higher network speed with low latency that can make life and work easy and simple.

 In this context, we have Pallavi Priya Patharlagadda, a tech enthusiast and a senior technology professional who has successfully deployed 4G and 5G packet core components in complex cloud (net) technologies like Kubernetes. Kubernetes is a system that helps manage and run applications, especially across distributed systems. Pallavi Priya has recently shared valuable insights on adapting Kubernetes deployments for 4G and 5G components, making the work smoother and ready according to the trends. Her work has led to significant improvements in application availability and performance.

Pallavi Priya, a key contributor to her team, has successfully integrated 4G and 5G core components with Docker and Kubernetes. This project has been one of their most significant undertakings in the field to make the network operations smoother and less hassle-free.

Initially, the team faced challenges with traffic loss during deployments. The expert explained, “Kubernetes was sending traffic before the pods were fully ready, causing alarm during customer demos.” In one instance she shares,” one of the application pods was stuck in a deadlock scenario and was requesting more and more memory, taking 90% of the host memory. The host system could not allocate further memory and restarted the application pod. In this case, the other pods are healthy, but they are not able to handle the traffic as they don’t get the required memory from the host operating system. This resulted in a traffic loss.” A container was taking up more memory space, which resulted in other containers not getting enough memory and hence there was a loss in activities. However, they solved the problem.

They set the resource limit for the container/pod. “This approach prevents the ‘noisy neighbor’ problem, where one application uses too many resources at the expense of others,” the expert noted.

They also implemented Readiness and Liveness Probes. These probes ensure that applications are ready to receive traffic and remain responsive. The results were impressive, 100% application availability, 0% traffic loss, and 10% improvement in overall application performance.

She not only made the applications more efficient and performant, but she also wanted to share the knowledge with interested people. For which she wrote 2 papers on the topic- “Improve Application Availability by configuring Kubernetes Liveness & Readiness Probe” (January 2024) and “Eliminate the Noisy Neighbor Problem in Docker using Resource Limits” (February 2022).

Looking at her field and current trends she recommends exploring Helm, a package manager for Kubernetes apps. “Helm simplifies deployments and makes it easier to manage multiple applications,” she explained. “It could be a great tool to streamline our processes further.” Without helm, the kubectl command deploys several YAML files (deployment, service, and so on). Maintaining and running numerous programs at once is a challenging endeavor. To make the process simple and synchronized she recommends using Helm.

The work of Pallavi Priya and her team demonstrates how thinking carefully and employing effective resource management can significantly improve the reliability and efficiency of Kubernetes deployments in critical telecommunications infrastructure. Their approach can serve as an example for organizations seeking to maximize the performance and resilience of Kubernetes in complex environments, paving the way for more robust, traffic-ready telecommunications services.