Guida di avvio rapido: Creare un servizio di bilanciamento del carico interno per bilanciare il carico delle macchine virtuali usando l'interfaccia della riga di comando di Azure

Iniziare a usare Azure Load Balancer con l'interfaccia della riga di comando di Azure per creare un servizio di bilanciamento del carico interno e due macchine virtuali. Le risorse aggiuntive includono Azure Bastion, gateway NAT, una rete virtuale e le subnet necessarie.

Diagramma delle risorse distribuite per un servizio di bilanciamento del carico pubblico standard.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

  • Questa guida di avvio rapido richiede l'interfaccia della riga di comando di Azure versione 2.0.28 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Creare un gruppo di risorse

Un gruppo di risorse di Azure è un contenitore logico in cui vengono distribuite e gestite le risorse di Azure.

Come prima cosa creare un gruppo di risorse con az group create.

    az group create \
      --name CreateIntLBQS-rg \
      --location westus3

Quando si crea un servizio di bilanciamento del carico interno, occorre configurare una rete virtuale in cui eseguire il servizio.

Creare la rete virtuale

Prima di distribuire le macchine virtuali e testare il bilanciamento del carico, creare la rete virtuale e la subnet di supporto. La rete virtuale e la subnet contengono le risorse distribuite più avanti in questo articolo.

Creare una rete virtuale usando az network vnet create.

  az network vnet create \
    --resource-group CreateIntLBQS-rg \
    --location westus3 \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

Creare un host Azure Bastion

In questo esempio viene creato un host Azure Bastion. L'host Azure Bastion viene usato più avanti in questo articolo per gestire in modo sicuro le macchine virtuali e testare la distribuzione del bilanciamento del carico.

Importante

La tariffa oraria inizia dal momento in cui viene distribuito Bastion, a prescindere dall'utilizzo dei dati in uscita. Per altre informazioni, vedere Prezzi e SKU. Se si distribuisce Bastion come parte di un'esercitazione o di un test, è consigliabile eliminare questa risorsa dopo averla usata.

Creare un indirizzo IP pubblico bastion

Usare az network public-ip create per creare un indirizzo IP pubblico per l'host Azure Bastion.

az network public-ip create \
    --resource-group CreateIntLBQS-rg  \
    --name myBastionIP \
    --sku Standard \
    --zone 1 2 3

Creare una subnet bastion

Usare az network vnet subnet create per creare una subnet.

az network vnet subnet create \
    --resource-group CreateIntLBQS-rg  \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/27

Creare l'host bastion

Usare az network bastion create per creare un host.

az network bastion create \
    --resource-group CreateIntLBQS-rg  \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location westus3

La distribuzione dell'host Azure Bastion può richiedere qualche minuto.

Creare il servizio di bilanciamento del carico

Questa sezione descrive dettagliatamente come creare e configurare i componenti seguenti del servizio di bilanciamento del carico:

  • Un pool IP front-end che riceve il traffico di rete in ingresso sul bilanciamento del carico

  • Un pool IP back-end a cui il pool front-end invia il traffico di rete con carico bilanciato

  • Un probe di integrità che determina l'integrità delle istanze delle macchine virtuali back-end

  • Una regola di bilanciamento del carico che definisce come verrà distribuito il traffico alle macchine virtuali

Creare la risorsa di bilanciamento del carico

Creare un bilanciamento del carico interno con az network lb create.

  az network lb create \
    --resource-group CreateIntLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --backend-pool-name myBackEndPool \
    --frontend-ip-name myFrontEnd

Creare il probe di integrità

Un probe di integrità controlla tutte le istanze di macchina virtuale per verificare che possano inviare il traffico di rete.

Una macchina virtuale con un controllo probe non riuscito viene rimossa dal servizio di bilanciamento del carico. La macchina virtuale viene nuovamente aggiunta al servizio di bilanciamento del carico quando il problema viene risolto.

Creare un probe di integrità con az network lb probe create.

  az network lb probe create \
    --resource-group CreateIntLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

Creare una regola di bilanciamento del carico

Una regola di bilanciamento del carico definisce:

  • La configurazione IP front-end per il traffico in ingresso

  • Il pool IP back-end in cui ricevere il traffico

  • La porta di origine e destinazione richiesta

Creare una regola di bilanciamento del carico con az network lb rule create.

  az network lb rule create \
    --resource-group CreateIntLBQS-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 \
    --idle-timeout 15 \
    --enable-tcp-reset true

Creare un gruppo di sicurezza di rete

Per un Load Balancer Standard, le macchine virtuali nel pool back-end devono avere interfacce di rete appartenenti a un gruppo di sicurezza di rete.

Per creare un gruppo di sicurezza di rete, usare az network nsg create.

  az network nsg create \
    --resource-group CreateIntLBQS-rg \
    --name myNSG

Creare una regola del gruppo di sicurezza di rete

Per creare una regola del gruppo di sicurezza di rete, usare az network nsg rule create.

  az network nsg rule create \
    --resource-group CreateIntLBQS-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

Creare i server back-end

In questa sezione verranno creati:

  • Due interfacce di rete per le macchine virtuali

  • Due macchine virtuali da usare come server per il bilanciamento del carico

Creare le interfacce di rete per le macchine virtuali

Creare due interfacce di rete con az network nic create.

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreateIntLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

Creare le macchine virtuali

Creare le macchine virtuali con il comando az vm create.

  array=(1 2)
  for n in "${array[@]}"
  do
    az vm create \
    --resource-group CreateIntLBQS-rg \
    --name myVM$n \
    --nics myNicVM$n \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone $n \
    --no-wait
  done

La distribuzione delle macchine virtuali potrebbe richiedere alcuni minuti.

Nota

Azure fornisce un IP di accesso in uscita predefinito per le macchine virtuali a cui non è stato assegnato un indirizzo IP pubblico o che si trovano nel pool back-end di un servizio del bilanciamento del carico di base di Azure. Il meccanismo dell'IP di accesso in uscita predefinito fornisce un IP in uscita non configurabile.

L'IP di accesso in uscita predefinito è disabilitato quando si verifica uno degli eventi seguenti:

  • Alla macchina virtuale viene assegnato un indirizzo IP pubblico.
  • La macchina virtuale è posizionata nel pool back-end di un servizio di bilanciamento del carico standard, con o senza regole in uscita.
  • Una risorsa gateway NAT di Azure viene assegnata alla subnet della macchina virtuale.

Le macchine virtuali create usando set di scalabilità di macchine virtuali in modalità di orchestrazione flessibile non hanno l'accesso in uscita predefinito.

Per altre informazioni sulle connessioni in uscita in Azure, vedere Accesso in uscita predefinito in Azure e Uso di Source Network Address Translation (SNAT) per le connessioni in uscita.

Aggiungere le macchine virtuali al pool back-end

Aggiungere le macchine virtuali al pool back-end con az network nic ip-config address-pool add.

  array=(VM1 VM2)
  for vm in "${array[@]}"
  do
  az network nic ip-config address-pool add \
   --address-pool myBackendPool \
   --ip-config-name ipconfig1 \
   --nic-name myNic$vm \
   --resource-group CreateIntLBQS-rg \
   --lb-name myLoadBalancer
  done

Creare il gateway NAT

Per fornire l'accesso a Internet in uscita per le risorse nel pool back-end, creare un gateway NAT.

Creare un indirizzo IP pubblico

Usare az network public-ip create per creare un singolo indirizzo IP per la connettività in uscita.

  az network public-ip create \
    --resource-group CreateIntLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1 2 3

Creare una risorsa gateway NAT

Usare az network nat gateway create per creare la risorsa gateway NAT. L'indirizzo IP pubblico creato nel passaggio precedente è associato al gateway NAT.

  az network nat gateway create \
    --resource-group CreateIntLBQS-rg \
    --name myNATgateway \
    --public-ip-addresses myNATgatewayIP \
    --idle-timeout 10

Associare il gateway NAT alla subnet

Configurare la subnet di origine nella rete virtuale in modo da usare una risorsa gateway NAT specifica con az network vnet subnet update.

  az network vnet subnet update \
    --resource-group CreateIntLBQS-rg \
    --vnet-name myVNet \
    --name myBackendSubnet \
    --nat-gateway myNATgateway

Creare una macchina virtuale di test

Creare l'interfaccia di rete con az network nic create.

  az network nic create \
    --resource-group CreateIntLBQS-rg \
    --name myNicTestVM \
    --vnet-name myVNet \
    --subnet myBackEndSubnet \
    --network-security-group myNSG

Creare la macchina virtuale con il comando az vm create.

  az vm create \
    --resource-group CreateIntLBQS-rg \
    --name myTestVM \
    --nics myNicTestVM \
    --image Win2019Datacenter \
    --admin-username azureuser \
    --no-wait

La distribuzione della macchina virtuale può richiedere alcuni minuti.

Installare IIS

Usare az vm extension set per installare IIS nelle macchine virtuali back-end e impostare il sito Web predefinito sul nome computer.

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

Testare il servizio di bilanciamento del carico

  1. Accedere al portale di Azure.

  2. Nella pagina Panoramica, individuare l'indirizzo IP privato per il bilanciamento del carico. Nel menu a sinistra, selezionare Tutti i servizi>Tutte le risorse>myLoadBalancer.

  3. Nella panoramica di myLoadBalancer, copiare l'indirizzo accanto a Indirizzo IP privato. Se Indirizzo IP privato non è visibile, selezionare Vedi altro.

  4. Nel menu a sinistra, selezionare Tutti i servizi>Tutte le risorse. Nell'elenco delle risorse, nel gruppo di risorse CreateIntLBQS-rg selezionare myTestVM.

  5. Nella pagina Panoramica, selezionare Connetti>Bastion.

  6. Immettere il nome utente e la password specificati al momento della creazione della macchina virtuale.

  7. Da myTestVM aprire Internet Explorer.

  8. Immettere l'indirizzo IP del passaggio precedente nella barra degli indirizzi del browser. Nel browser viene visualizzata la pagina predefinita del server Web IIS.

    Screenshot dell'indirizzo IP nella barra degli indirizzi del browser.

Pulire le risorse

Quando le risorse non sono più necessarie, rimuovere il gruppo di risorse, il servizio di bilanciamento del carico e tutte le risorse correlate tramite il comando az group delete.

  az group delete \
    --name CreateIntLBQS-rg

Passaggi successivi

In questo avvio rapido:

  • È stato creato un servizio di bilanciamento del carico interno

  • Sono state collegate due macchine virtuali

  • Sono stati configurati la regola del traffico di bilanciamento del carico e il probe di integrità

  • È stato testato il bilanciamento del carico

Per altre informazioni su Azure Load Balancer, passare a: