MicroCloud¶
MicroCloud es una solución de infraestructura moderna desarrollada por Canonical (los creadores de Ubuntu), que permite desplegar y gestionar un clúster de servidores autónomos y resilientes, ideal para entornos edge, on-premise o de pequeña escala
Introducción¶

MicroCloud es una solución de infraestructura moderna desarrollada por Canonical (los creadores de Ubuntu), que permite desplegar y gestionar un clúster de servidores autónomos y resilientes, ideal para entornos edge, on-premise o de pequeña escala
MicroCloud — open source scalable cloud solution
MicroCloud -Docs
Caracteristicas¶
| Capacidad | Descripción |
|---|---|
| 🧱 **Infraestructura hiperconvergente** | Cada nodo ofrece compute, red y almacenamiento. |
| 📦 **Contenedores y VMs (LXD)** | Ejecuta contenedores o máquinas virtuales con LXD en alta disponibilidad. |
| 💾 **Almacenamiento distribuido (Ceph)** | Almacenamiento replicado, resiliente y distribuido automáticamente. |
| 🔌 **Autoinstalación y bootstrap** | Se instala fácilmente con un comando en varios nodos. |
| 🔐 **Seguridad integrada** | Comunicaciones cifradas, control de acceso y aislamiento. |
Usos¶
| Uso común | Ejemplos |
|---|---|
| 🌐 **Edge computing** | Micro data centers en fábricas, hospitales, retail. |
| 🧪 **Laboratorios de desarrollo** | Crear entornos reproducibles sin depender de la nube. |
| 🏢 **Data centers pequeños** | Alternativa a soluciones como Proxmox o VMware. |
| 🎓 **Educación e investigación** | Para desplegar múltiples VMs o contenedores en campus. |
Requisitos¶
Network¶
Se deben configurar dos interfaces de red en el equipo:
- Una interfaz se utiliza para una red de enlace ascendente que proporciona conectividad externa a los miembros del clúster. La interfaz de red para la red de enlace ascendente debe admitir tanto difusión como multidifusión, y no debe tener ninguna dirección IP vinculada directamente a ella.
- La otra interfaz se utiliza para la comunicación interna (o dentro del clúster), es decir, la comunicación entre los miembros del clúster de MicroCloud. Debe tener direcciones IP asignadas. Aunque estamos configurando un clúster con un solo miembro, MicroCloud sigue necesitando esta red. Esto se debe a que utiliza una dirección en esta red para vincular sus servicios, así como los de sus componentes.
Durante el proceso de inicialización de MicroCloud, se le solicitarán las direcciones de puerta de enlace IPv4 e IPv6 para la red de enlace ascendente. Esté preparado para proporcionar al menos una; puede proporcionar ambas opcionalmente. Si proporciona la dirección de puerta de enlace IPv4, también deberá proporcionar los rangos de subred IPv4.
🧱 Topología de Red¶
| Interfaz | Función | propiedades |
|---|---|---|
ens18 | comunicación interna | IP asignada |
ens19 | Enlace ascendente | Sin IP asignada |
Para configurar con netplan la interfaz sin IP , creamos el ficheroetcnetplan99customyaml
# establecemos permisos
sudo chmod 0600 /etc/netplan/99-custom.yaml
# Aplicamos la configuración
sudo netplan apply
///-.
`systemd-networkd-wait-online.service` bloquea el arranque (hasta 2 min por defecto) mientras **espera que todas las interfaces definidas por networkd** tengan *link* y dirección IP.
Para desactivar completamente la espera (si no necesitas que bloquee el arranque):
sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service
Redes Administradas¶
Bridge Networks¶
Un bridge de red crea un conmutador Ethernet L2 virtual al que se pueden conectar las NIC de instancia, lo que les permite comunicarse entre sí y con el host.
Bridge en un clúster¶
Todos los miembros de un clúster deben tener redes idénticas definidas. Las únicas claves de configuración que pueden diferir entre redes de diferentes miembros son bridge.external_interfaces, parent
# Parte Global - Crear la red
lxc network create vlan4br --type=bridge
# Parte Global - Configurar la red
lxc network set vlan4br ipv4.address=none
lxc network set vlan4br ipv6.address=none
# Parte individual - Configurar interfaces asignadas por nodo
lxc network set vlan4br bridge.external_interfaces=ens19.4 --target micro1
lxc network set vlan4br bridge.external_interfaces=ens19.4 --target micro1
lxc network set vlan4br bridge.external_interfaces=ens19.4 --target micro1
OVN Networks¶
OVN es un sistema de redes definido por software que admite la abstracción de redes virtuales. Puede usarlo para crear su propia nube privada.
El tipo de red OVN permite crear redes lógicas mediante la SDN de OVN. Este tipo de red puede ser útil para laboratorios y entornos multiusuario donde se utilizan las mismas subredes lógicas en varias redes discretas.
Una red LXD OVN puede conectarse a una red Bridge administrada o a una red física existente para acceder a la red más amplia. De forma predeterminada, todas las conexiones de las redes lógicas OVN se conectan mediante NAT a una IP asignada desde la red de enlace ascendente.
Despliegue¶

Requisitos¶
Hardware¶
MicroCloud admite hasta 50 máquinas como miembros del mismo clúster.
- Para pruebas y desarrollo, puede usar máquinas físicas o virtuales como miembros del clúster. Una sola máquina puede crear un clúster de un solo miembro.
- Para entornos de producción, se requiere un mínimo de 3 máquinas físicas como miembros del clúster. No recomendamos usar máquinas virtuales como miembros del clúster en producción.
- Para implementaciones críticas, recomendamos un mínimo de 4 miembros del clúster. Si bien 3 miembros son suficientes para alta disponibilidad, un miembro adicional proporciona redundancia para ejecutar aplicaciones críticas.
Memoria¶
- 8 GiB RAM para entornos de desarrollo y pruebas
- 32 GiB RAM para entornos de producción
Software¶
- snapd version 2.59 o superior
- Ubuntu 22.04 LTS o superior. Production deployments subscribed to Ubuntu Pro are required to use an LTS version.
Entorno¶
-----------+-----------------------------+-----------------------------+------------
| | |
192.168.1.101 192.168.1.102 192.168.1.103
+----------+------------+ +-----------+------------+ +------------+------------+
| [micro1.cluster.local]| | [micro2.cluster.local] | | [micro3.cluster.local] |
| Control Plane | | Worker Node | | Worker Node |
+------------------ ----+ +------------------------+ +-------------------------+
3 x servidores ubuntu24.04
El dominio estándar <em>cluster.local</em> funciona bien en la mayoría de los casos y es importante para la resolución de nombres entre servicios. Adicionalmente puedes añadir al fichero de resolución local de cada host /etc/hosts las siguientes lineas:
192.168.1.101 micro1.cluster.local micro1
192.168.1.102 micro2.cluster.local micro2
192.168.1.103 micro3.cluster.local micro3
Instalación¶
Instalar todos los snaps necesarios en todas las máquinas a incluir en el clúster.
# compureba version de snapd
snap version
# Instalación
sudo snap install lxd --cohort="+"
sudo snap install microcloud --cohort="+"
sudo snap install microceph --cohort="+"
sudo snap install microovn --cohort="+"
Inicialización¶
En función de los componentes instalados en el paso anterior nos saldrá un asistente para configurar lo necesario. En uno solo de los nodos ejecutar:
Waiting for services to start ...
Do you want to set up more than one cluster member? (yes/no) [default=yes]:
Using address "192.168.x.x" for MicroCloud
Use the following command on systems that you want to join the cluster:
microcloud join
When requested enter the passphrase:
brushes rotisserie slapping amoeba
Verify the fingerprint "cxxx0bd7xxxx" is displayed on joining systems.
Waiting to detect systems ...
Select the systems that should join the cluster:
No system selected
Retry selecting systems? (yes/no) [default=yes]:
Selected "micro01" at "192.168.x.x"
Selected "micro02" at "192.168.x.x"
Selected "micro03" at "192.168.x.x"
Gathering system information ...
Would you like to set up local storage? (yes/no) [default=yes]: no
Would you like to set up distributed storage? (yes/no) [default=yes]:
Select from the available unpartitioned disks:
Select which disks to wipe:
Using 1 disk(s) on "micro01" for remote storage pool
Using 1 disk(s) on "micro02" for remote storage pool
Using 1 disk(s) on "micro03" for remote storage pool
Do you want to encrypt the selected disks? (yes/no) [default=no]:
Would you like to set up CephFS remote storage? (yes/no) [default=yes]:
What subnet (either IPv4 or IPv6 CIDR notation) would you like your Ceph internal traffic on? [default: 192.168.x.0/24]
What subnet (either IPv4 or IPv6 CIDR notation) would you like your Ceph public traffic on? [default: 192.168.x.0/24]
Some systems are ineligible for distributed networking, which requires either an interface with no IPs assigned or a bridge. Continue anyway? (yes/no) [default=yes]:
Initializing new services
Local MicroCloud is ready
Local MicroOVN is ready
Local MicroCeph is ready
Local LXD is ready
Awaiting cluster formation ...
Peer "micro02" has joined the cluster
Peer "micro03" has joined the cluster
Configuring cluster-wide devices ...
MicroCloud is ready
Comandos¶
# Comporbar estado de Microcloud
sudo microcloud status
# COmporbar la lista de servicios Microcloud
sudo microcloud service list
# Comprobar nodos en el clúster
lxc cluster list
# Comprobar almacenamiento en el clúster
lxc storage list
# Comprobar redes en el clúster
lxc network list