La empresa Canonical ha anunciado la disponibilidad de MicroCloud, una herramienta que permite desplegar rápidamente clústeres computacionales y sistemas en la nube con almacenamiento de datos distribuido y una red virtual segura en su propio hardware. La herramienta está presentada en forma de un paquete snap que incluye los componentes necesarios para gestionar el funcionamiento de los nodos del clúster. El soporte técnico comercial para soluciones basadas en MicroCloud se proporciona a través del servicio Ubuntu Pro, pero aquellos que pueden prescindir del soporte pueden utilizar la herramienta sin restricciones. Los desarrollos del proyecto están escritos en el lenguaje Go y se distribuyen bajo la licencia AGPL 3.0.
MicroCloud, por defecto, aplica recursos para garantizar la alta disponibilidad, lo que permite crear clústeres de al menos tres nodos (el límite superior mencionado incluye clústeres de hasta 50 nodos). La pila de software utilizada para gestionar el clúster se basa en un sistema de gestión centralizada de contenedores y máquinas virtuales LXD, la plataforma para construir redes virtuales OVN (Open Virtual Network) y un almacenamiento distribuido y resistente a fallos Ceph. MicroCloud proporciona herramientas para la configuración automática de LXD, Ceph y OVN en todos los nodos del clúster.
Para la identificación servidores en la red que pueden conectarse al clúster, se utiliza mDNS, lo que permite configurar todo el clúster simplemente ejecutando un solo comando «microcloud init» en uno de los nodos, después de haber instalado los paquetes snap lxd, microceph, microcloud y microovn. La distribución principal considerada es Ubuntu Server, pero la herramienta no está vinculada a Ubuntu y puede ser utilizada en cualquier distribución que ofrezca la posibilidad de instalar paquetes snap (Arch, CentOS, Fedora, Debian, openSUSE, RHEL, etc.). También es posible crear clústeres basados en sistemas que utilizan un sistema operativo Ubuntu Core actualizable de manera atómica.
Después de ejecutar el comando «microcloud init», la herramienta detectará si hay otros servidores en la red local, enviará una solicitud para añadir discos al almacenamiento compartido Ceph y propondrá configurar los parámetros de la red virtual. Para formar parte del clúster, los servidores deben tener previamente instalados los paquetes snap mencionados anteriormente. La configuración del clúster se puede guardar en formato YAML para el despliegue posterior de sistemas similares. Para añadir nodos adicionales después de completar la inicialización, se puede usar el comando «microcloud add».
El almacenamiento de archivos general se crea con replicación e interrumpibilidad, lo que permite, en caso de fallo de nodos individuales, no perder datos al almacenar múltiples copias de los datos en diferentes nodos. Para implementar el almacenamiento basado en Ceph en un clúster, además de los discos locales, debe haber al menos tres discos separados dedicados al almacenamiento distribuido en tres computadoras distintas.
Una vez que el clúster está listo, a los usuarios se les brinda la oportunidad de ejecutar sus aplicaciones, utilizando contenedores del sistema o máquinas virtuales, así como acceso al almacenamiento compartido Ceph y herramientas de gestión centralizada basadas en LXD. Para gestionar la infraestructura de contenedores sobre el clúster, se puede ejecutar la plataforma Kubernetes (edición Microk8s). Para la autenticación de usuarios máquinas virtuales o contenedores en el clúster, se puede aplicar OpenID Connect (OIDC) y autorización basada en OpenFGA.

Es posible gestionar de manera flexible los recursos proporcionados, como CPU, memoria y entrada/salida, redirigir dispositivos USB, GPU y almacenamiento. Los entornos aislados y virtuales pueden ser trasladados entre nodos en modo de migración en vivo y guardados usando instantáneas. Las métricas del rendimiento del clúster y los registros de eventos pueden exportarse para monitoreo mediante Prometheus y Grafana.
Además de crear clústeres de trabajo y sistemas de nube privada, la herramienta también es útil para realizar rápidamente experimentos en sistemas de desarrolladores. Por ejemplo, MicroCloud se puede usar para simular un clúster en la laptop del desarrollador, probar aplicaciones en la nube en desarrollo, experimentar con nuevas tecnologías o simular infraestructuras complejas.
Fuente: opennet.ru
