(Tanzu Kubernetes Grid -TKG )
Últimamente cada vez mayor cantidad de personas quieren conocer acerca de lo que ofrece VMware cuando hablamos de modernización de aplicaciones, y es justo ahí donde nos topamos con el portafolio de Tanzu (la oferta de VMware para el mundo de Kubernetes y aplicaciones nativas de nube o cargas de trabajo contenerizadas), este portafolio es amplio ya que abarca todo el ciclo de vida de las aplicaciones, desde la construcción y ejecución hasta la administración. Iniciar a conocer este portafolio puede ser un poco abrumador al principio por la cantidad de nuevos conceptos o incluso la terminología, es precisamente este motivo el que da paso al contenido de esta pequeña serie de artículos, que por supuesto no pretenden remplazar la documentación oficial sino más bien ser un recurso adicional para comprender mejor los conceptos de una manera simple e incluso mostrar los pasos técnicos a seguir para el despliegue o la configuración inicial de algunos de los productos del portafolio como lo son: TKG (Tanzu Kubernetes Grid), vSphere with Kubernetes, TMC (Tanzu Mission Control)
El portafolio de Tanzu se divide en 3 grandes grupos: Build, Run, Manage
Cada uno de estos grupos se enfocan de la siguiente manera:
- Build (Construir)
Se enfoca en crear y escribir o desarrollar las aplicaciones.
- Run (Ejecutar)
Se enfoca en proveer la infraestructura de Kubernetes para que se ejecuten esas aplicaciones.
- Manage (Administrar)
Se enfoca en proveer un metodo para administrar y brindar seguridad a los ambientes de kubernetes que se ejecutan en cualquier nube.
Este primer articulo se centra en la sección de ejecución (RUN) del portafolio, específicamente en Tanzu Kubernetes Grid o TKG.
TKG tiene 3 “sabores” básicos: stand-alone (TKG), vSphere with Tanzu y Tanzu Mission Control que es únicamente ofrecido como SaaS.
- TKG stand-alone:
Es un runtime de Kubernetes consistente que se puede ejecutar en la infraestructura que se prefiera.
- vSphere with Tanzu:
Es una solución lista para cargas de trabajo de produccion basadas en Kubernetes y se encuentra equipada con soluciones de networking avanzadas, container registry privado y puede administrar el ciclo de vida completo de las aplicaciones. Se encuentra embebido en el kernel de los ESXi hosts por lo que las cargas de trabajo contenerizadas pueden correr de manera nativa directamente en los hipervisores.
- Tanzu Mission Control (TMC):
Ejecuta cargas de trabajo de kubernetes en cualquier lugar con soporte completo para nube híbrida o incluso multi-cloud.
Este primer artículo se enfoca en entender la versión TKG stand-alone, el segundo artículo detalla los pasos técnicos a seguir, para desplegar TKG Clústeres de Administración y de cargas de trabajo (TKG Management and TKG Workload Clusters) link aquí.
¿Qué es Tanzu Kubernetes Grid – TKG?
Como se menciona anteriormente TKG es una solución que provee un tiempo de ejecución (runtime) de Kubernetes que proporciona una instalación simplificada, gestión del ciclo de vida de varios clústeres de manera automatizada y que puede ser implementada localmente y en múltiples clústeres, algunas de sus principales características son las siguientes:
- Es una distribución multi-cloud de Kubernetes que se puede ejecutar en:
– VMware vSphere, VMware Cloud on AWS, Azure VMware Solution
– Amazon Web Services
– Microsoft Azure
- Se encuentra alineado con las distribuciones de código abierto de Kubernetes
- Incluye binarios de Kubernetes que han sido probados y son soportados oficialmente por VMware.
- Automatiza el ciclo de vida de múltiples clústeres de Kubernetes de Tanzu utilizando Cluster API.
- Incluye versiones soportadas de aplicaciones de código abierto para proveer servicios de red, autenticación, balanceo, monitoreo, entre otros servicios requeridos para clústeres de Kubernetes en ambientes de producción.
Ediciones de VMware Tanzu Kubernetes Grid (TKG) es el runtime de Kubernetes en todas las ediciones de Tanzu.
- VMware Tanzu Basic:
Permite desplegar clústeres de Kubernetes utilizando TKG en ambientes vSphere ya sea de manera nativa integrada en los ESXi hosts utilizando vSphere with Tanzu o utilizando VMware Tanzu Kubernetes Grid.
- VMware Tanzu Standard:
Permite desplegar clústeres de Kubernetes en múltiples nubes utilizando VMware Tanzu Kubernetes Grid e incluye VMware Tanzu Mission Control para administrar estos clústeres de Kubernetes.
- VMware Tanzu Advanced:
Ofrece a los desarrolladores la posibilidad de utilizar Spring Framework para reducir el tiempo de desarrollo de las aplicaciones. Incluye servicios como Tanzu Build Service y VMware Tanzu Application Catalog que se utilizan para construir y mantener aplicaciones de manera segura y en cumplimiento con políticas de seguridad para lograr un catálogo de imágenes de contenedores seguro y aprobado.
En el siguiente enlace se puede encontrar mayor detalle acerca de cada edición.
https://tanzu.vmware.com/tanzu
¿Porque ejecutar Kubernetes en VMware TKG?
Actualmente Kubernetes es la plataforma de orquestación de contenedores más utilizada a nivel mundial por los desarrolladores para crear y publicar sus aplicaciones. Esto no quiere decir que es un tema que tiene que ver únicamente con los desarrolladores sino también con los administradores de infraestructura, en nuestro caso los vSphere Admins que se encargan de proveer la infraestructura para estas aplicaciones modernas mediante TKG.
Tomando en cuenta lo anterior tenemos varias perspectivas; la perspectiva del desarrollador, la de los vSphere Admins y adicionalmente de la comunidad open source quienes se encargan de mantener el proyecto de kubernetes.
- vSphere Admins:
Cuando hablamos de aplicaciones modernas, Kubernetes es quien se encarga de proveer la infraestructura que estas necesitan para ejecutarse. Estas aplicaciones requieren los mismos componentes de infraestructura que cualquier aplicación tradicional (CPU, memoria, red, almacenamiento, etc…), con la diferencia que esta se mantiene o administra mediante línea de comando, TKG facilita la manera de administrar y tener visibilidad sobre la infraestructura para estas aplicaciones.
- Desarrolladores:
Para los desarrolladores es transparente la manera en que consumen la infraestructura para sus aplicaciones modernas ya que la interfaz que utilizan hacia TKG es el mismo Kubernetes CLI que están acostumbrados a utilizar.
- Comunidad:
VMware es uno de los mayores contribuidores al proyecto de Kubernetes y a muchas otras herramientas que complementan el uso de la orquestación de cargas de trabajo contenerizadas. TKG utiliza la versión de código abierto de Kubernetes y se alinea con muchas herramientas que lo complementan.
Con todo esto que he mencionado y tomando en cuenta que Kubernetes ya es de código abierto y puede ejecutarse prácticamente en donde sea, ahí es donde podemos hacernos la pregunta clave, ¿cual es el beneficio de ejecutarlo en VMware?
La respuesta no es tan compleja ya que TKG les brinda a los clientes la misma plataforma subyacente para ejecutar clústeres de Kubernetes en cualquier nube pública o privada mediante la misma interfaz independientemente del proveedor de IaaS.
Conceptos de Tanzu Kubernetes Grid (TKG)
Existen varios conceptos importantes de conocer para entender como esta comprendido TKG, aquí los voy a mencionar brevemente tratando de simplificar los conceptos que se destacan más de la solución, adicionalmente pueden encontrar todos los conceptos en la documentación oficial.
- Máquina de Bootstrap:
Es simplemente la máquina desde la cual se va a descargar y ejecutar Tanzu CLI, puede ser una estación de trabajo o un servidor, desde esta máquina se va a inicializar la instancia de Tanzu Kubernetes Grid al realizar el bootstrapping del clúster de administración hacia la infraestructura donde realmente se va a ejecutar TKG.
- Tanzu CLI
Tanzu CLI es la herramienta universal para administrar TKG en cualquier modelo de despliegue que se realice. Se utiliza para inicializar la instancia de TKG al crear el clúster de administración, luego de que este es creado Tanzu CLI se utiliza para crear, actualizar, escalar, eliminar o en general administrar los clústeres de Kubernetes de Tanzu (TKC).
- Clúster de Administración (Management Cluster):
El clúster de administración es el encargado de brindar la funcionalidad de administración de ciclo de vida de clústeres de Kubernetes dentro Tanzu Kubernetes Grid y es donde se ejecuta Clúster API. Cuando se crea una instancia de TKG, el clúster de administración es el primer elemento en ser desplegado. En caso de vSphere con Tanzu, el clúster supervisor es el encargado de desempeñar el rol del clúster de administración.
- Cluster Plans:
Son los elementos que contienen la configuración con la cual un clúster de Kubernetes de Tanzu va a ser desplegado, estos contienen una serie de valores o parámetros que pueden ser configurados por ejemplo en cuanto a recursos de CPU, memoria de las VMs del plano de control o de carga de trabajo, inclusive ahí mismo se define la cantidad de estas VMs.
- Tanzu Kubernetes Clusters:
Son los clústeres que ejecutan las cargas de trabajo y son desplegados desde el clúster de administración usando el CLI de Tanzu. Los mismos se crean utilizando los Cluster Plans descritos anteriormente.
- Servicios – Shared and In-Cluster:
TKG incluye binarios para herramientas que proveen servicios in-cluster y compartidos entre los clústeres que se ejecutan dentro de la instancia de TKG, estos binarios e imágenes de contenedores, son provistos y firmados por VMware, estos servicios se instalan como extensiones y cubren servicios como autenticación, ingress, container registry, log forwarding, service discovery, monitoreo, etc.
Shared services puede ejecutarse en el clúster de administración o en un shared-services cluster dedicado que puede ser utilizado por múltiples Tanzu Kubernetes clústeres.
Dentro del paquete que contiene estas extensiones, se incluye el archivo YAML de configuración para los servicios.
- Instancia de Tanzu Kubernetes Grid:
La instancia de Tanzu Kubernetes Grid hace referencia a el despliegue completo de los clústeres de TKG, incluyendo el clúster de administración, el shared and In-cluster services y todos los Tanzu Kubernetes Clusters.
Si quieres conocer más acerca de el portafolio de Tanzu, te recomiendo los siguientes sitios: