# Instalación de KubeVirt y CDI en Kubernetes (Ubuntu/SUSE) ## 1. Instala KubeVirt y CDI KubeVirt permite crear y gestionar máquinas virtuales dentro de Kubernetes, integrando cargas virtualizadas junto a contenedores. CDI (Containerized Data Importer) facilita la gestión y carga de discos e ISOs para esas VMs. > **Nota:** Puedes usar manifiestos oficiales, o crear tu carpeta `kubevirt/` si deseas versionar los YAML personalizados. ### Instala KubeVirt (recomendado hacerlo tras tener la red y almacenamiento) ```bash export KUBEVIRT_VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases/latest | grep tag_name | cut -d '"' -f 4) kubectl create namespace kubevirt kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-operator.yaml kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-cr.yaml ``` ### Instala CDI (para gestión de discos/ISOs) ```bash export CDI_VERSION=$(curl -s https://api.github.com/repos/kubevirt/containerized-data-importer/releases/latest | grep tag_name | cut -d '"' -f 4) kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/${CDI_VERSION}/cdi-operator.yaml kubectl create -f https://github.com/kubevirt/containerized-data-importer/releases/download/${CDI_VERSION}/cdi-cr.yaml ``` --- ## 2. Instala virtctl (CLI de KubeVirt) `virtctl` es una herramienta de línea de comandos para interactuar fácilmente con las máquinas virtuales de KubeVirt: arranque, apagado, consola, etc. ```bash curl -L -o virtctl https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/virtctl-${KUBEVIRT_VERSION}-linux-amd64 chmod +x virtctl sudo mv virtctl /usr/local/bin/ ``` --- ## 3. Habilita KVM para tu usuario Para poder crear y gestionar máquinas virtuales, tu usuario debe pertenecer al grupo `kvm` (acceso al hardware de virtualización). ```bash sudo usermod -aG kvm $(whoami) # Reinicia sesión o ejecuta 'newgrp kvm' para aplicar ``` --- ## 4. Despliega kubevirt-manager `kubevirt-manager` es una interfaz web sencilla para gestionar tus máquinas virtuales desde el navegador. Esta sección aplica sus manifiestos en Kubernetes. La carpeta `kubevirt-manager/` contiene todos los manifiestos organizados por tipo: ```bash kubectl apply -k kubevirt-manager/ ``` Puedes comprobar el estado: ```bash kubectl get pods -n kubevirt-manager ```