Universidad de Castilla-La Mancha
 
Escuela Superior de Ingeniería Informática

 

  cambiar a curso:   2021-22   2023-24



Máster Universitario en Ingeniería Informática


TRABAJOS FIN DE MáSTER
curso: 2022-23

Diseño e implementación de un planificador en Kubernetes para entornos de computación en la niebla de bajo coste.


Descripcion y Objetivos

La computación en la niebla surge como un complemento a la computación en la nube, que persigue acercar los recursos de cómputo y almacenamiento a los datos allí donde éstos se generan. Esto permite reducir tiempos de respuesta y optimizar ancho de banda, entre otras mejoras, aspectos que resultan críticos en muchos casos de uso relacionados con Internet de las Cosas. Una de las múltiples opciones de implementación es el uso de computadores monoplaca, de los que la Raspberry Pi es quizás su modelo más popular.

Por otro lado, hoy en día el uso de los contenedores como mecanismo de virtualización ligera vive un gran auge, en gran medida por la expansión de arquitecturas basadas en microservicios. De ahí que sean necesarias herramientas que gestionen y coordinen el conjunto de contenedores que suponen la implementación de una aplicación o servicio, los orquestadores, de los cuales Kubernetes es el más popular. Uno de los elementos clave de Kubernetes es su planificador, encargado de decidir en qué recurso (nodo) se ejecutará cada trabajo (pod, que contiene uno o varios contenedores). Kubernetes ofrece mecanismos declarativos para influir en el comportamiento del planificador por defecto (tales como reglas de afinidad, toleracias o requisitos de CPU y memoria), así como la posibilidad de incluir planificadores alternativos definidos por el usuario. Es posible particularizar en la especificación del contenedor los parámetros del planificador a usar e incluso utilizar varios planificadores en un mismo sistema.

El objetivo general de este TFM es desarrollar y analizar las prestaciones de un nuevo planificador para un clúster formado por Raspberry Pis. En particular, se implementará un operador de Kubernetes capaz de planificar las aplicaciones según la geolocalización y disponibilidad de los nodos de cómputo a lo largo del tiempo.

 


Metodología y Competencias

Para el desarrollo de este TFM se hará uso de una metodología ágil basada en Scrum. Se mantendrán reuniones quincenales con los tutores para el correcto seguimiento y retroalimentación del trabajo. En cuanto al plan de trabajo, a priori se definen las siguientes fases:

1. Estudio funcional de Docker y Kubernetes.

2. Estudio de la arquitectura de Kubernetes y de la interfaz de programación de Kubernetes.

3. Aprender el desarrollo de recursos y operadores propios en Kubernetes.

4. Despliegue de un clúster con Kubernetes sobre Raspberry Pis.

5. Diseño de un operador propio para planificar aplicaciones en el clúster.

6. Implementación del operador con el framework operator-sdk.

7. Evaluación de prestaciones del operador/planificador desarrollado.

Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:

CE1: Capacidad para la integración de tecnologías, aplicaciones, servicios y sistemas propios de la Ingeniería Informática, con carácter generalista, y en contextos más amplios y multidisciplinares.

CE4: Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.

CE09: Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida.

CE12 - Capacidad para aplicar métodos matemáticos, estadísticos y de inteligencia artificial para modelar, diseñar y desarrollar aplicaciones, servicios, sistemas inteligentes y sistemas basados en el conocimiento.

CE16: Realización, presentación y defensa, una vez obtenidos todos los créditos del plan de estudios, de un ejercicio original realizado individualmente ante un tribunal universitario, consistente en un proyecto integral de Ingeniería en Informática de naturaleza profesional en el que se sinteticen las competencias adquiridas en las enseñanza

 


Medios a utilizar

Placas Raspberry Pi, PC o portátil

Software de código abierto: Docker, Kubernetes, operator-sdk, go.

 


Bibliografía

•    Eben Upton y Gareth Halfacree, Rasbperry Pi User Guide, Ed. Wiley, 2012. Disponible en http://www.cs.unca.edu/~bruce/Fall14/360/RPiUsersGuide.pdf [accedida nov-2021]
•    Página web de Docker: https://www.docker.com/ [accedida nov-2021]
•    Página web de Kubernetes: https://Kubernetes.io/es [accedida nov-2021]
•    Documentación de Kubernetes: https://kubernetes.io/es/docs/home/ [accedida nov-2021]
•    Taller de Kubernetes, Asignatura PyGiTIC del MUII-AB, UCLM, Curso 2021-2022.
•    Controllers: https://kubernetes.io/docs/concepts/architecture/controller/ [accedida nov-2021]
•    Demystifying Kubernetes Operators with the Operator SDK. Disponible en: https://www.linux.com/topic/cloud/demystifying-kubernetes-operators-operator-sdk-part-1/ [accedida nov-2021]
•    Writing a Kubernetes Operator: From Zero to Hero. Disponible en: [accedida nov-2021]
•    Hausenblas, M., & Schimanski, S. (2019). Programming Kubernetes: Developing Cloud-Native Applications. " O'Reilly Media, Inc.". : Disponible en: https://www.oreilly.com/library/view/programming-kubernetes/9781492047094/ y https://github.com/programming-kubernetes  [accedidas  nov-2021]
•    Dobies, J., & Wood, J. (2020). Kubernetes Operators: Automating the Container Orchestration Platform. " O'Reilly Media, Inc.". Disponible en: https://www.oreilly.com/library/view/kubernetes-operators/9781492048039/  [accedida nov-2021]
 

 


Tutores


CARRIÓN ESPINOSA, CARMEN
CAMINERO HERRÁEZ, Mª BLANCA
 

Alumno


GOMEZ GONZALEZ, ALBERTO

 

 

Sindicación  Sindicación  Sindicación  Sindicación

Curso: 2022-23
© Escuela Superior de Ingeniería Informática
Edificio Infante Don Juan Manuel
Avda. de España s/n
02071 Albacete

informatica.ab@uclm.es
aviso legal
generar código QR de la página