Uitrollen, monitoren, beslissen, handelen: automatische herschaling van Kubernetes-clusters met Cluster API

Student:Robin De Bock
Richting:Master of Science in de industriële wetenschappen: informatica
Abstract:De missie van Tengu Labs is het aanbieden van Kubernetes clusters en bijkomende frameworks. Om het beheer van deze clusters te vergemakkelijken, wordt de overstap naar Cluster API onderzocht, een recent subproject van Kubernetes. Het herschalen van deze clusters vereist manueel werk en daarbij moet de hele Kubernetes cluster afgebroken en opnieuw aangemaakt worden. Dit maakt deze operatie onhaalbaar voor Tengu Labs operators die een groot aantal clusters beheren, maar ook voor Tengu Labs gebruikers die opnieuw vanaf nul moeten beginnen. Een relatief nieuw project dat compatibel is met Cluster API, de Cluster Autoscaler, wordt onderzocht om dit cluster rescaling proces te automatiseren. Deze twee projecten worden gecombineerd om een cluster te provisioneren en vervolgens die cluster te herschalen als reactie op een werklast waarvoor er onvoldoende bronnen (nodes) zijn. De setup wordt vervolgens aan een aantal benchmarks onderworpen om de oorzaak van eventuele vertragingen of variaties in tijdsduur op te sporen. Bovendien worden mogelijkheden om dit proces te versnellen met behulp van verschillende systeemconfiguraties met elkaar vergeleken. De scriptie toont de haalbaarheid aan van het opzetten en gebruiken van dit systeem op een lokale machine. Door alle nadelen en problemen die gaandeweg zijn tegengekomen grondig te bespreken, wordt een stevige basis gelegd voor toekomstig onderzoek dat dieper ingaat op de mogelijkheden van deze technologieën.
Abstract (Eng):Tengu Labs' mission is to provide Kubernetes clusters and supporting frameworks. To facilitate the management of these clusters, the switch to Cluster API is explored, a recent sub-project of Kubernetes. The rescaling of these clusters requires manual labor and in the process the entire Kubernetes cluster must be destroyed and recreated. This makes this operation unfeasible for Tengu Labs operators who manage a large number of clusters, as well as Tengu Labs users who will have to restart from scratch. A relatively new project compatible with Cluster API, the Cluster Autoscaler, is explored in order to automate this cluster rescaling process. These two projects are combined in order to provision a cluster and then scale that cluster in response to a workload for which there are insufficient resources (nodes). The setup is then put through a number of benchmarks to pinpoint the cause of any delays or variations in time duration. Additionally, options to speed up this process using differing system configurations are also compared. The thesis is successful in proving the feasibility of setting up this system on a local machine. By thoroughly discussing all of the drawbacks and concerns that were encountered, a solid foundation is laid for future research that delves deeper into the possibilities of these technologies.