Servicio TKG proporciona administración del ciclo de vida de autoservicio de los clústeres de carga de trabajo de Kubernetes. El servicio TKG con Supervisor está optimizado para el entorno de vSphere y se integra con la infraestructura subyacente, incluidos vCenter, ESXi, redes virtuales y almacenamiento nativo en la nube. Con el servicio TKG, puede aprovisionar clústeres de Kubernetes compatibles y mantener la simultaneidad ascendente.

El Servicio TKG incluye varios componentes integrados con el vSphere IaaS control plane.
Figura 1. Componentes de Servicio TKG
Componentes del servicio TKG

Administración de cargas de trabajo

Administración de carga de trabajo es una solución de VMware que proporciona un plano de control de Kubernetes en una infraestructura de vSphere nativa. Al habilitar la administración de cargas de trabajo, se permite implementar uno o varios Supervisores en el entorno de vSphere. La administración de cargas de trabajo se incluye en un paquete con vCenter Server, pero su licencia se adquiere por separado.

Supervisor

El Supervisor es un clúster de Kubernetes que funciona como el plano de control para administrar los clústeres de carga de trabajo. Configure Supervisor para admitir desarrolladores que aprovisionen y operen clústeres de Tanzu Kubernetes Grid.

Implementación de un Supervisor: clúster de vSphere

La forma tradicional de implementar un Supervisor es en un único clúster de vSphere. Un clúster de vSphere es una recopilación de hosts ESXi administrados por una instancia de vCenter Server. Es necesario configurar un clúster de vSphere con características específicas para admitir el Supervisor. Algunas de estas son:
  • Varios hosts ESXi conectados mediante un conmutador vSphere Distributed Switch (VDS)
  • El almacenamiento compartido está configurado, como vSAN o NFS
  • vSphere HA y DRS totalmente automatizado están habilitados
  • Lifecycle Manager está habilitado
  • Las redes están configuradas, ya sea NSX con su equilibrador de carga integrado, o VDS con un equilibrador de carga externo
Desde el punto de vista arquitectónico, para las implementaciones de producción de TKG en Supervisor, debe separar el clúster o el host del plano de administración donde se ejecuta vCenter Server del clúster del plano informático donde se habilitará Supervisor. Si utiliza un clúster de vSphere para alojar vCenter Server, este clúster no debe tener habilitado DRS. Consulte la documentación de vCenter para obtener detalles.

Implementación de un Supervisor: zonas de vSphere

vSphere 8 presenta las zonas de vSphere. Puede asignar clústeres de vSphere a zonas de vSphere para proporcionar alta disponibilidad y tolerancia a errores para Supervisor. La implementación de Supervisor en las zonas de vSphere le permite aprovisionar clústeres de TKG en zonas de disponibilidad específicas.

En la implementación de un Supervisor en un solo clúster de vSphere, se establece una relación uno a uno entre el Supervisor y el clúster de vSphere. En una implementación de Supervisor en zonas, Supervisor se extiende a los clústeres de vSphere para proporcionar alta disponibilidad y dominios de errores a los clústeres de TKG en Supervisor.

Un administrador de vSphere crea las tres zonas de vSphere y las asocia con un clúster de vSphere. Una implementación del Supervisor en las tres zonas de vSphere tiene requisitos especiales además de los requisitos del clúster de vSphere, entre los que se incluyen:

  • Tres zonas de vSphere conectadas mediante un conmutador vSphere Distributed Switch (VDS)
  • Cada zona de vSphere contiene un único clúster de vSphere
  • Un Supervisor debe implementarse exactamente en 3 zonas de vSphere
  • Una directiva de almacenamiento de vSphere está disponible en la zona de vSphere

espacio de nombres de vSphere

Un espacio de nombres de vSphere es un espacio de nombres en un Supervisor donde se aprovisionan uno o varios clústeres de Tanzu Kubernetes Grid. Para cada espacio de nombres de vSphere, configure el control de acceso basado en funciones, el almacenamiento persistente, los límites de recursos, la biblioteca de imágenes y las clases de máquinas virtuales.

Servicio TKG

Servicio TKG es una implementación del proyecto de API de clúster de código abierto que define un conjunto de controladoras y recursos personalizados para administrar el ciclo de vida de los clústeres de Kubernetes. Tanzu Kubernetes Grid es un componente de Supervisor.

Servicio TKG tiene tres capas de controladoras para administrar el ciclo de vida de los clústeres de TKG, incluidos servicio de máquina virtual, la API del clúster y el complemento de proveedor de nube.

VM Operator
La controladora del servicio de máquina virtual proporciona una API declarativa estilo Kubernetes para la administración de las máquinas virtuales y los recursos de vSphere asociados. El servicio de máquina virtual presenta el concepto de una clase de máquina virtual que representa una configuración de hardware reutilizable y abstracta. Servicio TKG usa el servicio de máquina virtual para administrar el ciclo de vida de las máquinas virtuales de plano de control y de nodo de trabajo que alojan un clúster de carga de trabajo.
API del clúster
La controladora de la API del clúster proporciona API de estilo Kubernetes declarativas para la creación, la configuración y la administración de clústeres. Las entradas de la API del clúster incluyen un recurso que describe el clúster, un conjunto de recursos que describen las máquinas virtuales que componen el clúster y un conjunto de recursos que describen los complementos del clúster.
Complemento de proveedor de nube
Servicio TKG aprovisiona clústeres de carga de trabajo que incluyen los componentes necesarios para integrarse con los recursos de espacio de nombres de vSphere subyacentes. Estos componentes incluyen un complemento de proveedor de nube que se integra con la instancia de Supervisor. TKG utiliza el complemento de proveedor de nube para enviar solicitudes de volúmenes persistentes al Supervisor que se integra con el almacenamiento nativo en la nube (Cloud Native Storage, CNS) de VMware.

Versiones de Tanzu Kubernetes

Una versión de Tanzu Kubernetes proporciona la distribución de software de Kubernetes y los complementos firmados y compatibles con VMware para su uso con clústeres de Tanzu Kubernetes Grid.

Cada versión de Tanzu Kubernetes se distribuye como una plantilla de máquina virtual (archivo OVA). El Tanzu Kubernetes Grid utiliza la plantilla de OVA para construir los nodos de máquina virtual de los clústeres de TKG. Las versiones de Tanzu Kubernetes se determinan de acuerdo con el control de versiones de Kubernetes e incluyen personalizaciones y optimizaciones del sistema operativo para la infraestructura de vSphere.

Para obtener una lista de las versiones de Tanzu Kubernetes y la compatibilidad con el Supervisor, consulte las Notas de la versión de las versiones de Tanzu Kubernetes. Consulte también la vSphere IaaS control planeDirectiva de soporte técnico.

Biblioteca de contenido

Las versiones de Tanzu Kubernetes se ponen a disposición de los clústeres de TKG mediante una biblioteca de contenido de vCenter. Puede crear una biblioteca de contenido suscrita y recibir automáticamente las TKR cuando estén disponibles mediante VMware, o bien utilizar una biblioteca de contenido local y cargar las TKR manualmente.

Componentes del clúster de Servicio TKG

Los componentes que se ejecutan en un clúster de Servicio TKG proporcionan funcionalidad para cuatro áreas del producto: autenticación, almacenamiento, redes y equilibrio de carga.

Webhook de autenticación

El webhook de autenticación se ejecuta como pod dentro del clúster para validar los tokens de autenticación de usuario.

Los clústeres de TKG admiten dos formas de autenticación: uso de vCenter Single Sign-On y uso de un proveedor de identidad externo que admite el protocolo de Open ID Connect (OIDC).

TKG ejecuta el cliente OIDC de Pinniped en el Supervisor y en los nodos de clúster de TKG. Configurar un proveedor de OIDC externo para Supervisor configura automáticamente los componentes de Pinniped.

TKG admite varios clientes para la autenticación con el Supervisor, incluidos el complemento de vSphere para kubectl y la CLI de Tanzu.

Interfaz de almacenamiento de contenedor (Container Storage Interface, CSI)

Un complemento de CSI paravirtual es un pod de Kubernetes que se ejecuta dentro de un clúster de TKG y se integra con el almacenamiento nativo en la nube (Cloud Native Storage, CNS) de VMware a través de Supervisor. Un pod de Kubernetes que se ejecuta dentro de un clúster de TKG puede montar tres tipos de discos virtuales: efímero, volumen persistente e imagen de contenedor.

Almacenamiento transitorio

Un pod requiere almacenamiento transitorio para almacenar datos efímeros, por ejemplo, objetos de Kubernetes como registros, volúmenes y mapas de configuración. El almacenamiento transitorio dura mientras existe el pod. Los datos efímeros persisten los reinicios del contenedor, pero una vez que el pod se elimine, los datos efímeros del almacenamiento del disco virtual desaparecen.

Almacenamiento persistente

TKG aprovecha el marco de directivas de almacenamiento de vSphere para definir clases de almacenamiento y reservar volúmenes persistentes. Los clústeres de TKG envían solicitudes de volúmenes persistentes al Supervisor que se integra con el almacenamiento nativo en la nube (Cloud Native Storage, CNS) de VMware. Los volúmenes persistentes se aprovisionan en los nodos del clúster dinámicamente usando la clase de almacenamiento, o de forma manual.

Almacenamiento de imágenes de contenedor

Los contenedores dentro de un pod de Kubernetes utilizan imágenes que incluyen el software que se ejecutará. El pod monta imágenes utilizadas por sus contenedores como discos virtuales de imagen. Cuando el pod completa su ciclo de vida, los discos virtuales de imagen se desasocian del pod. Kubelet es responsable de extraer las imágenes de contenedor del registro de imágenes y transformarlas en discos virtuales que se ejecuten dentro del pod.

Interfaz de red de contenedor (Container Network Interface, CNI)

El complemento de la interfaz de red de contenedor es un complemento de CNI que proporciona redes de pod.

Los clústeres de TKG admiten las siguientes opciones de interfaz de red de contenedor: Antrea (predeterminada) y Calico. Además, TKG proporciona la CNI enrutada de NSX Antrea para implementar redes de pods enrutables.

En la tabla se resumen las funciones de redes de clústeres de TKG y su implementación.

Tabla 1. Redes de clústeres de Servicio TKG
Extremo Proveedor Descripción
Conectividad de pods Antrea o Calico Interfaz de red de contenedor para pods. Antrea utiliza Open vSwitch. Calico utiliza el puente de Linux con BGP.
Tipo de servicio: ClusterIP Antrea o Calico Tipo de servicio de Kubernetes predeterminado al que solo se puede acceder en el clúster.
Tipo de servicio: NodePort Antrea o Calico Permite el acceso externo a través de un puerto abierto en cada nodo de trabajo mediante el proxy de red de Kubernetes.
Directiva de red Antrea o Calico Controla el tráfico que se permite hacia y desde los pods seleccionados y los endpoints de red. Antrea utiliza Open vSwitch. Calico utiliza tablas de IP de Linux.
Implementación de proveedores de nube
La implementación de proveedor de nube admite la creación de servicios de entrada y de equilibrador de carga de Kubernetes.
Tabla 2. Equilibrio de carga de TKG
Extremo Proveedor Descripción
Tipo de servicio: LoadBalancer

El equilibrador de carga integrado de NSX (parte de la pila de red de NSX)

NSX Advanced Load Balancer (instalación independiente para su uso con redes VDS)

HAProxy (instalación independiente para su uso con redes VDS)

Para el equilibrador de carga integrado de NSX y un servidor virtual por definición de tipo de servicio.

Para NSX Advanced Load Balancer, consulte esa sección en esta documentación.

Para HAProxy, consulte esa sección de esta documentación.

Nota: Es posible que algunas características de equilibrio de carga no se encuentren disponibles en cada tipo de equilibrador de carga compatible, por ejemplo, las direcciones IP estáticas.
Entrada de clúster Controladora de entrada de terceros Proporciona enrutamiento para el tráfico de pod entrante. Puede utilizar cualquier controladora de entrada de terceros, como Contour.

API del clúster de Servicio TKG

Servicio TKG proporciona dos API para aprovisionar y administrar el ciclo de vida de los clústeres de TKG.
  • Versión de API v1alpha3 para clústeres de Tanzu Kubernetes
  • Versión de API v1beta1 para clústeres en función de una ClusterClass

La API v1alpha3 permite crear clústeres de Kubernetes conformes del tipo TanzuKubernetesCluster. Este tipo de clúster se configura previamente con valores predeterminados comunes para el aprovisionamiento rápido y se puede personalizar. La API v1beta1 permite crear clústeres de Kubernetes conformes de tipo Cluster basados en una ClusterClass predeterminada que proporciona VMware.

Nota: Para actualizar vSphere IaaS control plane de vSphere 7 a vSphere 8, el clúster de TKG debe ejecutar la API v1alpha2. La API v1alpha2 se introdujo con v7.0 Update 3. La API v1alpha1 está obsoleta. Para obtener más información, consulte .

Clientes de clúster de Servicio TKG

TKG en el Supervisor de vSphere 8 admite varias interfaces de cliente para el aprovisionamiento, la supervisión y la administración de los clústeres de TKG.
  • vSphere Client para configurar el Supervisor y supervisar los clústeres de TKG implementados.
  • complemento de vSphere para kubectl para la autenticación en el Supervisor y los clústeres de TKG mediante vCenter Single Sign-On.
  • kubectl para aprovisionar y administrar el ciclo de vida de los clústeres de TKG de forma declarativa e interactuar con el Supervisor.
  • complemento auxiliar de credenciales de vSphere Docker para insertar y extraer imágenes hacia y desde un registro de contenedor.
  • CLI de Tanzu para aprovisionar clústeres mediante comandos y para instalar paquetes de Tanzu.
  • Interfaz web de Tanzu Mission Control para administrar los clústeres de TKG.