Politecnico di Torino (logo)

Analysis and Benchmarking of Kubernetes Networking

David Liffredo

Analysis and Benchmarking of Kubernetes Networking.

Rel. Fulvio Giovanni Ottavio Risso. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2020

PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (2MB) | Preview

With the increasing adoption of microservices architecture and the transition to containerization, orchestrators like Kubernetes and OpenStack have become increasingly important in the networking and datacenter world. In fact, the deployment of containers can result hard and an orchestrator that can automatically scale, create, delete and deploy containers in a proper way is useful and often necessary. In Kubernetes, the most popular orchestrator and the one on which the thesis is based, the basic element is the pod, that can host one or more containers and controls its/their life. Consequently, the communication between pods becomes essential and it has to happen as quickly and cleanly as possible. However, Kubernetes does not care how the network that connects the pods is configured, leaving the implementation to another entity: the network provider. So, an important role in Kubernetes networking is played by Container Network Interface (CNI), a plugin, provided by a network provider, installed in the cluster, which connects the container to the network, allows the communication between pods and, in general, defines the network configuration in the cluster. Kubernetes describes three basic rules that the plugin must satisfy, but the implementation is left to the network provider. For this reason there are a lot of CNI implementations that can be installed in the cluster, each one with its intrinsic features and the choice of the most appropriate CNI can be difficult. This thesis first presents some implementations from a theoretical point of view, then proposes a benchmarking suite that reports information about performance (throughput, CPU usage and latency) of CNI installed in a cluster. Several tests evaluate, with the aid of different network performance tools, the CNI behaviour in both ideal and everyday scenarios, focusing both on communication between pods and on communication when other Kubernetes resources are present. The proposed benchmarking suite is validated by testing a list of open source CNIs in a real cluster, with the aim of highlighting the differences between the CNIs and help users to decide the best one for their scenario. The results show that there are significant differences in performance between the different CNIs hence proving the usefulness of the benchmarking suite.

Relators: Fulvio Giovanni Ottavio Risso
Academic year: 2020/21
Publication type: Electronic
Number of Pages: 91
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: TELECOM ITALIA spa
URI: http://webthesis.biblio.polito.it/id/eprint/15948
Modify record (reserved for operators) Modify record (reserved for operators)