¿Qué es KubeVirt?
KubeVirt es un proyecto open source que permite ejecutar, implementar y gestionar máquinas virtuales (VM) con Kubernetes como plataforma de organización fundamental. El proceso de ejecutar máquinas virtuales en contenedores se conoce como virtualización propia de los contenedores. KubeVirt permite llevarla a cabo empaquetando esas máquinas virtuales dentro de los contenedores y gestionando ambas cargas de trabajo desde una misma consola.
Con KubeVirt, las máquinas virtuales se comportan tal como lo harían en un entorno de virtualización tradicional, pero pueden ejecutarse en la misma plataforma que los microservicios organizados en contenedores y las aplicaciones propias de la nube. Todas las cargas de trabajo del entorno, incluidas las máquinas virtuales, se benefician de la infraestructura, la gestión y las herramientas propias de Kubernetes.
KubeVirt cuenta con el patrocinio de la Cloud Native Computing Foundation (CNCF) y es la base open source para Red Hat® OpenShift® Virtualization, una función de Red Hat OpenShift que admite la migración y la gestión de máquinas virtuales tradicionales en una plataforma confiable de aplicaciones de nube híbrida.
¿Cómo funciona KubeVirt?
KubeVirt amplía la interfaz de programación de aplicaciones (API) de Kubernetes para que pueda interactuar con las máquinas virtuales de la misma manera que lo hace con otros recursos y herramientas de Kubernetes. Esto permite que los contenedores y las máquinas virtuales compartan el mismo clúster y los mismos nodos y redes.
La función que incorpora KubeVirt está compuesta por tres elementos principales:
- Definiciones de recursos personalizados (CRD). Un recurso personalizado es un objeto que amplía la API de Kubernetes o te permite incorporar tu propia API a un proyecto o un clúster. El archivo de definición del recurso personalizado define el tipo de objeto y permite que el servidor de la API gestione el ciclo de vida completo. KubeVirt lleva las definiciones de los recursos personalizados a la API de Kubernetes, la cual permite a dicha plataforma gestionar las máquinas virtuales como si fueran otros objetos de Kubernetes (por ejemplo, pods).
- Controladores. Un controlador es un conjunto de implementaciones en ejecución en el clúster que proporciona un extremo de la API para la gestión de las nuevas CRD de KubeVirt.
- Agentes. Los agentes se ejecutan en los nodos de trabajo de un clúster para gestionar las tareas de los nodos que se relacionan con la virtualización.
Otra forma de entender KubeVirt es considerándolo un pod que se ejecuta con una máquina virtual basada en el kernel (KVM) ubicada dentro de él. En Kubernetes, un pod es un grupo de contenedores que se ejecutan juntos y comparten los mismos recursos, y la KVM (máquina virtual basada en el kernel) es una tecnología de open source que amplía el kernel de Linux® para que funcione como un hipervisor. Con KubeVirt, las instancias de las máquinas virtuales se ejecutan como pods. Esto permite gestionar los estados de las máquinas virtuales (detenida, pausada o en ejecución) y llevar a cabo operaciones como la implementación, la programación y la migración de las máquinas virtuales.
Recursos de Red Hat
¿Qué puedes hacer con KubeVirt?
Crear máquinas virtuales
Desde la línea de comandos virtctl con el subcomando "create vm", puedes crear máquinas virtuales dentro de un entorno de Kubernetes. También puedes controlar los tipos de instancias y las preferencias para gestionar las configuraciones de muchas máquinas virtuales a la vez, incluidos los ajustes de los perfiles de rendimiento y la personalización de las características del tiempo de ejecución.
Gestionar las máquinas virtuales
La interfaz de la línea de comandos (CLI) virtctl trabaja junto con kubectl, la herramienta de línea de comandos estándar de Kubernetes, para llevar a cabo acciones específicas de virtualización con el fin de gestionar las máquinas virtuales en un clúster de Kubernetes. Con virtctl, el administrador de la máquina virtual puede:
- Iniciar, reiniciar, detener y pausar las máquinas virtuales
- Gestionar las imágenes de los discos
- Acceder a las consolas en serie, gráficas y de ssh de las máquinas virtuales
- Realizar migraciones entre los nodos
La organización y la programación de Kubernetes brinda varios niveles de gestión para mantener el buen funcionamiento de las máquinas virtuales. Si también ejecutas cargas de trabajo de contenedores, KubeVirt te ayudará a gestionar y supervisar los contenedores y las máquinas virtuales desde un mismo plano de control.
Migrar las máquinas virtuales
KubeVirt admite varios métodos de migración para las máquinas virtuales, incluida la migración activa. Este tipo de migración consiste en trasladar una máquina virtual y reasignar su almacenamiento de un host a otro sin interrumpir el acceso a ella. Resulta una buena opción para aquellas máquinas virtuales que requieren estar en funcionamiento de manera constante, y permite evitar las interrupciones de las operaciones mientras se lleva a cabo la migración entre los nodos o las plataformas.
Realizar pruebas y ajustar la capacidad
Si ejecutas las máquinas virtuales en Kubernetes, podrás probar otras funciones. Por ejemplo, el importador de datos en contenedores (CDI) es una tecnología compatible que permite el almacenamiento en el disco para las máquinas virtuales de KubeVirt y puede gestionar los recursos que se utilizan para este proceso.
Kubernetes también está diseñado para poder ajustarse. A medida que pruebes las nuevas características, agregues funciones a tus cargas de trabajo y modernices las aplicaciones heredadas, podrás ampliar y reducir la capacidad del sistema automáticamente en función del uso de la unidad central de procesamiento (CPU).
Beneficios de KubeVirt
Integración en la nube
KubeVirt permite ejecutar cargas de trabajo que no pueden organizarse en contenedores con facilidad junto con aplicaciones desarrolladas en la nube y los microservicios. Los elementos de las aplicaciones virtualizadas se vuelven parte de una plataforma de desarrollo unificada en la cual los desarrolladores pueden diseñar, gestionar, implementar y ajustar las aplicaciones, independientemente de si los elementos están virtualizados, organizados en contenedores o una combinación de ambos.
Con KubeVirt, las máquinas virtuales también pueden beneficiarse de la integración de diversas características propias de Kubernetes, como el control de acceso basado en funciones (RBAC), la supervisión y el registro integrados, la malla de servicios y mucho más.
Modernización
La virtualización permite iniciar y detener entornos de sistema operativo diferentes con rapidez en un solo hardware. Este enfoque ofrece una gran cantidad de beneficios a los ecosistemas de TI, entre los que se incluyen la flexibilidad, la velocidad y la estabilidad. Sin embargo, a medida que las plataformas de virtualización cambian y se vuelven más costosas, algunas empresas buscan nuevas soluciones. KubeVirt es una opción atractiva porque no solo es un hipervisor de remplazo, sino que también ofrece un proceso para lograr la modernización y una plataforma para llevarla a cabo.
Con KubeVirt, puedes crear y ejecutar contenedores y máquinas virtuales de forma simultánea, pero también recibes una plataforma unificada en la cual puedes desarrollar nuevas aplicaciones y modernizar las cargas de trabajo heredadas. A medida que lleves a cabo la modernización, desbloquearás los recursos y la tecnología que se necesitan para explorar los avances en el desarrollo en la nube, la inteligencia artificial y el machine learning (aprendizaje automático).
Características avanzadas y paridad
KubeVirt, que es un proyecto de la CNCF, no solo se lanza con las características y las funciones avanzadas propias de Kubernetes, sino que además recibe mejoras y ampliaciones constantemente por parte de los colaboradores de la comunidad open source.
KubeVirt también ofrece una paridad de funciones con otras plataformas de virtualización empresariales, como VMware vSphere e HyperV, de manera que puedes llevar a cabo las mismas tareas que sueles realizar en un entorno de virtualización tradicional.
Rendimiento
KubeVirt puede cumplir los requisitos cambiantes de la CPU y la asignación de la memoria, lo que da como resultado una latencia más baja cuando se la compara con la de las soluciones de virtualización tradicionales. También optimiza la capa de abstracción entre el hardware de servidor dedicado (bare metal) y los entornos de tiempos de ejecución para lograr un uso más eficiente de los recursos y un mejor rendimiento.
El grupo de la escala de intereses especiales (escala SIG) de la comunidad de KubeVirt identificó la necesidad de evaluar el rendimiento y la capacidad de ajuste de las versiones de KubeVirt. Para ello, desarrolló técnicas para supervisar la manera en que este proyecto se adapta en los entornos de centros de datos. KubeVirt ahora comparte estos datos de rendimiento y capacidad de ajuste luego de cada lanzamiento.
Seguridad integrada
KubeVirt aprovecha la seguridad que ofrece Kubernetes, la cual garantiza que las políticas se apliquen de manera uniforme en todos los entornos, incluidas las máquinas virtuales. Permite que los usuarios especifiquen una sola configuración, como, por ejemplo, una política de red, que debe aplicarse a todos los pods de una implementación, en lugar de tener que configurar los controles en los sistemas de cada host del clúster. Esta función facilita la gestión de la seguridad de tus máquinas virtuales de manera uniforme y según resulte necesario.
Si las empresas vinculan las políticas a los sistemas de CI/CD y al marco del controlador de admisión de Kubernetes, les resultará más sencillo aplicar las políticas de control en las primeras etapas del ciclo de vida del desarrollo del software, lo cual evita las exposiciones durante la ejecución.
KubeVirt y Red Hat
Red Hat OpenShift Virtualization es una plataforma de aplicaciones moderna que se basa en KubeVirt y la máquina virtual basada en el kernel (KVM), y que puede ejecutar máquinas virtuales y contenedores de forma simultánea. El kit de herramientas de migración para la virtualización que incluye brinda las herramientas que se necesitan para migrar las aplicaciones desde una plataforma de virtualización tradicional en unos pocos pasos sencillos. Agiliza la distribución con Red Hat Ansible® Automation Platform, desde la migración según las necesidades hasta las operaciones del día 2 y la resolución de problemas. Supervisa la seguridad y el rendimiento de tus máquinas virtuales desde una única consola gracias a Red Hat Advanced Cluster Management for Kubernetes. Con las opciones adicionales de soporte y las integraciones de los partners para el almacenamiento, los backups, la recuperación ante desastres y las redes, puedes confiar en Red Hat para que mantenga tu infraestructura virtual en buen funcionamiento en toda la nube híbrida y te ayude a modernizar los sistemas cuando tengas todo listo para hacerlo.
Blogs de Red Hat
Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.