Criando VMs com balanceador de carga do NSX utilizando o vRealize Automation 8.x
Neste artigo demonstro como usufruir da integração nativa entre o NSX-T e o vRA para criar máquinas virtuais com balanceador de carga. A ideia geral é criar um balanceador de carga no NSX, definir o tamanho e associar com o T1 gateway. A partir disso, o vRA irá criar os virtual servers e server pools dentro deste balanceador (como se fossem instâncias).
O primeiro passo é garantir que o NSX-T está configurado e integrado corretamente ao vRA.
Depois disso, no NSX-T navegue até Networking > Network Services > Load Balancing, crie um balanceador de carga e anexe o seu T1 gateway. Cada T1 pode ter um balanceador de carga, ou seja, para criar mais balanceadores, precisará utilizar mais T1s.
No vRA vamos criar um novo network profile e adicionar as redes que queremos utilizar. Neste caso vou apenas adicionar o segmento web do NSX.
Agora vamos associar o edge cluster do NSX com o network profile.
E por fim basta associar o balanceador de carga que acabamos de criar no NSX. Estou utilizando a tag nsx:lb-01, isso é interessante no caso existir vários balanceadores de carga, possibilitando assim a escolha no momento do deploy.
Este é o blueprint que utilizei para os testes. Está bem simples, solicita apenas a porta, protocolo e algoritmo para criar o balanceador de carga no NSX. Lembrando que existem muuuuitas outras opções que podem ser configuradas baseado no caso de uso.
formatVersion: 1
inputs:
cavInstance:
type: integer
title: Instâncias
description: Digite a quantidade de instâncias
cavAmbiente:
type: string
title: Ambiente
description: Selecione o ambiente para deploy
oneOf:
- title: Produção
const: prod
- title: Desenvolvimento
const: dev
cavService:
type: string
title: Serviço
description: Selecione o tipo do servidor
oneOf:
- title: Application
const: APP
- title: Database
const: DB
- title: Web Server
const: WEB
cavPortaLB:
type: integer
description: 'Digite a porta para o balanceador de carga do NSX (Ex: 80 ou 443)'
cavProtocoloLB:
type: string
description: Selecione o protocolo para o balanceador de carga do NSX
enum:
- HTTP
- HTTPS
- TCP
cavAlgoritmoLB:
type: string
title: Algoritmo
description: Selecione o algoritmo para o balanceador de carga do NSX
oneOf:
- title: Least Connection
const: LEAST_CONNECTION
- title: Round Robin
const: ROUND_ROBIN
resources:
VM:
type: Cloud.vSphere.Machine
properties:
name: '${"CAV-" + (input.cavAmbiente == "prod" ? "P" : "D") + "-" + (input.cavService) + "-"}'
image: Ubuntu 22.04
flavor: Small
constraints:
- tag: cluster-name:compute-02
networks:
- network: ${resource["NSX-NET"].id}
assignment: static
count: ${input.cavInstance}
NSX-NET:
type: Cloud.NSX.Network
properties:
networkType: existing
constraints:
- tag: nsx:web-segment
NSX-LB:
type: Cloud.NSX.LoadBalancer
properties:
name: '${"CAV-" + (input.cavAmbiente == "prod" ? "P" : "D") + "-" + (input.cavService)}'
network: ${resource["NSX-NET"].id}
instances: ${resource.VM[*].id}
routes:
- protocol: ${input.cavProtocoloLB}
port: ${input.cavPortaLB}
instanceProtocol: ${input.cavProtocoloLB}
instancePort: ${input.cavPortaLB}
algorithm: ${input.cavAlgoritmoLB}
constraints:
- tag: nsx:lb-01
Na solicitação de teste pedi duas instâncias de web server produtivo já com balanceador de carga na porta 80, utilizando o protocolo HTTP e com o algoritmo de balanceamento least connection.
Depois de alguns minutos as crianças nasceram. Tanto o VIP do balanceador de carga, quanto os IPs das VMs vieram do range IP associado com o segmento web.
Só para demonstrar, aqui fiz uma solicitação com uma rede para as VMs e outra rede para o balanceador de carga.
Se olharmos no NSX, é possível perceber que nas abas virtual servers e servers pools as novas informações do balanceador de carga recém criado. Neste caso possuimos o serviço de balanceamento de carga ativo no edge cluster e cada execução do vRA irá criar novas instâncias. Por exemplo: o balanceador de carga com o tamanho Small suporta até 20 virtual servers e 300 pool members, já o XLarge suporta 2000 e 10000, respectivamente.
E sim, se você editar o deployment e adicionar ou remover máquinas, o balanceador de carga no NSX será atualizado também 🙂
É isso aí, pessoal. Até a próxima!
Apenas para esclarecer: VMware Aria Automation é o novo nome do vRealize Automation. Aqui, para fins didáticos, continuo utilizando o termo vRA.












