Puede usar vSphere IaaS control plane para transformar vSphere en una plataforma para ejecutar cargas de trabajo de Kubernetes de forma nativa en la capa de hipervisor. Cuando se habilita en clústeres de vSphere, vSphere IaaS control plane proporciona la capacidad de ejecutar cargas de trabajo de Kubernetes directamente en hosts ESXi y de crear clústeres de Kubernetes ascendentes con espacios de nombres dedicados llamados espacio de nombres de vSphere.

Los desafíos de la pila de aplicaciones de hoy

Los sistemas distribuidos actuales se construyen con varios microservicios que normalmente ejecutan una gran cantidad de máquinas virtuales y pods de Kubernetes. Normalmente, una pila que no se basa en una vSphere IaaS control plane se compone de un entorno virtual subyacente, con una infraestructura de Kubernetes que se implementa dentro de las máquinas virtuales y los pods de Kubernetes correspondientes que también se ejecutan en estas máquinas virtuales. Tres funciones separadas controlan cada sector de la pila: los desarrolladores de aplicaciones, los administradores de clústeres de Kubernetes y los administradores de vSphere.

Figura 1. Pila de aplicaciones de hoy
Una pila con 3 capas: carga de trabajo de Kubernetes, clúster de Kubernetes y entorno virtual. Las administran 3 funciones: desarrollador, administrador de clústeres y administrador de vSphere.
Las diferentes funciones no tienen control ni visibilidad sobre los entornos de las demás:
  • Como desarrollador de aplicaciones, puede ejecutar pods de Kubernetes, así como implementar y administrar aplicaciones basadas en Kubernetes. No tiene visibilidad sobre toda la pila que ejecuta cientos de aplicaciones.
  • Como ingeniero de desarrollo y operaciones o administrador de clústeres, solo tiene control sobre la infraestructura de Kubernetes, sin las herramientas para administrar o supervisar el entorno virtual y resolver los problemas relacionados con recursos y otros problemas.
  • Como administrador de vSphere, tiene control total sobre el entorno virtual subyacente, pero no tiene visibilidad sobre la infraestructura de Kubernetes, la colocación de los distintos objetos de Kubernetes en el entorno virtual y la forma en que estos consumen los recursos.

Las operaciones en la pila completa pueden ser desafiantes, ya que requieren comunicación entre las tres funciones. La falta de integración entre las diferentes capas de la pila también puede presentar desafíos. Por ejemplo, el programador de Kubernetes no tiene visibilidad sobre el inventario de vCenter Server y no puede colocar los pods de forma inteligente.

¿Cómo ayuda vSphere IaaS control plane?

vSphere IaaS control plane crea un plano de control de Kubernetes directamente en la capa de hipervisor. Como administrador de vSphere, puede activar los clústeres de vSphere existentes para vSphere IaaS control plane y así crear una capa de Kubernetes dentro de los hosts ESXi que forman parte de los clústeres. Los clústeres de vSphere activados para vSphere IaaS control plane se denominan Supervisores.

Figura 2. vSphere IaaS control plane

La pila de la plataforma IaaS con cargas de trabajo se encuentra en la parte superior, mientras que la pila de entorno virtual se encuentra en la parte inferior. Las administran dos funciones: desarrollador y administrador de vSphere.
Al tener un plano de control de Kubernetes en la capa de hipervisor, se habilitan las siguientes capacidades en vSphere:
  • Como administrador de vSphere, puede crear espacios de nombres en el Supervisor, denominados espacios de nombres de vSphere, y configurarlos con la cantidad especificada de memoria, CPU y almacenamiento. Puede proporcionar espacios de nombres de vSphere a los ingenieros de desarrollo y operaciones.
  • Como ingeniero de desarrollo y operaciones, puede ejecutar cargas de trabajo de Kubernetes en la misma plataforma con grupos de recursos compartidos dentro de un espacio de nombres de vSphere. Puede implementar y administrar varios clústeres de Kubernetes ascendentes creados mediante Tanzu Kubernetes Grid. También puede implementar contenedores de Kubernetes directamente en el Supervisor dentro de un tipo especial de máquina virtual denominado pod de vSphere. También puede implementar máquinas virtuales comunes.
  • Como administrador de vSphere, puede administrar y supervisar pods de vSphere, máquinas virtuales y clústeres de Tanzu Kubernetes Grid mediante el uso de vSphere Client.
  • Como administrador de vSphere, tiene total visibilidad sobre los pods de vSphere y clústeres de Tanzu Kubernetes Grid que se ejecutan en diferentes espacios de nombres, su colocación en el entorno y la forma en que estos usan recursos.

La ejecución de Kubernetes en la capa de hipervisor también facilita la colaboración entre los administradores de vSphere y los equipos de ingenieros de desarrollo y operaciones, ya que ambas funciones trabajan con los mismos objetos.

¿Qué es una carga de trabajo?

En vSphere IaaS control plane, las cargas de trabajo son aplicaciones implementadas de una de las siguientes maneras:

  • Aplicaciones que constan de contenedores que se ejecutan dentro de pods de vSphere.
  • Cargas de trabajo aprovisionadas a través del servicio de máquina virtual.
  • Clústeres de Tanzu Kubernetes Grid implementados mediante Tanzu Kubernetes Grid.
  • Aplicaciones que se ejecutan dentro de los clústeres de Tanzu Kubernetes Grid.

¿Qué son las zonas de vSphere?

Las zonas de vSphere proporcionan alta disponibilidad frente a errores en el nivel de clúster en las cargas de trabajo implementadas en vSphere IaaS control plane. Como administrador de vSphere, puede crear zonas de vSphere en el vSphere Client y después asignar clústeres de vSphere a las zonas. Las zonas se utilizan para implementar Supervisores en el entorno de vSphere IaaS control plane.

Puede implementar un Supervisor en tres zonas de vSphere para alta disponibilidad en el nivel de clúster. También puede implementar un Supervisor en un solo clúster de vSphere, lo que creará una zona de vSphere automáticamente y se asignará al clúster, o bien puede utilizar un clúster que ya esté asignado a una zona. Para obtener más información, consulte Arquitectura de Supervisor y Implementaciones de clúster y de Supervisor zonal.

¿Qué es un clúster de Tanzu Kubernetes Grid?

Un clúster de Tanzu Kubernetes Grid es una distribución completa de Kubernetes que VMware compila, firma y admite. Puede aprovisionar y operar clústeres de Tanzu Kubernetes Grid ascendentes en Supervisores mediante el uso de Tanzu Kubernetes Grid.

Un clúster de Tanzu Kubernetes Grid aprovisionado por Tanzu Kubernetes Grid tiene las siguientes características:
Características del clúster de TKG, de izquierda a derecha: personalizada, bien integrada, lista para producción, totalmente compatible y administrada por Kubernetes
  • Instalación personalizada de Kubernetes. Tanzu Kubernetes Grid proporciona unos valores predeterminados adaptados y optimizados para que vSphere pueda aprovisionar clústeres de Tanzu Kubernetes Grid. El uso del Tanzu Kubernetes Grid puede ayudarle a reducir la cantidad de tiempo y esfuerzo que suele invertir en implementar y ejecutar un clúster de Kubernetes de nivel empresarial
  • Integrado con la infraestructura de vSphere. Un clúster de Tanzu Kubernetes Grid se integra con la pila de SDDC de vSphere, lo que incluye el almacenamiento, las redes y la autenticación. Asimismo, un clúster de Tanzu Kubernetes Grid se basa en una instancia de Supervisor que se asigna clústeres de vSphere. Debido a esta estrecha integración, la ejecución de un clúster de Tanzu Kubernetes Grid resulta una experiencia de producto unificada.
  • Listo para producción. Tanzu Kubernetes Grid aprovisiona clústeres de Tanzu Kubernetes Grid preparados para producción. Puede ejecutar cargas de trabajo de producción sin necesidad de realizar ninguna configuración adicional. Y, además, puede garantizar su disponibilidad y permitir que se realicen actualizaciones graduales del software de Kubernetes, así como ejecutar diferentes versiones de Kubernetes en clústeres distintos.
  • Alta disponibilidad para cargas de trabajo de Kubernetes. Los clústeres de Tanzu Kubernetes Grid implementados en un Supervisor de vSphere de tres zonas están protegidos contra fallos en el nivel de clúster de vSphere. Los nodos de carga de trabajo y de plano de control de los clústeres de Tanzu Kubernetes Grid se distribuyen entre las tres zonas de vSphere, lo que hacen que las cargas de trabajo de Kubernetes se ejecutan en ellas tengan alta disponibilidad. Los clústeres de Tanzu Kubernetes Grid que se ejecutan en un Supervisor de una zona están protegidos contra fallos en el nivel de host ESXi, mediante vSphere HA.
  • Totalmente compatible con VMware. Los clústeres de Tanzu Kubernetes Grid son de código abierto basado en Linux de VMware, se implementan en infraestructura de vSphere y se ejecutan en hosts ESXi. Si tiene problemas con cualquiera de las capas de la pila (desde el hipervisor hasta el clúster de Kubernetes), VMware es el único proveedor con el que necesita ponerse en contacto.
  • Administrado por Kubernetes. Los clústeres de Tanzu Kubernetes Grid se compilan a partir del Supervisor, que también es un clúster de Kubernetes. Un clúster de Tanzu Kubernetes Grid se define en el espacio de nombres de vSphere mediante un recurso personalizado. Los clústeres de Tanzu Kubernetes Grid se aprovisionan de forma independiente mediante comandos kubectl conocidos y la CLI de Tanzu. Todo el sistema de herramientas mantiene una coherencia: tanto si aprovisiona un clúster como si distribuye cargas de trabajo, utilizará los mismos comandos, el lenguaje YAML habitual y los flujos de trabajo comunes.

Para obtener más información, consulte Arquitectura y componentes de Tanzu Kubernetes Grid y Uso del servicio TKG con el plano de control de IaaS de vSphere.

¿Qué es un pod de vSphere?

vSphere IaaS control plane introduce una construcción llamada pod de vSphere, que equivale a un pod de Kubernetes. Una pod de vSphere es una máquina virtual con un tamaño pequeño que ejecuta uno o más contenedores de Linux. Cada pod de vSphere tiene un tamaño preciso para la carga de trabajo que aloja y tiene reservas de recursos explícitas para esa carga de trabajo. Asigna la cantidad exacta de recursos de almacenamiento, memoria y CPU necesarios para la ejecución de la carga de trabajo. Los pods de vSphere solo se admiten con Supervisores que estén configurados con NSX como pila de redes.

Figura 3. pods de vSphere
Host ESXi que contiene dos cuadros de pod de vSphere. Cada pod de vSphere tiene contenedores que se ejecutan dentro de él, un kernel de Linux, memoria, CPU y recursos de almacenamiento.
Los pods de vSphere son objetos en vCenter Server y habilitan las siguientes capacidades para las cargas de trabajo:
  • Aislamiento fuerte. Un pod de vSphere está aislado del mismo modo que una máquina virtual. Cada pod de vSphere tiene su propio kernel único de Linux basado en el kernel utilizado en Photon OS. En lugar de muchos contenedores que comparten un kernel, como en una configuración nativa, en un pod de vSphere, cada contenedor tiene un kernel de Linux único
  • Gestión de recursos. vSphere DRS controla la colocación de los pods de vSphere en el Supervisor.
  • Alto rendimiento. Los pods de vSphere obtienen el mismo nivel de aislamiento de recursos que las máquinas virtuales, lo que elimina los problemas de vecinos ruidosos a la vez que mantiene el tiempo de inicio rápido y una baja sobrecarga de los contenedores.
  • Diagnóstico. Como administrador de vSphere, puede utilizar todas las herramientas de introspección y supervisión que están disponibles con vSphere en las cargas de trabajo.
Los pods de vSphere son compatibles con Open Container Initiative (OCI) y pueden ejecutar contenedores desde cualquier sistema operativo, siempre y cuando estos contenedores también sean compatibles con OCI.
Figura 4. Redes y almacenamiento de instancias de pod de vSphere
Pod de vSphere con contenedores, motor de contenedor y motor de pods dentro. El pod se conecta a la imagen del contenedor, el almacenamiento, el conmutador NSX, spherelet y hostd.

Los pods de vSphere utilizan tres tipos de almacenamiento en función de los objetos que se almacenen; respectivamente, VMDK efímeros, VMDK de volumen persistente y VMDK de imagen de contenedor. Como administrador de vSphere, debe configurar directivas de almacenamiento para la colocación de la memoria caché de imagen de contenedor y VMDK efímeros en el nivel de Supervisor. En un nivel de espacio de nombres de vSphere, debe configurar las directivas de almacenamiento para la colocación de volúmenes persistentes. Consulte Almacenamiento persistente para cargas de trabajo para obtener más información sobre los requisitos y conceptos de almacenamiento con vSphere IaaS control plane.

Para las redes, las instancias de pods de vSphere y las máquinas virtuales de los clústeres de Tanzu Kubernetes Grid utilizan la topología proporcionada por NSX. Para obtener más información, consulte Redes del Supervisor.

Spherelet es un proceso adicional que se crea en cada host. Se trata de un kubelet que se transporta de forma nativa a ESXi y permite que el host ESXi se convierta en parte del clúster de Kubernetes.

Para obtener información sobre el uso de pods de vSphere en Supervisores consulte Implementar cargas de trabajo en pods de vSphere en la documentación de Servicios y cargas de trabajo del plano de control de IaaS de vSphere.

Usar máquinas virtuales en vSphere IaaS control plane

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. Tanto contenedores como máquinas virtuales comparten los mismos recursos de espacio de nombres de vSphere y se pueden administrar a través de una única interfaz de vSphere IaaS control plane.

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.
La figura muestra un servicio de máquina virtual como un componente del supervisor que administra máquinas virtuales independientes y máquinas virtuales que conforman 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.
  • 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.

Para obtener información sobre la implementación y la administración de máquinas virtuales independientes en un Supervisor, consulte Implementar y administrar máquinas virtuales en la documentación de Servicios y cargas de trabajo del plano de control de IaaS de vSphere.

servicios de supervisor en vSphere IaaS control plane

servicios de supervisor son operadores de Kubernetes certificados por vSphere que ofrecen a los desarrolladores componentes de infraestructura como servicio y servicios de proveedores de software independientes perfectamente integrados. Puede instalar y administrar servicios de supervisor en el entorno de vSphere IaaS control plane para que estén disponibles para su uso con cargas de trabajo de Kubernetes. Cuando se instalan servicios de supervisor en Supervisores, los ingenieros de desarrollo y operaciones pueden utilizar las API de servicio para crear Supervisores en sus espacios de nombres de usuario. A continuación, estas instancias se pueden consumir en pods de vSphere y clústeres de Tanzu Kubernetes Grid.

Obtenga más información sobre los servicios de supervisor compatibles y cómo descargar sus archivos YAML de servicio en http://vmware.com/go/supervisor-service.

Para obtener información sobre cómo utilizar servicios de supervisor, consulte Administrar servicios de Supervisor en la documentación de Servicios y cargas de trabajo del plano de control de IaaS de vSphere.