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:
- Conocer el funcionamiento de la placa Raspberry Pi (RPi)
- Estudio de la tecnología Kubernetes basada en contenedores
- Familiarización con la plataforma Kubernetes sobre RPis, desplegada en el laboratorio RAAP del I3A
- Estudio del funcionamiento del planificador de Kubernetes
- 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
- 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 el 8/7/2019]
- Página web de Docker: https://www.docker.com/ [accedida el 8/7/2019]
- Página web de Kubernetes: https://kubernetes.io/es/ [accedida el 8/7/2019]
- Setup Kubernetes on a Raspberry Pi Cluster easily the official way!: https://blog.hypriot.com/post/setup-kubernetes-raspberry-pi-cluster/ [accedida el 8/7/2019]
- Santos, Jose and Wauters, Tim and Volckaert, Bruno and Turck, Filip , Resource Provisioning in Fog Computing: From Theory to Practice, J. Sensors V.19, doi: 10.3390/s19102238,May-2019
- Zheng WS., Yen LH. (2019) Auto-scaling in Kubernetes-Based Fog Computing Platform. In: Chang CY., Lin CC., Lin HH. (eds) New Trends in Computer Technologies and Applications. ICS 2018. Communications in Computer and Information Science, vol 1013. Springer, Singapore DOI: https://doi.org/10.1007/978-981-13-9190-3_35
- IBM Article, Create a custom Kubernetes scheduler. https://developer.ibm.com/articles/creating-a-custom-kube-scheduler/ [accedida el 26/9/2019]
- D. Tornow, The Kubernetes Scheduler, https://medium.com/@dominik.tornow/the-kubernetes-scheduler-cd429abac02f [accedida el 8/7/2019]
- Advanced scheduling in Kubernetes, https://kubernetes.io/blog/2017/03/advanced-scheduling-in-kubernetes/ [accedida el 8/7/2019]
- Scheduling Framework, https://kubernetes.io/docs/concepts/configuration/scheduling-framework/ [accedida el 8/7/2019]
Tutores CARRIÓN ESPINOSA, CARMEN CAMINERO HERRÁEZ, Mª BLANCA | Alumno ORTEGA ALFARO, ÁNGEL
|
|