@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

kubernetes-crear-maquinas-virtuales-en-un-cluster-con-kubevirt-1

Kubernetes: Crear máquinas virtuales en un clúster con KubeVirt

Kubernetes: Crear máquinas virtuales en un clúster con KubeVirt

Cuando hablamos de Kubernetes, tendemos a pensar que sólo podemos ejecutar contenedores y no máquinas virtuales. Hoy veremos que disponemos de herramientas que permiten la implementación de máquinas virtuales sobre un cluster de Kubernetes. Esto lo podremos realizar bajo la implementación de KubeVirt.

KubeVirt es un proyecto de código abierto de Cloud Native Computing Foundation (CNCF) que ofrece una API de virtualización y un entorno de ejecución para definir y administrar máquinas virtuales dentro un clúster de Kubernetes.

Vamos a poder montar máquinas tanto Linux como Windows, lo que abre un abanico de posibilidades bastante grande. Lo veo ideal para laboratorios, ya que nos permite trabajar con aplicaciones que no pueden estar en un contenedor o realizar pruebas con aplicaciones contenerizadas (en otros Pods) sin volvernos muy locos (imaginar las posibilidades en un laboratorio de ciberseguridad, por ejemplo, donde quieres simular ataques o bastionados a este tipo de infraestructuras)

kubernetes-crear-maquinas-virtuales-en-un-cluster-con-kubevirt-2

Os dejo algo más de información:

DOCUMENTACION OFICIAL: https://kubevirt.io/

OTROS ENLACES DE INTERES:

 

kubernetes-crear-maquinas-virtuales-en-un-cluster-con-kubevirt-1

Instalar cluster 3 nodos Kubernetes en LXC Debian 12 Proxmox con Terraform

Os dejo la entrada donde lo explico:

Instalar cluster 3 nodos Kubernetes en LXC Debian 12 Proxmox con Terraform

Si usáis k3s os puede servir también esta entrada:

Kubernetes: [INFO] systemd: Starting k3s-agent not finish

Instalar KubeVirt en cluster Kubernetes

Agrego unas líneas al script para poder instalar KubeVirt en el cluster:

Creamos el script y le damos permisos de ejecución:

Con el siguiente contenido:

Ejecutamos en el clúster para que se generen todos los componentes:

Podéis revisar los Pods generados:

Instalar CDI (Containerized Data Importer) Kubevirt

DOCUMENTACION OFICIAL: https://kubevirt.io/user-guide/operations/containerized_data_importer/

Ahora para implementar máquinas virtuales a través de kubevirt, usaremos CDI. Que nos permite utilizar volúmenes persistentes como discos para máquinas virtuales, para ello usa virtctl e imágenes de sistemas operativos con extensión RAW y QCOW2:

Preparar un PVC para Importar una Imagen de Disco

Para usar CDI para importar una imagen de disco, necesitas crear un PersistentVolumeClaim (PVC) que especifique la URL de la imagen a descargar. Aquí te muestro un ejemplo de cómo crear un PVC que importará una imagen de disco. Usaré “CirOS” que es una distribución a la mínima expresión:

  • Nota: Debes reemplazar your-storage-class con el nombre de tu clase de almacenamiento específica. Además, asegúrate de que la URL proporcionada es accesible desde tu clúster. Puedes usar “nfs”, “local” o “ceph”, por ejemplo. Como esto es un lab, os muestro como lo monto en local, pero lo normal es que se haga con nfs u otro almacenamiento compartido por todos los nodos:

Configurar una StorageClass para Almacenamiento Local

Generaré el siguiente fichero YAML (“local-storage-class.yaml”) con el siguiente valor:

Lo lanzamos:

Si todo ha ido bien veremos esto:

Crear un PersistentVolume

Antes de que puedas utilizar el PVC con almacenamiento local, necesitas crear un PersistentVolume que corresponda a un disco o partición específica en tus nodos. Os dejo un ejemplo:

Genero las carpetas donde dejaremos el disco:

Ahora generamos el fichero “local-pv.yaml“:

Aplicamos:

Crear un PVC para Importar una Imagen de Disco

Ahora que tienes el PersistentVolume y la StorageClass, puedes definir el PVC que usará CDI para importar una imagen de disco. Aquí os dejo un ejemplo que especifica la URL de la imagen a descargar:

Guardamos como “vm-disk-import-pvc.yaml” y ejecutamos:

Y verificamos:

Utilizar el PVC en una Máquina Virtual con KubeVirt

Una vez que la imagen ha sido importada correctamente y el PVC está listo, puedes usar este PVC como volumen de disco para una máquina virtual gestionada por KubeVirt. Os dejo como hacerlo, generamos un YAML “crear-maquina-cirros.yaml“:

Generamos la máquina:

Gestionar máquina virtual bajo Kubernetes con Virtctl

Utilizaré Virtctl como herramienta de línea de comandos para disponer de comandos adicionales para administrar máquinas virtuales ya que no lo podemos hacer con “kubectl” como con los contenedores:

Ahora podemos arrancar la máquina virtual:

O acceder vía consola:

Espero os parezca interesante…

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

kubernetes-info-systemd-starting-k3s-agent-not-finish-1

Kubernetes: [INFO] systemd: Starting k3s-agent not finish

Kubernetes: [INFO] systemd: Starting k3s-agent not finish Entrada rápida…os voy a explicar un error que …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

11 − 6 =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu