Saludos amigos, hace unos días os contaba cómo desplegar el nuevo VMware Tanzu Basic, vSphere Workload Management, en muy cómodos pasos. Recordemos que lo más importante es la parte de Networking, pero bien es cierto que muchos pasos eran manuales, con lo que hoy vamos a ver cómo desplegarlo de manera automática.
Muchos de los pasos son iguales, pero al menos lo último está automatizado gracias a William Lam, vamos allá.
Cómo desplegar VMware Tanzu Basic sobre VMware vSphere en imágenes usando Automatización
Vamos a ver el paso a paso en cómodas imágenes, hay muchas capturas de pantalla, con lo que espero que os sea interesante y compartáis este artículo, que ha llevado muchas horas crear.
Content Libraries
Necesitamos dos Content Libraries en nuestro entorno de VMware, una con la OVa de HAProxy y otra con las imágenes de photonOS con las que crearemos toda la infraestructura de Kubernetes, que son además las que podremos usar luego para crear Contenedores, aquí están las dos URL:
- Content Libary para Tanzu Kubernetes Clusters – https://wp-content.vmware.com/v2/latest/lib.json
- Content Library para HAProxy – Descargaremos la OVA desde aquí y la meteremos a nuestra Content Library
Os debería quedar algo tal que así:
Networking, paciencia y preparativos
VMware Tanzu Basic tiene unos requerimientos de red bastante agresivos, podemos lanzarlo con solamente dos redes, la de Management y Workers, pero también incluye una parte adicional como Frontend, e incluso un rango privado para la comunicación entre contenedores en caso de que sea necesario. Os dejo un diagrama aquí:
Podemos jugar mucho con los rangos, y ajustarlos para que no sean gigantes, por ejemplo, en mi caso he querido jugar con:
- MANAGEMENT NETWORK – 192.168.1.0/24
- Supervisor Cluster IP 1 -192.168.1.200
- Supervisor Cluster IP 2 -192.168.1.201
- Supervisor Cluster IP 3 -192.168.1.202
- HA Load Balancer IP 1 – 192.168.1.253
- GW – 192.168.1.254
- WORKLOAD NETWORK
- Cluster Node Range – 192.168.150.2/25 O lo que es lo mismo con IPs útiles 192.168.150.2-192.168.150.126
- Virtual IP Range – 192.168.150.129/27 O lo que es lo mismo con IPs útiles 192.168.150.130-192.168.150.158
- HA Load Balancer IP 2 – 192.168.150.253
- GW – 192.168.1.254
No estoy usando Frontend, ya que no me hace falta, pero bueno, espero que pilleís la idea del networking, etc.
El tráfico tiene que estar enrutado entre ambas redes, con lo que tengo un simple ubuntu en esa .254, y no pueden estar en el mismo dominio de broadcast.
Despliegue de HAProxy
Fantástico, ahora que tenemos nuestra Content Library con la imagen del HAProxy, nos iremos hasta ella, y haremos botón derecho New VM:
Introduciremos un nombre para esta VM, y una carpeta donde queremos que se guarde:
Introduciremos también donde queremos que esta VM se ejecute, en mi caso he seleccionado mi clúster principal:
Veremos ahora una breve ventana con algunos detalles básicos:
Aceptaremos la EULA una vez leída y haremos click en Next:
Ha llegado el momento de seleccionar si queremos que el despliegue se hace con dos tarjetas de red o con tres, seleccionaremos Default:
También seleccionaremos el storage donde queremos que se guarde la VM, en mi caso mi VSAN:
Como veis, tengo dos PortGroups, para Management selecciono el que se llama MGM, y para Workload y Frontend, el que se llama WRK:
Vamos con la configuración de HAProxy, comenzamos con lo básico, password para root, y marcar que queremos que podamos conectarnos por SSH como root:
Seguiremos con la configuración de Networking, comenzaremos con el hostname aunque no sale en la foto, seguiremos con el DNS, la configuración de Red en la parte de Management, y la configuración de Red para la parte de Workload:
Nos pasamos a la parte de Load Balancing, introduciremos el rango de red que os he dejado más arriba, y recordarlo porque lo usaremos más adelante, además crearemos un usuario y una password:
¡Ya tenemos todo! No ha sido tan difícil, ¿verdad? Haremos click en Finish:
Un test rápido, es conectarnos por SSH, o por la consola de VMware, y lanzar ping a las dos puertas de enlace:
Vamos al siguiente paso, gracias a William Lam.
Proceso automatizado para lanzar Workload Management (VMware Tanzu)
Instalando la última versión de PowerShell
Cuando escribo esto, ya tenemos PowerShell 7, con lo que cuando lancemos este comando se instalará la última versión de Powershell, vamos allá, desde nuestro PowerShell tradicional lanzaremos:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
Esto nos lanzará un típico asistente de instalación y al terminarlo ya tendremos nuestro flamante PowerShell 7 instalado:
Perfecto, ahora que ya tenemos PowerShell 7, vamos al siguiente paso.
Instalar la última versión de PowerCLI, y activar Módulo de WorkloadManagement
Ya tenemos casi todo, en caso de que no tuvieramos PowerCLI, vamos a instalarlo ahora con el siguiente comando, desde nuestro PowerShell 7:
Install-Module -Name VMware.PowerCLI -Scope CurrentUser
Esto instalará todo lo que necesitamos para poder ejecutar este Script de William Lam, bueno y muchos más que quizá veamos más adelante.
Por último, vamos a instalar el módulo de WorkloadManagement lanzando el siguiente comando:
Install-Module VMware.WorkloadManagement
Fantástico, ya tenemos todo. Vamos al último paso.
Crear la receta y lanzarla para crear nuestro VMware Tanzu
Vale, pues ya que tenemos todo, estoy seguro que os ha costado llegar hasta aquí, vamos a crear la receta con todo lo que necesitamos. Algunos comentarios muy breves:
- ¡Estar atentos a las IP!
- Estar atentos
$vSphereWithTanzuParams = @{
ClusterName = "CL-LON";
TanzuvCenterServer = "vcsa.jorgedelacruz.es";
TanzuvCenterServerUsername = "[email protected]";
TanzuvCenterServerPassword = "TUPASSDEVCENTER";
TanzuContentLibrary = "TKG Images";
ControlPlaneSize = "TINY";
MgmtNetwork = "TUSWITCHPARAMANAGEMENT"
MgmtNetworkStartIP = "192.168.1.200";
MgmtNetworkSubnet = "255.255.255.0";
MgmtNetworkGateway = "192.168.1.254";
MgmtNetworkDNS = @("192.168.1.6");
MgmtNetworkDNSDomain = "jorgedelacruz.es";
MgmtNetworkNTP = @("192.168.1.6");
WorkloadNetwork = "TUSWITCHPARAWORKLOAD"
WorkloadNetworkStartIP = "192.168.150.129";
WorkloadNetworkIPCount = 27;
WorkloadNetworkSubnet = "255.255.255.0";
WorkloadNetworkGateway = "192.168.150.254";
WorkloadNetworkDNS = @("192.168.1.6");
WorkloadNetworkServiceCIDR = "10.96.0.0/24";
StoragePolicyName = "vSAN Default Storage Policy";
HAProxyVMvCenterServer = "vcsa.jorgedelacruz.es";
HAProxyVMvCenterUsername = "[email protected]";
HAProxyVMvCenterPassword = "TUPASSDEVCENTER";
HAProxyVMName = "HAPROXY-01";
HAProxyIPAddress = "192.168.1.253";
HAProxyUsername = "TUHAUSER";
HAProxyRootPassword = "TUHAAPPLIANCEPASSWORD";
HAProxyPassword = "TUHAAPPLIANCEPASSWORD";
LoadBalancerLabel = "haproxy"
LoadBalancerStartIP = "192.168.150.2";
LoadBalancerIPCount = 125
}
New-WorkloadManagement2 vSphereWithTanzuParams
Veremos algo similar a esto:
Y pasados ya unos 35 minutos, podremos ver lo siguiente en nuestro vSphere Client:
Una vez que seguimos los pasos para crear el namespace, clúster, etc. Como os enseñé en el otro artículo, ya veremos nuestros clústers, con sus workloads, etc:
Enlaces Interesantes
Sin la ayuda de estos artículos, nada de esto habría sido posible:
- vSphere with Tanzu Quick Guide – https://core.vmware.com/sites/default/files/associated-content/vSphere%20with%20Tanzu%20Quick%20Start%20Guide%207.0%20Update%201.pdf
- Blog Series de Cormach Hogan
- https://cormachogan.com/2020/09/24/getting-started-with-vsphere-with-tanzu/
- https://cormachogan.com/2020/09/25/deploy-ha-proxy-for-vsphere-with-tanzu/
- https://cormachogan.com/2020/09/28/enabling-vsphere-with-tanzu-using-ha-proxy/
- https://cormachogan.com/2020/09/29/deploying-tanzu-kubernetes-guest-cluster-in-vsphere-with-tanzu/
- Deep Dive Video Series – https://www.youtube.com/watch?v=uSGujnlYpVc&list=PLymLY4xJSThpIfzKDLIMtRlf-butzn-Yq&ab_channel=VMwarevSphere
- William Lam Automated Deployment Script – https://www.virtuallyghetto.com/2020/10/automated-vsphere-with-tanzu-lab-deployment-script.html
- Blog Series de Viktor van den Berg



[…] Nada más amigos, una entrada sencilla, cortita, pero espero que útil. Para mí lo ha sido, especialmente para el despliegue de Tanzu sobre VMware vSphere. […]