Deploy a Virtual Machine (VM) with KubeVirt
Objetivos
Este tutorial tiene como objetivo proporcionar pasos claros para desplegar y configurar máquinas virtuales (VM) en KubeVirt en su clúster OpenShift.
Se abordarán dos escenarios:
- Creación y despliegue de una máquina virtual Fedora con NGINX.
- Creación de una máquina virtual Windows Server 2022 personalizada con IIS.
Limitaciones conocidas
- Los templates faltantes en el catálogo de OpenShift pueden recuperarse desde el repositorio oficial de KubeVirt:
https://github.com/kubevirt/common-templates/tree/master. - Las máquinas virtuales desplegadas deben ser compatibles con KubeVirt (controladores virtio, formato de discos, etc.).
- La configuración depende de los privilegios asignados en el proyecto de OpenShift correspondiente.
- Se requiere una configuración avanzada de red (por ejemplo: reenvío de puertos) para acceder a los servicios alojados en las VM.
Puntos fuertes
- Flexibilidad: Permite desplegar máquinas virtuales directamente desde OpenShift, simplificando el alojamiento de aplicaciones que requieren un entorno de máquina virtual.
- Compatibilidad con Windows y Linux: Soporta Fedora y Windows Server.
- Facilidad de integración: Utiliza los servicios inherentes a KubeVirt y OpenShift (PVC, reenvío de puertos, ingress).
Versiones de los software
- OpenShift: v4.15 o superior
- Kubernetes: v1.24 o superior
- KubeVirt: v0.56 o superior
- VMware Workstation (para la conversión de Windows Server): Versión 16 o superior
- qemu-img: Versión 6.1 o superior
Requis previos
Antes de comenzar, asegúrese de lo siguiente:
- Que KubeVirt esté correctamente instalado en OpenShift.
- De tener acceso de administrador al proyecto de OpenShift donde se desplegará la VM.
- De poseer las claves SSH para acceder a la máquina virtual Fedora.
- De tener instalados y configurados las siguientes herramientas:
- CLI de OpenShift (
oc) - qemu-img (para la conversión de discos al formato
qcow2)
- CLI de OpenShift (
- De tener acceso al blob de Azure donde se almacenará la imagen de Windows Server.
Demo Plan
Visión general de los pasos
- Desplegar una máquina virtual Fedora con NGINX.
- Desplegar una máquina virtual Windows Server con IIS.
- Configurar el acceso de red (SSH para Fedora, RDP para Windows).
- Verificar que los servicios (NGINX/IIS) son accesibles desde su navegador.
Archivos necesarios
Necesitará los siguientes archivos para la implementación:
- ssh-port-forward.yaml: Manifiesto para configurar el acceso SSH a la VM Fedora.
- nginx-expose.yaml: Manifiesto para exponer NGINX en OpenShift.
- rdp-port-forward.yaml: Manifiesto para configurar el acceso RDP a la VM Windows.
- iis-expose.yaml: Manifiesto para exponer IIS en OpenShift.
Flujo de despliegue
Paso 1: Desplegar una VM Fedora con NGINX
-
Crear una VM Fedora en OpenShift:
- Acceda a la vista Administrador en OpenShift y seleccione Virtualization.
- Vaya al panel Catalog y haga clic en Crear una nueva VM.
- Rellene los siguientes parámetros:
- Sistema operativo: Fedora
- Tipo de instancia: Serie U con 2 CPU y 8 GB de RAM
- Nombre de la VM:
fedora-nginx
- Agregue su clave SSH pública (
mysshkey) para acceder a la VM. - Haga clic en Crear.
-
Configurar el acceso CLI a OpenShift:
-
Ejecute el siguiente comando para trabajar en el proyecto OpenShift correcto:
oc project demokubevirt -
Inicie sesión en la API de OpenShift:
oc login --server=api-ocp01-{your-id}.paas.cloud-temple.com --web
-
-
Configurar el acceso SSH a la VM Fedora:
-
Aplicar el manifiesto para configurar el reenvío de puertos para SSH:
oc apply -f ssh-port-forward.yaml -
Redirija el puerto localmente desde su máquina:
oc port-forward svc/fedora-service-ssh 2222:22 -
Conéctese a la VM desde una nueva terminal:
ssh cloud-user@127.0.0.1 -p 2222 -o StrictHostKeyChecking=no
-
-
Desplegar NGINX en Fedora:
-
Conéctese a la VM como se indicó anteriormente y ejecute los siguientes comandos:
sudo dnf update -y
sudo dnf install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx -
Verifique que NGINX esté funcionando correctamente:
sudo systemctl status nginx
-
-
Exponer NGINX en OpenShift:
-
Aplicar el siguiente manifiesto para exponer el servicio:
oc apply -f nginx-expose.yaml
-
-
Acceder al sitio web NGINX:
- Abra su navegador y acceda a:
https://nginx-fedora.apps-ocp01-{your-id}.paas.cloud-temple.com.
- Abra su navegador y acceda a:
Paso 2: Desplegar una VM Windows Server con IIS
-
Crear una imagen personalizada de Windows:
-
Instale una VM Windows Server en VMware Workstation con los siguientes parámetros:
- Controladores: Virtio, SATA, e1000e, UEFI.
- Ejecute un Sysprep.
- Exporte la imagen en formato OVF.
-
Convierta la imagen de disco al formato qcow2 utilizando
qemu-img:qemu-img convert -f vmdk -O qcow2 WindowsServer2022-OC-disk1.vmdk output.qcow2 -
Suba la imagen convertida a un blob de Azure y obtenga la clave SAS.
-
-
Crear una plantilla personalizada para Windows Server en KubeVirt:
- Desde la pestaña catálogo de OpenShift, cree una plantilla con los siguientes parámetros:
- 2 CPU, 8 GB RAM, 100 GB de almacenamiento.
- Configure el almacenamiento para usar virtio.
- Utilice la URL del blob como fuente de disco e incluya la clave SAS.
- Desde la pestaña catálogo de OpenShift, cree una plantilla con los siguientes parámetros:
-
Configurar IIS en Windows:
-
Conéctese a la VM (contraseña de administrador, teclado, etc.).
-
Instale IIS desde la consola:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
-
-
Configurar el acceso RDP:
-
Aplicar los siguientes archivos YAML:
oc apply -f rdp-port-forward.yaml
oc apply -f iis-expose.yaml -
Redirija el puerto RDP localmente:
oc port-forward svc/windows-service-rdp 2222:3389 -
Conéctese mediante su cliente RDP:
mstsc -v 127.0.0.1:2222
-
-
Acceder al sitio web IIS:
- En su navegador, vaya a:
https://iis-windows.apps-ocp01-{your-id}.paas.cloud-temple.com.
- En su navegador, vaya a:
Criterios de validación
- Las máquinas virtuales Fedora y Windows Server se despliegan sin errores.
- El acceso SSH a Fedora y RDP a Windows funcionan mediante reenvío de puertos.
- Los servicios NGINX e IIS son accesibles públicamente a través de las URL configuradas.
Conclusión
Esta guía le ha permitido implementar máquinas virtuales Fedora y Windows Server en KubeVirt con OpenShift. Ha aprendido a configurar el acceso de red (SSH/RDP) y a exponer servicios web. Estos pasos pueden reproducirse para diversos escenarios en los que se necesiten máquinas virtuales en un entorno PaaS OpenShift Cloud Temple. 🚀