Aplicar Kubernetes sobre un entorno cloud comunitario y ...
Transcript of Aplicar Kubernetes sobre un entorno cloud comunitario y ...
![Page 1: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/1.jpg)
Aplicar Kubernetes sobre un entorno cloud comunitario y descentralizado
Integración de una plataforma de gestión de contenedores para el hogar y redes comunitarias
Ismael Fernández MolinaGrado de Ingeniería InformáticaÁrea de Sistemas Distribuidos
Félix FreitagJunio 2019
![Page 2: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/2.jpg)
Que se espera ver?
- Situación actual de los entornos Cloud
- Objetivos del trabajo
- Recursos
- Tecnologías usadas
- Diseño de la solución
- LAN
- Distribuída
- Implementación de la solución
- Evaluación
- Conclusiones
- Futuro
![Page 3: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/3.jpg)
Situación actual
● Cloud Computing
● Cloud Colaborativo
● Containers
● Orquestador de containers
![Page 4: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/4.jpg)
Objetivos del trabajo
Objetivos generales
● Investigación de la plataforma Kubernetes.● Investigación del funcionamiento de Cloudy.● Integración de ambas tecnologías usando y contribuyendo siempre a proyectos Open Source.
Objetivos específicos
● Crear una microCloud en local mediante Cloudy.● Crear un clúster en local con Kubernetes.● Integrar Kubernetes y Cloudy de forma local.● Extender Kubernetes a Cloudy distribuido y descentralizado.
![Page 5: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/5.jpg)
Recursos del proyectoRecursos físicos
● 3 Raspberries B+● 1 Raspberry pi Zero● Ordenador MacBook Pro
Recursos de desarrollo
● Raspbian● 2 repositorios de GitHub
○ https://github.com/ismferd/tfg-things○ https://github.com/ismferd/serf-publisher
● IDE GoLand● VIM
![Page 6: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/6.jpg)
Tecnologías usadasCloudy
● Cloud comunitario.● Descentralizado.● Open Source.● Facilidad de uso.● Serf.
Kubernetes
● Plataforma que nos permite automatizar, escalar y orquestar contenedores● Recursos como un masa.● Abstracción de nuestro provider de computación.● API.● Documentación.● Estándar de la indústria actualmente.
![Page 7: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/7.jpg)
Arquitectura de Cloudy
● Cloudy expone servicios a través de AVAHI.● Serf se encarga de hacer el discovery de nuevos nodos mediante
el protocolo Gossip.● Hace uso de los tags de Serf para propagar la información entre
los nodos.● Tiene una interfaz web en PHP la que podemos usar para:
○ Instalar/ejecutar aplicaciones.○ Actualizar el sistema operativo
![Page 8: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/8.jpg)
Arquitectura de Kubernetes
● Kubernetes presenta una arquitectura master-slave
● Kubernetes crea un clúster privado.
● Accedemos a las aplicaciones mediante Service.
● Hay diferentes tipos de Service.
○ LoadBalancer
○ ClusterIP
○ NodePort
![Page 9: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/9.jpg)
Diseño de la solución (LAN)
● No cambiamos la arquitectura de Cloudy.● El usuario habla directamente con la API Kubernetes.● El operator serf-publisher nos permite publicar en Cloudy.● Control total de autorización/autenticación RBAC
y Static Token File .● Alta disponibilidad de nuestros servicios.● Tolerancia a particiones.
![Page 10: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/10.jpg)
Diseño de la solución (Distribuida)
● Cada dominio será propietario de su clúster de Kubernetes.● Administración centralizada por clúster.● Añadimos infraestructura: DNS y Balanceador de Carga.● No hay posibilidad de usar toda la infraestructura cómo
con un sólo clúster.
![Page 11: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/11.jpg)
Implementación
Manifest file API
serf-publisher
&
![Page 12: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/12.jpg)
Evaluación
● Instalación Raspbian en las raspberries.
● Cloudinización de las raspberries.
● Instalación de Kubernetes.
● Instalación del operator serf-publisher.
● Despliegue de aplicaciones en Kubernetes
● Vemos las aplicaciones disponibles en Cloudy
mediante su interfaz web.
● Accedemos a la aplicación desde fuera del
clúster de Kubernetes.
![Page 13: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/13.jpg)
Conclusiones
● La planificación no ha sido lo esperado por el grado de dificultad de las tecnologías.● Aprendizaje de GO y Kubernetes.● Se logra el objetivo de integración de ambas plataformas.● Se añade vídeo demostrativo.● Utilización de software y hardware Open Source.
![Page 14: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/14.jpg)
Trabajo futuro a realizar
● Se debe de empezar a Kubenizar Cloudy.● Investigación de servicios “Service Mesh”.● Automatizar el despliegue de Kubernetes desde
la interfaz de Cloudy (se quiere?).● Definir una serie de políticas y roles de acceso que apliquen
a todo Cloudy.● Definición y automatización de una posible caída del nodo
master de Kubernetes.● Investigación de tecnologías dedicadas a sistemas edge, seguridad
y performance de containers.
![Page 15: Aplicar Kubernetes sobre un entorno cloud comunitario y ...](https://reader035.fdocuments.es/reader035/viewer/2022071112/62cab1984a752f01710f8c48/html5/thumbnails/15.jpg)
GRACIAS
Ismael Fernández MolinaGrado de Ingeniería InformáticaÁrea de Sistemas Distribuidos
Félix FreitagJunio 2019