cambiar a curso:   2018-19   2020-21


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2019-20

Explorando las capacidades del planificador de Kubernetes en entornos de computación en la niebla


Tecnologías Específicas

Ingeniería de Computadores
 


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, pues es quien decide en qué recurso (nodo) se ejecuta cada trabajo (pod, usualmente implica un contenedor). Kubernetes ofrece una serie de métodos para influir en el comportamiento del planificador por defecto (reglas de afinidad y anti-afinidad), así como la posibilidad de incluir planificadores alternativos definidos por el usuario. Es posible incluso particularizar qué planificador se ha de usar en la propia definición de los servicios.

El objetivo general de este TFG es por tanto explorar las posibilidades que ofrecen estos mecanismos de planificación al caso particular de aplicaciones que se ejecuten en entornos de computación en la niebla, empleando hardware con capacidades limitadas.

 


Metodología y Competencias

Para el desarrollo de este TFG 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. Conocer el funcionamiento de la placa Raspberry Pi (RPi)
  2. Estudio de la tecnología Kubernetes basada en contenedores 
  3. Familiarización con la plataforma Kubernetes sobre RPis, desplegada en el laboratorio RAAP del I3A
  4. Estudio del funcionamiento del planificador de Kubernetes
  5. Implementación y evaluación de distintas estrategias de planificación

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

[IC5] Capacidad de analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.

[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.

 


Medios a utilizar

  • Placas Raspberry Pi, PC o portátil
  • Software de código abierto: Docker, Kubernetes…
 


Bibliografía

 


Tutores


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

Alumno


ORTEGA ALFARO, ÁNGEL