Inicio rápido: Creación de un equilibrador de carga público para equilibrar la carga de las VM con la CLI de Azure

Comience a usar Azure Load Balancer con la CLI de Azure para crear un equilibrador de carga público y tres máquinas virtuales.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos

  • Use el entorno de Bash en Azure Cloud Shell.

    Iniciar Cloud Shell en una nueva ventana

  • Si lo prefiere, instale la CLI de Azure para ejecutar sus comandos de referencia.

    • Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.

    • Cuando se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.

    • Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.

  • Para realizar este inicio rápido es necesaria la versión 2.0.28 o superior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Crear un grupo de recursos

Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

Cree un grupo de recursos con az group create:

  • Llamado CreatePubLBQS-rg.
  • En la ubicación eastus.
  az group create \
    --name CreatePubLBQS-rg \
    --location eastus

Nota

Se recomienda usar la SKU Estándar de Load Balancer para las cargas de trabajo de producción. Para más información sobre las SKU, consulte SKU de Azure Load Balancer .

Recursos de Standard Load Balancer creados para el inicio rápido.

Configuración de una red virtual: estándar

Antes de implementar las VM y probar el equilibrador de carga, cree los recursos de red virtual auxiliares.

Creación de una red virtual

Cree una red virtual con az network vnet create:

  • Denominada myVNet.
  • Con el prefijo de dirección 10.1.0.0/16.
  • Subred denominada MyBackendSubnet.
  • Con el prefijo de subred 10.1.0.0/24.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Ubicación de eastus.
  az network vnet create \
    --resource-group CreatePubLBQS-rg \
    --location eastus \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

Crear una dirección IP pública

Use az network public-ip create para crear una dirección IP pública para el host bastión:

  • Cree una dirección IP pública con redundancia de zona estándar llamada myBastionIP.
  • En CCreatePubLBQS-rg:
az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionIP \
    --sku Standard

Creación de una subred de Bastion

Use az network vnet subnet create para crear una subred bastión:

  • Llamada AzureBastionSubnet.
  • Con el prefijo de dirección 10.1.1.0/24.
  • En la red virtual myVNet.
  • En el grupo de recursos CreatePubLBQS-rg.
az network vnet subnet create \
    --resource-group CreatePubLBQS-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/24

Creación de un host bastión

Use az network bastion create para crear un host bastión:

  • Denominación myBastionHost.
  • En CreatePubLBQS-rg.
  • Asociado a la dirección IP pública myBastionIP.
  • Asociado a la red virtual myVNet.
  • En la ubicación eastus.
az network bastion create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location eastus

El host de Azure Bastion tarda unos minutos en implementarse.

Crear un grupo de seguridad de red

En el caso de un equilibrador de carga estándar, las VM de la dirección de back-end deben tener interfaces de red que pertenezcan a un grupo de seguridad de red.

Cree un grupo de seguridad de red con az network nsg create:

  • Denominado myNSG.
  • En el grupo de recursos CreatePubLBQS-rg.
  az network nsg create \
    --resource-group CreatePubLBQS-rg \
    --name myNSG

Creación de una regla de grupo de seguridad de red

Cree una regla de grupo de seguridad de red con el az network nsg rule create:

  • Denominada myNSGRuleHTTP.
  • En el grupo de seguridad de red que creó en el paso anterior, myNSG.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Protocolo (*) .
  • Dirección Inbound.
  • Origen (*) .
  • Destino: (*) .
  • Puerto de destino 80.
  • Acceso: Allow.
  • Prioridad 200.
  az network nsg rule create \
    --resource-group CreatePubLBQS-rg \
    --nsg-name myNSG \
    --name myNSGRuleHTTP \
    --protocol '*' \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

Creación de servidores back-end: estándar

En esta sección, creará:

  • Tres interfaces de red para las máquinas virtuales.
  • Tres máquinas virtuales que se usarán como servidores back-end para el equilibrador de carga.

Creación de interfaces de red para las máquinas virtuales

Cree tres interfaces de red con az network nic create:

  • Sus nombres serán myNicVM1, myNicVM2 y myNicVM3.
  • En el grupo de recursos CreatePubLBQS-rg.
  • En la red virtual myVNet.
  • En la subred myBackendSubnet.
  • En el grupo de seguridad de red myNSG.
  array=(myNicVM1 myNicVM2 myNicVM3)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreatePubLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

Creación de máquinas virtuales

Cree las máquinas virtuales con az vm create:

VM1

  • Denominada myVM1.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Conectada a la interfaz de red myNicVM1.
  • Con la imagen de máquina virtual Win2019datacenter.
  • En Zona 1.
  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM1 \
    --nics myNicVM1 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 1 \
    --no-wait

VM2

  • Denominada myVM2.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Conectada a la interfaz de red myNicVM2.
  • Con la imagen de máquina virtual Win2019datacenter.
  • En Zona 2.
  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM2 \
    --nics myNicVM2 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 2 \
    --no-wait

VM3

  • Denominada myVM3.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Conectada a la interfaz de red myNicVM3.
  • Con la imagen de máquina virtual Win2019datacenter.
  • En Zona 3.
   az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM3 \
    --nics myNicVM3 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 3 \
    --no-wait

Puede que las VM tarden unos minutos en implementarse.

Nota

Azure proporciona una dirección IP de acceso de salida predeterminado para las instancias de Azure Virtual Machines que no tienen asignada una dirección IP pública o que se encuentran en el grupo de back-end de una instancia de Azure Load Balancer del nivel Básico. El mecanismo de dirección IP de acceso de salida predeterminado proporciona una dirección IP de salida que no se puede configurar.

Para más información sobre el acceso de salida predeterminado, consulte Acceso de salida predeterminado en Azure.

La dirección IP de acceso de salida predeterminado se deshabilita cuando se asigna una dirección IP pública a la máquina virtual o cuando se coloca la máquina virtual en el grupo de back-end de una instancia de Standard Load Balancer con o sin reglas de salida. Si se asigna un recurso de puerta de enlace de Azure Virtual Network NAT a la subred de la máquina virtual, la dirección IP de acceso de salida predeterminado se deshabilita.

Las máquinas virtuales creadas por conjuntos de escalado de máquinas virtuales en modo de orquestación flexible no tienen acceso de salida predeterminado.

Para más información sobre las conexiones salientes en Azure, consulte Uso de la Traducción de direcciones de red de origen (SNAT) para conexiones salientes.

Creación de una dirección IP pública: estándar

Para obtener acceso a la aplicación web en Internet, necesita una dirección IP pública para el equilibrador de carga.

Use az network public-ip create para:

  • Crear una dirección IP pública con redundancia de zona estándar denominada myPublicIP.
  • En CreatePubLBQS-rg.
  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard

Para crear una dirección IP pública de zona en la zona 1:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1

Creación de un equilibrador de carga estándar

En esta sección se detalla cómo se pueden crear y configurar los componentes siguientes del equilibrador de carga:

  • Un grupo de direcciones IP de front-end que recibe el tráfico de red entrante en el equilibrador de carga.
  • Un grupo de direcciones IP de back-end al que el grupo de servidores front-end envía el tráfico de red de carga equilibrada.
  • Un sondeo de estado que determina el estado de las instancias de máquina virtual de back-end.
  • Una regla de equilibrador de carga que define cómo se distribuye el tráfico a las VM.

Creación del recurso del equilibrador de carga

Cree un equilibrador de carga público con az network lb create:

  • Denominado myLoadBalancer.
  • Un grupo de front-end denominado MyFrontEnd.
  • Un grupo de back-end denominado myBackEndPool
  • Asociado a la dirección IP pública myPublicIP que creó en el paso anterior.
  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool       

Creación del sondeo de estado

Los sondeos de estado comprueban todas las instancias de máquina virtual para asegurarse de que pueden enviar tráfico de red.

Una máquina virtual con una comprobación de sondeo con errores se quita del equilibrador de carga. La máquina virtual se agrega de nuevo al equilibrador de carga cuando se resuelve el error.

Cree un sondeo de estado con az network lb probe create:

  • Supervisa el estado de las máquinas virtuales.
  • Denominado myHealthProbe.
  • Protocolo TCP.
  • Puerto 80 de supervisión.
  az network lb probe create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80   

Creación de la regla de equilibrador de carga

Una regla de equilibrador de carga define:

  • La configuración de IP del front-end para el tráfico entrante.
  • El grupo de IP de back-end para recibir el tráfico.
  • Los puertos de origen y de destino requeridos.

Cree una regla de equilibrador de carga con az network lb rule create:

  • Denominada myHTTPRule.
  • Que escuche en el puerto 80 en el grupo de front-end myFrontEnd.
  • Que envíe el tráfico de red con equilibrio de carga al grupo de direcciones de back-end myBackEndPool a través del Puerto 80.
  • Mediante el sondeo de estado myHealthProbe.
  • Protocolo TCP.
  • Un tiempo de espera de inactividad de 15 minutos.
  • Habilite el restablecimiento de TCP.
  az network lb rule create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHTTPRule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool \
    --probe-name myHealthProbe \
    --disable-outbound-snat true \
    --idle-timeout 15 \
    --enable-tcp-reset true

Adición de máquinas virtuales al grupo de back-end del equilibrador de carga

Agregue las máquinas virtuales al grupo de back-end con az network nic ip-config address-pool add:

  • En el grupo de direcciones de back-end myBackEndPool.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Asociada al equilibrador de carga myLoadBalancer.
  array=(myNicVM1 myNicVM2 myNicVM3)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool myBackendPool \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
  done

Creación de la configuración de regla de salida

Las reglas de salida del equilibrador de carga configuran SNAT saliente para las máquinas virtuales del grupo de back-end.

Para obtener más información sobre las conexiones salientes, consulte Conexiones salientes en Azure.

Se puede usar un prefijo o una dirección IP pública para la configuración de salida.

Dirección IP pública

Use az network public-ip create para crear una única dirección IP para la conectividad saliente.

  • Denominada myPublicIPOutbound.
  • En CreatePubLBQS-rg.
  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPOutbound \
    --sku Standard

Para crear una dirección IP pública con redundancia de zona en la Zona 1:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPOutbound \
    --sku Standard \
    --zone 1

Prefijo de IP pública

Use az network public-ip prefix create para crear un prefijo de dirección IP pública para la conectividad saliente.

  • Denominada myPublicIPPrefixOutbound.
  • En CreatePubLBQS-rg.
  • Longitud del prefijo de 28.
  az network public-ip prefix create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPPrefixOutbound \
    --length 28

Para crear un prefijo de dirección IP pública con redundancia de zona en la Zona 1:

  az network public-ip prefix create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPPrefixOutbound \
    --length 28 \
    --zone 1

Para obtener más información sobre el escalado de NAT de salida y la conectividad de salida, consulte NAT de salida de escala con varias direcciones IP.

Creación de una configuración de direcciones IP de front-end de salida

Cree una nueva configuración de IP de front-end con az network lb frontend-ip create:

Seleccione los comandos de dirección IP pública o prefijo de dirección IP pública según la decisión del paso anterior.

Dirección IP pública

  • Denominada myFrontEndOutbound.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Asociada a la dirección IP pública myPublicIPOutbound.
  • Asociada al equilibrador de carga myLoadBalancer.
  az network lb frontend-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myFrontEndOutbound \
    --lb-name myLoadBalancer \
    --public-ip-address myPublicIPOutbound 

Prefijo de IP pública

  • Denominada myFrontEndOutbound.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Asociado al prefijo de dirección IP pública myPublicIPPrefixOutbound.
  • Asociada al equilibrador de carga myLoadBalancer.
  az network lb frontend-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myFrontEndOutbound \
    --lb-name myLoadBalancer \
    --public-ip-prefix myPublicIPPrefixOutbound 

Creación del grupo de salida

Cree un nuevo grupo de salida con az network lb address-pools create:

  • Denominado myBackendPoolOutbound.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Asociada al equilibrador de carga myLoadBalancer.
  az network lb address-pool create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myBackendPoolOutbound

Creación de una regla de salida

Cree una nueva regla de salida para el grupo de back-end de salida con az network lb outbound-rule create:

  • Denominada myOutboundRule.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Asociada al equilibrador de carga myLoadBalancer.
  • Asociada al front-end myFrontEndOutbound.
  • Protocolo All.
  • Tiempo de espera de inactividad de 15.
  • 10000 puertos de salida.
  • Asociada al grupo de back-end myBackEndPoolOutbound.
  az network lb outbound-rule create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myOutboundRule \
    --frontend-ip-configs myFrontEndOutbound \
    --protocol All \
    --idle-timeout 15 \
    --outbound-ports 10000 \
    --address-pool myBackEndPoolOutbound

Adición de máquinas virtuales al grupo de salida

Agregue las máquinas virtuales al grupo de salida con az network nic ip-config address-pool add:

  • En el grupo de direcciones de back-end myBackEndPoolOutbound.
  • En el grupo de recursos CreatePubLBQS-rg.
  • Asociada al equilibrador de carga myLoadBalancer.
  array=(myNicVM1 myNicVM2 myNicVM3)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool myBackendPoolOutbound \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
  done

Instalación de IIS

Utilice az vm extension set para instalar IIS en las máquinas virtuales y establecer el nombre del equipo como sitio web predeterminado.

  array=(myVM1 myVM2 myVM3)
    for vm in "${array[@]}"
    do
     az vm extension set \
       --publisher Microsoft.Compute \
       --version 1.8 \
       --name CustomScriptExtension \
       --vm-name $vm \
       --resource-group CreatePubLBQS-rg \
       --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
  done

Prueba del equilibrador de carga

Para obtener la dirección IP pública del equilibrador de carga, use az network public-ip show.

Copie la dirección IP pública y péguela en la barra de direcciones del explorador.

  az network public-ip show \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --query ipAddress \
    --output tsv

Prueba del equilibrador de carga

Limpieza de recursos

Cuando ya no se necesiten, use el comando az group delete para quitar el grupo de recursos, el equilibrador de carga y todos los recursos relacionados.

  az group delete \
    --name CreatePubLBQS-rg

Pasos siguientes

En esta guía de inicio rápido

  • Creó un equilibrador de carga estándar o público.
  • Conectó máquinas virtuales.
  • Configuró la regla de tráfico del equilibrador de carga y el sondeo de estado.
  • Probó el equilibrador de carga.

Para más información sobre Azure Load Balancer, vaya a: