Desplegar vSphere with Tanzu con NSX-T

Buenas chic@s! En día de hoy vengo hablaros sobre como desplegar «Desplegar vSphere with Tanzu con NSX-T», además veremos las diferentes ediciones de las que disponemos y por ultimo hablaremos mas en detalle sobre la edición vSphere with Tanzu.

Tanzu es una marca y un conjunto de soluciones y servicios de VMware diseñados para ayudar a las organizaciones a construir, ejecutar y gestionar aplicaciones modernas en entornos de nube, contenedores y Kubernetes.

Dentro de Tanzu podemos encontrar los siguentes 2 tipos:

vSphere with Tanzu:

  • Integración con vSphere: vSphere with Tanzu es una extensión de la plataforma vSphere, lo que significa que se integra directamente con la infraestructura existente de vSphere. Esto nos permitirá gestionar tanto máquinas virtuales como contenedores desde una sola interfaz de gestión.
  • Uso de Supervisor Cluster: En vSphere with Tanzu, los clústeres de Kubernetes se implementan utilizando la tecnología Supervisor Cluster, que es una capa de gestión de Kubernetes integrada en vSphere. Esta capa abstracta simplifica la gestión de Kubernetes y proporciona una experiencia más unificada para los administradores de TI.
  • Despliegue de contenedores nativos: Con vSphere with Tanzu, los contenedores se ejecutan directamente en la infraestructura de vSphere, lo que permite a las organizaciones aprovechar sus inversiones existentes en vSphere y simplificar la gestión de la infraestructura.
  • Enfoque en la integración y la simplicidad: vSphere with Tanzu está diseñado para ofrecer una experiencia de gestión de contenedores integrada y simplificada para los usuarios de vSphere, lo que facilita la adopción de contenedores en entornos empresariales existentes.

Tanzu Kubernetes Grid (TKG):

  • Plataforma independiente de la infraestructura: Tanzu Kubernetes Grid (TKG) es una solución independiente de la infraestructura que permite implementar clústeres de Kubernetes en cualquier infraestructura, incluidas las nubes públicas, privadas e híbridas. Esto proporciona a los usuarios una mayor flexibilidad para ejecutar Kubernetes en diferentes entornos.
  • Consistencia multi-nube: TKG ofrece una experiencia de Kubernetes consistente en múltiples proveedores de servicios en la nube, lo que facilita la migración y la gestión de cargas de trabajo en entornos multi-nube.
  • Uso de Kubernetes nativo: TKG utiliza implementaciones nativas de Kubernetes para crear y gestionar clústeres de Kubernetes. Esto significa que los clústeres de TKG son compatibles con las especificaciones estándar de Kubernetes y pueden aprovechar el ecosistema de herramientas y servicios de Kubernetes.
  • Enfoque en la portabilidad y la interoperabilidad: TKG está diseñado para proporcionar una plataforma de Kubernetes consistente y portátil que pueda ejecutarse en cualquier infraestructura, lo que permite a las organizaciones evitar el bloqueo de proveedores y maximizar la flexibilidad operativa.

En resumen, vSphere with Tanzu está integrado en la plataforma vSphere existente y se centra en simplificar la gestión de contenedores para los usuarios de vSphere, mientras que Tanzu Kubernetes Grid (TKG) es una solución independiente de la infraestructura que ofrece una experiencia de Kubernetes consistente en múltiples entornos de nube.

Una vez vista las diferencias entre ambos, vamos a profundizar un poco mas en «vSphere with Tanzu».

¿Para qué sirve vSphere with Tanzu?

  • Gestión simplificada: Permite a los equipos de TI gestionar tanto máquinas virtuales como contenedores desde la misma interfaz de vSphere, lo que simplifica la gestión de la infraestructura.
  • Modernización de aplicaciones: Facilita la modernización de aplicaciones al permitir la ejecución de contenedores en vSphere, lo que proporciona flexibilidad y portabilidad a las aplicaciones existentes.
  • Escalabilidad: Permite escalar aplicaciones de contenedores de forma dinámica utilizando Kubernetes, lo que garantiza un rendimiento óptimo incluso en entornos de carga variable.
  • Automatización: Integra herramientas de automatización para el aprovisionamiento y la gestión de recursos, lo que mejora la eficiencia operativa y reduce el tiempo dedicado a tareas manuales.

Ventajas de vSphere with Tanzu:

  • Consolidación de recursos: Permite consolidar recursos de infraestructura al ejecutar máquinas virtuales y contenedores en la misma plataforma, lo que reduce la complejidad y los costos operativos.
  • Mayor agilidad: Facilita el desarrollo y despliegue de aplicaciones al proporcionar un entorno de contenedores gestionado de forma nativa, lo que acelera el tiempo de comercialización de nuevos servicios y aplicaciones.
  • Compatibilidad con entornos existentes: Se integra fácilmente con las infraestructuras de vSphere existentes, lo que permite a las organizaciones aprovechar sus inversiones en tecnología sin necesidad de realizar cambios significativos en la infraestructura.

Limitaciones:

  • Requisitos de infraestructura: Necesitaremos tener desplegado NSX, ademas de una solución de balanceo para todo los Ingress de las aplicaciones, siendo la solucion NSX-ALB lo ideal.
  • Complejidad en la configuración inicial: Configurar correctamente vSphere with Tanzu y Kubernetes puede requerir experiencia técnica, especialmente en entornos empresariales complejos.

Antes de empezar a configurar nada, no esta de mas comentar que todos los requisitos de NSX, en mi caso ya los he ido configurando a lo largo de varios post. Por aqui te dejo lo relacionado con NSX. Una vez comentado esto, podemos empezar.

Abriremos nuestro vCenter y nos iremos a la parte de Workload Management.

Importante fijarse en los pre-requisitos antes de llevarnos alguna sorpresa.

Por nuestra parte cumplimos todo asi que no tendremos problema.

Pulsamos sobre NSX y pulsamos «Next».

Asignamos un nombre a nuestro clúster supervisor, seleccionamos el clúster donde los vamos a desplegar y pulsamos «Next».

En mi caso optare por la politica por defecto.

Ha llegado el momento de una de las parte mas importantes, que es todo lo relacionado con la configuración red. En mi caso, esta primera parte lo voy a desplegar sobre una red de «management»(gestión) que tengo para todo los elementos de infraestructura .

En caso de no ser así, hay que tener en cuenta todas las conexiones y puertos entre los diferentes elementos.

A continuación deberemos configurar los siguientes elementos:

  • vSphere Distributed Switch: VDS del Cluster donde tengamos desplegado NSX.
  • DNS Servers: Uno o varios DNS.
  • NAT Mode: Enabled
  • Namespace Network: Rango de red que se les asignara a los pods
  • Edge Cluster: Seleccionamos el edge que tiene el Tier-0 que queremos usar para el networking del namespace.
  • Tier-0 Gateway: Selecionamos el Tier-0 al cual se enganchara el Tier-1 del cluster supervisor.
    • Cuando se despliegue el clúster supervisor, se desplegara un Tier-1, esto lo veremos mejor después en el mapa de red de NSX.
  • Subnet Prefix: Dependiendo de la mascara que elijamos, podremos desplegar en futuro mas o menos control plane/workers. En mi caso con un /28 es suficiente.
  • Service CIDR: CIDR para los servicios de kubernetes
  • Ingress CIDRs: Definiremos el CIDR para el rango de Ingress de los servicios de kubernetes
  • Egress CIDRs:Definiremos el CIDR para el rango de Egress de los servicios de kubernetes
    • Solo se utiliza una IP por namespace.
    • Esta IP es la que se utiliza para la comunicación con fuera de NSX.

Si pulsamos en «View Network Topology», nos podemos hacer una idea de la topología de Tanzu.

Por ultimo nos falta elegir, el tamaño de nuestro clúster supervisor. En mi caso, al estar en un entorno de laboratorio optare por entorno pequeño, por lo tanto, elegiré «Tiny».

Finalmente elegiremos un nombre para la API.

Una vez hayamos pulsado «Finish», se empezaran a desplegar las maquinas.

Si pulsamos en «View», podemos ver el detalle del proceso. Justamente aquí, observamos como ya esta configurando el «Control Plane» de las VMs.

Ya tenemos desplegado nuestro clúster supervisor.

Aquí tendríamos como queda dentro de nuestro vCenter.

Recordar que las maquinas supervisoras, tendrá una tarjeta de red en Management y otra en en el segmento de NSX.

Si nos vamos a la parte de NAT de ese Tier-1. Podemos ver que hay configurados 3 NAT, siendo especialmente importante el ultimo, este nos permitirá que todo el trafico de los Workers sea nateado con una misma IP.

En la parte de Load balancer, se nos crearan 2. Un Distributed Load Balancer y un Server Load Balancer.

Aquí tenemos los balanceos del Server Load Balancer. Aquí tendremos entre ellos el de la API.

Por otro aquí tendríamos la parte de los Distributed Load Balancer. Si nos fijamos son todo servicios de Kubernetes.

Por ultimo hay que tener en cuenta que la red de Workload donde están alojado los workers no será distribuida del Tier-0 uno hacia fuera. Para ello se utiliza una prefix-list, seguido de un route-map para prevenir su redistribución.

Este paso lo realiza el de manera automática.

Hasta aquí habríamos terminado todo lo relacionado con la configuración del clúster supervisor.

Ahora vamos a crear un «Namespace». En este namespace desplegaremos nuestro clusters TKG además las aplicaciones.

Para empezar, pulsaremos «Create Namespace».

Seleccionamos el clúster supervisor, y asignamos un nombre.

Si por que sea queremos hacer un «Override de la red este es el momento. Esto nos dará la posibilidad de asignarlo por ejemplo, a otro Tier-1.

Ya tenemos nuestro namespace creado, ahora nos falta definir como elementos basicos los siguentes:

  • Permissions: Definimos los permisos dentro del namespace
  • Storage: Definimos las Storage Policies que se podrán usar dentro del namespace
  • VM Class: Aqui definiremos que tipo de VM podremos desplegar para nuestros TKGs.
  • Content Library: Aquí se guardaran todas nuestras «VM class».

Pulsamos en «Permissions» y «Add permissions».

En mi caso, asignare al grupo administrador del vCenter los siguientes permisos.

En la parte «Storage», pulsamos «Add Storage»

Seleccionamos las políticas que podremos usar dentro del namespace.

Pulsamos en «Add VM Class»

Seleccionamos las «VM Class» las cuales podrán ser usadas para desplegar dentro de nuestro cluster TKG. En mi caso he optado por las de un tamaño pequeño.

En la parte «Content Library», pulsamos en «Create New Content Library» y la seleccionamos. Aquí se guardaran todas nuestras «VM class».

Desde la interfaz de nuestro Namespace, nos vamos a descargar las herramientas para poder acceder a nuestro. Para ello bajo «Status», pulsamos «Open».

Aquí elegiremos nuestro sistema operativo parta cual queremos descargar las herramientas.

Una vez descargado, lo pasamos a una maquina virtual y lo descomprimimos.

Definimos las siguiente variables

echo 'export PATH=$PATH:/usr/bin/vsphere-plugin/bin' >> ~/.bash_profile
 echo 'source <(kubectl completion bash)' >> ~/.bash_profile

Ahora nos conectamos al cluster supervisor de la siguente manera

kubectl vsphere login --vsphere-username [email protected] --server=https://172.26.10.100 --insecure-skip-tls-verify

Si lanzamos el siguiente comando

Si lanzamos el comando «kubectl get nodes«, nos devolverá los nodos supervisores además de los 3 esxi que componen el clúster de Tanzu.

Por ultimo si lanzamos «kubectl get namespaces» nos devolverá los namespaces creados.

Por ultimo y antes de cerrar el post, nos iremos a la parte de NSX, concretamente a la de «Network Map». Aquí veremos que a pesar de aun no haber desplegado ningun cluster TKG, NSX ya nos ha creado un Tier-1 donde albergarlos.

Concretamente es situado en la izquierda de la imagen, si nos fijamos tanto el Tier-1 de nuestro «Namespace» como el Tier-1 de nuestro clúster supervisor(a la derecha), están bajo el mismo Tier-0. Esta conexion es importante, ya que el clúster supervisor tiene que tener conectividad con los clústeres TKG que despleguemos.

Hasta aquí hemos llegado en esta parte primer post sobre Tanzu, en los siguientes post veremos como desplegar un cluster TKG, ademas de desplegar alguna aplicación y hacer que sea accesible desde el exterior. Espero que os haya gustado, nos vemos en los siguientes post.

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *