Titulo Estágio
Enhancing Kubernetes Scheduling
Áreas de especialidade
Engenharia de Software
Comunicações, Serviços e Infraestruturas
Local do Estágio
DEI-FCTUC
Enquadramento
The popularity of Kubernetes (K8s) is on the rise due to several compelling reasons. Firstly, there has been a significant growth in the popularity of containerized applications. Containers offer numerous advantages, such as lightweight, portable, and isolated environments, making them ideal for deploying and managing modern applications. Kubernetes provides a robust orchestration framework specifically designed for managing containerized applications, making it a natural choice in this context.
Additionally, Kubernetes offers a cluster with a planar network addressing scheme. This means that regardless of the number of nodes in the cluster, pods running in these nodes have unique IP addresses and are able to communicate directly without any NAT schemes, thus simplifying networking and communication between containers and services within the cluster.
Furthermore, Kubernetes enables big companies to efficiently share resources between teams and applications through the use of namespaces and resource quotas. This allows for effective resource allocation and isolation, ensuring that each team or application has its dedicated resources while optimizing resource utilization across the cluster.
Lastly, Kubernetes provides built-in mechanisms for scaling applications in and out. It offers features like auto-scaling based on resource utilization or custom metrics, allowing applications to dynamically adjust their capacity based on workload demands. This scalability feature ensures optimal resource utilization and enables applications to handle varying levels of traffic efficiently.
A Kubernetes cluster performance is attached to the pod/job scheduler, which by default considers a set of generic metrics that might not be tailored to specific application requirements, such as fault tolerance or energy consumption. Additionally, the footprint of the Kubernetes basic scheduler is limited to a single cluster and does not explore the possibility of deploying pods using a federative approach. Thus, this research aims at testing different Kubernetes schedulers, tweaking/developing a scheduler variant, and implementing middleware that enables the deployment of pods using a federative approach.
Objetivo
1. Performance evaluation of different Kubernetes schedulers
2. Adaptation of an improved Kubernetes scheduler, focused on specific application requirements (e.g., fault tolerance, energy efficiency)
3. Implementation of a middleware or control plane that enables the deployment of pods using a federative approach.
Plano de Trabalhos - Semestre 1
- Learn Kubernetes and its components (schedulers) and study the current state of the art (1 month).
- Select and deploy currently available Kubernetes scheduling solutions (2 months).
- Conduct performance evaluation of the schedulers (1 month).
- Write intermediate report and prepare presentation (1 month).
Plano de Trabalhos - Semestre 2
- Tweak/implement improvement over a selected Kubernetes scheduler (1 month).
- Implement the middleware for federated pod deployment (2months)
- Perform tests (1 month).
- Write final report and prepare presentation (1 month).
Condições
The work should take place at the Centre for Informatics and Systems of the University of Coimbra (CISUC) in the Network, Communications, and Security Group at the Department of Informatics Engineering of the University of Coimbra.
Observações
Co-orientador: Prof. David Abreu (dabreu@dei.uc.pt)
Orientador
Karima Velasquez
kcastro@dei.uc.pt 📩