Multipass, la forma fácil y rápida para crear máquinas virtuales Ubuntu, compatible con macOS y Windows, ahora es completamente Open Source

En un movimiento que, sin duda, hará vibrar las fibras más sensibles de los amantes del código abierto, Canonical, la empresa detrás del omnipresente Ubuntu, ha decidido que su ligero pero potente gestor de máquinas virtuales (VMs), Multipass, ahora es totalmente open source. Con el lanzamiento del Multipass 1.16 Release Candidate, esta herramienta que simplifica la vida al ejecutar entornos Ubuntu en Linux, Windows y macOS, ha cortado las últimas cadenas propietarias en las licencias de su código fuente.

¿Qué Diablos es Multipass?

Para los que aún no se desenchufan del Atari, Multipass es esa joyita que te permite levantar instancias de Ubuntu, casi tan tan fácil como abrir una pestaña más, aparte de todas esas otras que sigues acumulando en tu navegador. Olvídate de las complejidades de la virtualización; con un solo comando, tienes una VM Ubuntu lista para la acción, ya sea que estés en tu Linux, tu Windows o tu Mac. Es como tener un patio de juegos Ubuntu desechable, pero sin el desorden ni preocuparte de destrozar tu equipo de trabajo.

Bajo el capó, Multipass no se anda con chicas y usa las tecnologías de virtualización nativas para que todo vuele bajo y sin dramas:

  • Linux: Se apoya en el robusto KVM.
  • Windows: Utiliza el mismísimo Microsoft Hyper-V.
  • macOS: Se la juega con QEMU.

Esta versatilidad multiplataforma y su obsesión por la simplicidad han catapultado a Multipass al estrellato, convirtiéndolo en una opción confiable para probar software, desarrollar en un ambiente aislado o simplemente cachurear con Ubuntu sin tener que instalarlo completo.

La Odisea Hacia el Código Abierto Total

Aunque Multipass ya venía con la licencia GNU GPLv3, la verdad es que no todo su código era tan "abierto" como uno quisiera. Había unas cuantas porciones específicas para las versiones de Windows y macOS que se mantenían en el lado oscuro, el propietario. Una situación que, si bien es común en proyectos que intentan balancear el desarrollo open source con el soporte a múltiples plataformas, siempre generaba un ruido en la comunidad.

Pero la buena nueva es que, con el Multipass 1.16 RC, esa dualidad se fue al carajo. Canonical ha integrado esas partes que antes eran "secretas" directamente en la base de código open source de Multipass. Como lo gritaron a los cuatro vientos en el anuncio de lanzamiento:

"¡toda la base de código se volvió completamente open source! ... Anteriormente, los bits propietarios para Windows y macOS ahora son parte de este repositorio."
- Alguien en Canonical, creo...

Este hito no es casualidad; es el resultado de un esfuerzo titánico de refactorización y unificación, encapsulado en esa pull request épica en GitHub llamada "One Repo To Rule Them All" (PR #4058). Este movimiento no solo reafirma el compromiso de Canonical con el open source, sino que también abre las puertas de par en par a una colaboración comunitaria en serio y confiable (hola terraform) , permitiendo que cualquier desarrollador meta mano en todas las entrañas del proyecto sin desconfiar que cambien la licencia y el uso de tus potenciales aportes al código.

One Repo To Rule Them All by ricab · Pull Request #4058 · canonical/multipass

Multipass y Kubernetes: Tu cluster para jugar y desechar

Aquí es donde la cosa se pone realmente interesante para los que vivimos en el mundo de DevOps y la ingeniería de plataformas. Multipass es la herramienta perfecta para levantar clústeres de Kubernetes locales y desechables. ¿Necesitas probar algo rápido? ¿Una demo? ¿O simplemente quieres cachurear sin ensuciar tu máquina principal? Multipass es tu mejor amigo.

Vamos a ver un ejemplo de cómo puedes levantar un clúster de MicroK8s (la versión ligera de Kubernetes de Canonical) modo express:

Levantando un Clúster MicroK8s con Multipass

Espera a que MicroK8s esté listo:

Kubernetes necesita un momento para arrancar todos sus componentes. Este comando esperará hasta que todo esté en su lugar.

multipass exec k8s-dev -- sudo microk8s status --wait-ready

Instala MicroK8s dentro de la VM:

Una vez que la VM esté lista, nos conectamos a ella y le instalamos MicroK8s. El --classic es importante para que Snap lo instale correctamente.

multipass exec k8s-dev -- sudo snap install microk8s --classic

Lanza una VM Ubuntu con Multipass:

Primero, necesitamos una máquina virtual donde instalar nuestro Kubernetes. Le daremos 4GB de RAM y 20GB de disco, que es suficiente para empezar.

multipass launch --name k8s-dev --memory 4G --disk 20G
  % multipass exec k8s-dev -- sudo microk8s status --wait-ready                                                                                                   
microk8s is running
high-availability: no
  datastore master nodes: 127.0.0.1:19001
  datastore standby nodes: none
addons:
  enabled:
    dns                  # (core) CoreDNS
    ha-cluster           # (core) Configure high availability on the current node
    helm                 # (core) Helm - the package manager for Kubernetes
    helm3                # (core) Helm 3 - the package manager for Kubernetes
  disabled:
    cert-manager         # (core) Cloud native certificate management
    cis-hardening        # (core) Apply CIS K8s hardening
    community            # (core) The community addons repository
    dashboard            # (core) The Kubernetes dashboard
    host-access          # (core) Allow Pods connecting to Host services smoothly
    hostpath-storage     # (core) Storage class; allocates storage from host directory
    ingress              # (core) Ingress controller for external access
    kube-ovn             # (core) An advanced network fabric for Kubernetes
    mayastor             # (core) OpenEBS MayaStor
    metallb              # (core) Loadbalancer for your Kubernetes cluster
    metrics-server       # (core) K8s Metrics Server for API access to service metrics
    minio                # (core) MinIO object storage
    observability        # (core) A lightweight observability stack for logs, traces and metrics
    prometheus           # (core) Prometheus operator for monitoring and logging
    rbac                 # (core) Role-Based Access Control for authorisation
    registry             # (core) Private image registry exposed on localhost:32000
    rook-ceph            # (core) Distributed Ceph storage using Rook
    storage              # (core) Alias to hostpath-storage add-on, deprecated

Copia la configuración de Kubeconfig a tu máquina local:

Para interactuar con tu nuevo clúster desde tu terminal local (usando kubectl), necesitas el archivo de configuración.

multipass exec k8s-dev -- sudo microk8s config > ~/.kube/k8s-dev.yaml
  % cat ~/.kube/k8s-dev.yaml
  
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSWlJMnMKbjQ5QXh5T1RBeHFaZnRPbVZVb0xrSDN0SXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    server: https://192.168.64.2:16443
  name: microk8s-cluster
contexts:
- context:
    cluster: microk8s-cluster
    user: admin
  name: microk8s
current-context: microk8s
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: blablable
    client-key-data: bñlablabla
💡
Ojo: Esto NO sobrescribirá tu kubeconfig actual. De todos modos, si ya tienes otros clústeres configurados, te recomiendo que hagas un respaldo.

Verifica tu clúster desde tu máquina local:

¡Listo! Ahora puedes usar kubectl para ver los nodos de tu clúster.

kubectl --kubeconfig ~/.kube/k8s-dev.yaml get nodes     
NAME      STATUS   ROLES    AGE   VERSION
k8s-dev   Ready    <none>   10m   v1.32.3

Limpiando el Desorden

Cuando termines de jugar, la belleza de los clústeres desechables es que los puedes borrar sin remordimientos:

multipass delete k8s-dev --purge && multipass ls
No instances found.

Este comando no solo borra la VM, sino que también la purga, liberando todo el espacio en disco. ¡Magia!

Novedades en Multipass 1.16

La movida hacia un modelo totalmente open source no es la única joya que trae Multipass 1.16. Esta versión candidata viene cargada de otras mejoras y arreglos que te harán la vida más fácil:

  • GUI Mejorada: La interfaz gráfica del usuario recibió un cariño, prometiendo una experiencia más fluida y menos dolorosa.
  • Correcciones en el Daemon/Servicio: Mejoras en la estabilidad y confiabilidad del servicio de fondo de Multipass. ¡Menos crasheos, más productividad!
  • Mejoras de Seguridad: Refuerzos en la seguridad para que tus entornos virtuales estén más blindados que nunca.
  • Documentación Aumentada: Una documentación más clara y completa para que no te pierdas en el camino y le saques el jugo a la herramienta.

Para más detalles sobre el Multipass 1.16 Release Candidate, puedes echarle un ojo al anuncio oficial en GitHub.

Release 1.16.0 RC · canonical/multipass
Multipass version 1.16.0 We’re pleased to announce Multipass 1.16.0, where the entire code base became fully open source! This is a consolidation release, bringing a ton of improvements to our GUI,…

La decisión de Canonical de liberar Multipass por completo es un golazo para toda la comunidad de desarrollo. No solo aumenta la transparencia y la confianza en el proyecto, sino que también es un empujón gigante a la innovación y la colaboración, asegurando que Multipass siga siendo una herramienta indispensable para la gestión de VMs ligeras. ¡A celebrar con un buen terremoto!

Fuente: Phoronix - Canonical Makes Multipass VM Manager Fully Open-Source por Michael Larabel.

Canonical Makes Multipass VM Manager Fully Open-Source
Canonical’s Multipass lightweight VM manager for not only Linux systems but also Windows and macOS is now considered fully open-source
Nicolás Georger

Nicolás Georger

Self-taught IT professional driving innovation & social impact with cybernetics, open source (Linux, Kubernetes), AI & ML.