vSphere IaaS control plane ofrece una funcionalidad de servicio de máquina virtual que permite a los ingenieros de desarrollo y operaciones implementar y ejecutar máquinas virtuales, además de contenedores, en un entorno de Kubernetes común y compartido. Puede utilizar el servicio de máquina virtual para administrar el ciclo de vida de las máquinas virtuales en un espacio de nombres. El servicio de máquina virtual administra las máquinas virtuales independientes y las máquinas virtuales que conforman los clústeres de Tanzu Kubernetes Grid.

El servicio de máquina virtual responde a las necesidades de los equipos de desarrollo y operaciones que usan Kubernetes, pero tienen cargas de trabajo basadas en máquinas virtuales existentes que no se pueden colocar en contenedores fácilmente. También ayuda a los usuarios a reducir la sobrecarga de administrar una plataforma que no es de Kubernetes junto con una plataforma de contenedor. Al ejecutar contenedores y máquinas virtuales en una plataforma de Kubernetes, los equipos de desarrollo y operaciones pueden consolidar su marca de carga de trabajo en una sola plataforma.

Nota: Además de las máquinas virtuales independientes, el servicio de máquina virtual administra las máquinas virtuales que conforman los clústeres de Tanzu Kubernetes Grid. Para obtener información acerca de los clústeres, consulte la documentación de Uso del servicio TKG con el plano de control de IaaS de vSphere.
El servicio de máquina virtual administra las máquinas virtuales independientes y las máquinas virtuales que conforman los clústeres de Tanzu Kubernetes Grid

Cada máquina virtual implementada a través del servicio de máquina virtual funciona como una máquina completa que ejecuta todos los componentes, incluido su propio sistema operativo, sobre la infraestructura de vSphere IaaS control plane. La máquina virtual tiene acceso a las redes y al almacenamiento que proporciona Supervisor, y se administra mediante el comando estándar kubectl de Kubernetes. La máquina virtual se ejecuta como un sistema completamente aislado que está a prueba de interferencias de otras máquinas virtuales o cargas de trabajo en el entorno de Kubernetes.

¿Cuándo utilizar máquinas virtuales en una plataforma de Kubernetes?

Por lo general, la decisión de ejecutar cargas de trabajo en un contenedor o en una máquina virtual depende de sus necesidades y objetivos empresariales. Entre los motivos para utilizar las máquinas virtuales aparecen los siguientes:

  • Las aplicaciones no se pueden poner en contenedores.
  • Tiene requisitos de hardware específicos para el proyecto.
  • Las aplicaciones están diseñadas para un kernel personalizado o un sistema operativo personalizado.
  • Las aplicaciones son más adecuadas para ejecutarse en una máquina virtual.
  • Desea tener una experiencia de Kubernetes coherente y evitar la sobrecarga. En lugar de ejecutar conjuntos separados de infraestructura para las plataformas de contenedor y que no son de Kubernetes, puede consolidar estas pilas y administrarlas con un comando de kubectl familiar.

Conceptos del servicio de máquina virtual

Para describir el estado de una máquina virtual que se implementará en un espacio de nombres de vSphere, utilice parámetros como una clase de máquina virtual, una imagen de máquina virtual y una clase de almacenamiento. A continuación, el servicio de máquina virtual reúne estas especificaciones para crear máquinas virtuales independientes o máquinas virtuales que admitan clústeres de Tanzu Kubernetes Grid.

La especificación de máquina virtual combina la clase de máquina virtual, la imagen de máquina virtual y la clase de almacenamiento para crear una máquina virtual
Servicio de VM
El servicio de máquina virtual es un componente de vSphere IaaS control plane que proporciona una API declarativa de tipo Kubernetes para la administración de las máquinas virtuales y los recursos de vSphere asociados. El servicio de máquina virtual permite a los administradores de vSphere entregar recursos y proporcionar plantillas, como clases e imágenes de máquinas virtuales, a Kubernetes. Los ingenieros de desarrollo y operaciones pueden utilizar estos recursos para describir el estado deseado de una máquina virtual. Después de que los ingenieros de desarrollo y operaciones especifiquen el estado de la máquina virtual, el servicio de máquina virtual convierte el estado deseado en un estado realizado en función de los recursos de la infraestructura de respaldo.

Una máquina virtual creada a través del servicio de máquina virtual solo se puede administrar desde el espacio de nombres de Kubernetes con los comandos de kubectl. Los administradores de vSphere no pueden administrar la máquina virtual desde vSphere Client, pero pueden mostrar sus detalles y supervisar los recursos que utiliza. Para obtener información, consulte Supervisar máquinas virtuales disponibles en vSphere IaaS control plane.

Clase de VM
La clase de máquina virtual es una especificación de máquina virtual que se puede utilizar para solicitar un conjunto de recursos para una máquina virtual. La clase de máquina virtual es controlada y administrada por un administrador de vSphere, y define parámetros como el número de CPU virtuales, la capacidad de memoria y la configuración de reserva. Los parámetros definidos están avalados y garantizados por los recursos de infraestructura subyacentes de un Supervisor.

Un administrador de vSphere puede crear clases de máquinas virtuales personalizadas.

Además, la administración de cargas de trabajo ofrece varias clases de máquinas virtuales predeterminadas. Por lo general, cada tipo de clase predeterminada viene en dos ediciones: garantizada y de mejor esfuerzo. Una edición garantizada reserva por completo los recursos que solicita una especificación de máquina virtual. Una edición de clase de mejor esfuerzo no lo hace, y permite que los recursos se sobreasignen. Por lo general, en un entorno de producción, se utiliza un tipo garantizado.

A continuación, se muestran ejemplos de clases de máquinas virtuales predeterminadas.

Clase CPU Memoria (GB) CPU y memoria reservadas
guaranteed-large 4 16
best-effort-large 4 16 No
guaranteed-small 2 4
best-effort-small 2 4 No

vSphere puede asignar cualquier cantidad de clases de máquinas virtuales existentes para que estén disponibles para los ingenieros de desarrollo y operaciones en un espacio de nombres específico.

La clase de máquina virtual proporciona una experiencia simplificada para los ingenieros de desarrollo y operaciones. Estos no necesitan comprender la configuración completa de cada máquina virtual que planean crear. En su lugar, pueden seleccionar una clase de máquina virtual entre las opciones disponibles, y el servicio de máquina virtual administra la configuración de la máquina virtual.

En el lado de Kubernetes, las clases de máquinas virtuales aparecen como recursos VirtualMachineClass.

Imagen de máquina virtual
Una imagen de máquina virtual es una plantilla que contiene una configuración de software, que incluye un sistema operativo, aplicaciones y datos.

Cuando los ingenieros de desarrollo y operaciones crean máquinas virtuales, pueden seleccionar imágenes de la biblioteca de contenido asociada con el espacio de nombres. En desarrollo y operaciones, las imágenes se exponen como objetos de VirtualMachineImage.

Un administrador de vSphere puede crear imágenes de máquina virtual que sean compatibles con vSphere IaaS control plane y cargarlas en una biblioteca de contenido.

Biblioteca de contenido
Un ingeniero de desarrollo y operaciones utiliza una biblioteca de contenido como origen de las imágenes para crear una máquina virtual. De forma similar a las clases de máquina virtual, un administrador de vSphere asigna bibliotecas de contenido existentes a un espacio de nombres o a un clúster para que estén disponibles para los ingenieros de desarrollo y operaciones. El administrador de vSphere también puede hacer que se pueda escribir en la biblioteca de contenido del espacio de nombres. Este permiso adicional permite a los usuarios de desarrollo y operaciones publicar sus imágenes en la biblioteca.
Clase de almacenamiento
El servicio de máquina virtual utiliza clases de almacenamiento para colocar discos virtuales y asociar volúmenes persistentes de forma dinámica. Para obtener más información sobre las clases de almacenamiento, consulte Usar almacenamiento persistente con cargas de trabajo de Supervisor en vSphere IaaS control plane.
Especificación de la máquina virtual
Los ingenieros de desarrollo y operaciones describen el estado deseado de una máquina virtual en un archivo YAML que une la imagen de la máquina virtual, la clase de máquina virtual y la clase de almacenamiento.
Operador de máquina virtual para Kubernetes
El operador de máquina virtual permite la administración de máquinas virtuales con una API declarativa de estilo Kubernetes.
A partir de vSphere 8.0 Update 3, vSphere IaaS control plane admite el operador de máquina virtual v1alpha2. Entre otras ventajas, esta versión ofrece las siguientes capacidades:
  • Compatibilidad mejorada con proveedores de arranque, incluida la compatibilidad con Cloud-Init y Windows en línea.
  • Configuración mejorada de redes invitadas.
  • Capacidades de estado aumentadas.
  • Compatibilidad con puertas de preparación definidas por el usuario.
  • Nueva API de VirtualMachineWebConsoleRequest.

Además de los nuevos cambios de API específicos de v1alpha2, la mayoría de las otras API de v1alpha2 pueden funcionar en paridad con v1alpha1. La mayoría de los campos de las especificaciones de máquina virtual son compatibles con versiones anteriores de v1alpha1.

Después de la publicación de v1alpha2, puede seguir usando los objetos v1alpha1. Todos los objetos v1alpha1 se convertirán automáticamente a v1alpha2 mediante webhooks de conversión integrados en el operador de máquina virtual.

Para obtener información sobre el operador de máquina virtual v1alpha2 y los campos compatibles, consulte https://vm-operator.readthedocs.io/en/stable/ref/api/v1alpha2/.

Redes
El servicio de máquina virtual no tiene ningún requisito específico y se basa en la configuración de red disponible en vSphere IaaS control plane. El servicio de máquina virtual admite ambos tipos de redes, las redes de vSphere o NSX. Cuando se implementan máquinas virtuales, un proveedor de red disponible asigna direcciones IP estáticas a las máquinas virtuales. Para obtener más información, consulte Redes de supervisor en la documentación de Planificación y conceptos del plano de control de IaaS de vSphere.

Servicio de máquina virtual y Supervisor con zonas de vSphere

Cuando se crean máquinas virtuales en un Supervisor de tres zonas, la instancia de máquina virtual se replica en todas las zonas disponibles. Para controlar la colocación de las máquinas virtuales a través del archivo YAML, el equipo de desarrollo y operaciones puede utilizar la etiqueta de Kubernetes topology.kubernetes.io/zone. Por ejemplo, topology.kubernetes.io/zone: zone-a02.

Flujo de trabajo para aprovisionar y supervisar una máquina virtual

Como administrador de vSphere, debe establecer barreras para la directiva y el gobierno de las máquinas virtuales, y entregar recursos de máquina virtual, como clases de máquinas virtuales y plantillas de máquina virtual, a los ingenieros de desarrollo y operaciones. Después de implementar una máquina virtual, puede supervisarla mediante vSphere Client.

Paso Realizado por Descripción
1 Administrador de vSphere Cree bibliotecas de contenido y asígnelas a un espacio de nombres o un Supervisor.
2 Administrador de vSphere Cree una clase de máquina virtual y asígnela a un espacio de nombres.

Para usar la vGPU de NVIDIA, configure un dispositivo PCI en la clase de máquina virtual. Consulte Implementar una máquina virtual con vGPU y otros dispositivos PCI en vSphere IaaS control plane.

3 Ingeniero de desarrollo y operaciones Aprovisione una máquina virtual en un espacio de nombres de Kubernetes.

Para las máquinas virtuales del clúster de Tanzu Kubernetes Grid, consulte Uso del servicio TKG con el plano de control de IaaS de vSphere.

4 Administrador de vSphere Supervise las máquinas virtuales implementadas.
5 Ingeniero de desarrollo y operaciones Publique una imagen de máquina virtual en una biblioteca de contenido.