The topic of my thesis is overload detection in services running in containers. I give an overview about cloud computing, OS-level virtualization techniques and the Kubernetes technology. OS-level virtualization allows applications to run in isolated environments. Kubernetes is a portable and extensible container management platform, which makes configuration and automation easy. It simplifies handling containerized applications and makes it possible for users to deploy, manage and scale multi-container applications.
The goal of this thesis is to communicate with an nginx webserver deployed on Kubernetes as the examined service, analyse the round-trip-time of requests and adjust the workload according to the results, so the outcome is the biggest possible request rate without overloading the server.
I ran a web server in a Kubernetes pod and created workload from another pod using an HTTP load generator application. Based on the statistics of the answers I tried to detect web server overload as accurately as possible and adjusted the request rate to optimize performance.