Quickstart: Een interne load balancer maken om taken van VM's te verdelen met behulp van de Azure CLI

Ga aan de slag met Azure Load Balancer met behulp van de Azure CLI om een interne load balancer en twee virtuele machines te maken. Andere resources zijn Azure Bastion, NAT Gateway, een virtueel netwerk en de vereiste subnetten.

Diagram van de resources die zijn geïmplementeerd voor een interne load balancer.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereisten

  • Voor deze quickstart is versie 2.0.28 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Een brongroep maken

Een Azure-resourcegroep is een logische container waarin u uw Azure-resources implementeert en beheert.

Maak een resourcegroep met az group create.

    az group create \
      --name load-balancer-cli-rg \
      --location westus2

Wanneer u een interne load balancer maakt, wordt een virtueel netwerk geconfigureerd als netwerk voor de load balancer.

Het virtuele netwerk maken

Voordat u VM's implementeert en uw load balancer test, maakt u het ondersteunende virtuele netwerk en subnet. Het virtuele netwerk en subnet bevatten de resources die verderop in dit artikel zijn geïmplementeerd.

Maak een virtueel netwerk met az network vnet create.

  az network vnet create \
    --resource-group load-balancer-cli-rg \
    --location westus2 \
    --name lb-vnet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name backend-subnet \
    --subnet-prefixes 10.1.0.0/24

Een Azure Bastion-host maken

In dit voorbeeld maakt u een Azure Bastion-host. De Azure Bastion-host wordt verderop in dit artikel gebruikt om de virtuele machines veilig te beheren en de implementatie van de load balancer te testen.

Belangrijk

De uurtarieven gaan in vanaf het moment dat Bastion wordt geïmplementeerd, ongeacht het uitgaande dataverbruik. Zie Prijzen en SKU's voor meer informatie. Als u Bastion implementeert als onderdeel van een zelfstudie of test, raden we u aan deze resource te verwijderen nadat u deze hebt gebruikt.

Een openbaar IP-adres voor bastion maken

Gebruik az network public-ip create om een openbaar IP-adres te maken voor de Azure Bastion-host.

az network public-ip create \
    --resource-group load-balancer-cli-rg  \
    --name lb-vnet-bastion-ip \
    --sku Standard \
    --zone 1 2 3

Een bastion-subnet maken

Gebruik az network vnet subnet create om een subnet te maken.

az network vnet subnet create \
    --resource-group load-balancer-cli-rg  \
    --name AzureBastionSubnet \
    --vnet-name lb-vnet \
    --address-prefixes 10.1.1.0/27

Maak de bastion-host aan

Gebruik az network bastion create om een host te maken.

az config set extension.use_dynamic_install=yes_without_prompt

az network bastion create \
    --resource-group load-balancer-cli-rg  \
    --name lb-vnet-bastion \
    --public-ip-address lb-vnet-bastion-ip \
    --vnet-name lb-vnet \
    --location westus2 \
    --sku Basic \
    --only-show-errors \
    --no-wait

Het kan enkele minuten duren voordat de Azure Bastion-host is geïmplementeerd.

De load balancer maken

In deze sectie wordt beschreven hoe u de volgende onderdelen van de load balancer kunt maken en configureren.

  • Een front-end-IP-adresgroep die het binnenkomende netwerkverkeer op de load balancer ontvangt

  • Een back-end-IP-adresgroep waarbij de front-endpool het netwerkverkeer met gelijke taakverdeling verzendt

  • Een statustest die de status van de back-end-VM-exemplaren bepaalt

  • Een load balancer-regel die definieert hoe verkeer wordt gedistribueerd naar de VM's

De load balancer-resource maken

Maak een interne load balancer met az network lb create.

  az network lb create \
    --resource-group load-balancer-cli-rg \
    --name load-balancer \
    --sku Standard \
    --vnet-name lb-vnet \
    --subnet backend-subnet \
    --backend-pool-name lb-backend-pool \
    --frontend-ip-name lb-frontend

Health-sonde maken

Met een statustest worden alle VM-instanties gecontroleerd om na te gaan of ze netwerkverkeer kunnen verzenden.

Een virtuele machine met een mislukte test wordt verwijderd uit de load balancer. De virtuele machine wordt weer toegevoegd aan de load balancer wanneer de fout is opgelost.

Maak een statuscontrole met az network lb probe create.

  az network lb probe create \
    --resource-group load-balancer-cli-rg \
    --lb-name load-balancer \
    --name lb-health-probe \
    --protocol tcp \
    --port 80

Een load balancer-regel maken

Met een load balancer-regel wordt het volgende gedefinieerd:

  • Front-end-IP-configuratie voor binnenkomend verkeer

  • De back-end-IP-adresgroep voor het ontvangen van het verkeer

  • De vereiste bron- en doelpoort

Gebruik az network lb rule create om een load balancer-regel te maken.

  az network lb rule create \
    --resource-group load-balancer-cli-rg \
    --lb-name load-balancer \
    --name lb-HTTP-rule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name lb-frontend \
    --backend-pool-name lb-backend-pool \
    --probe-name lb-health-probe \
    --idle-timeout 15 \
    --enable-tcp-reset true

Een netwerkbeveiligingsgroep maken

Voor een standard load balancer moeten de VM's in de back-endpool netwerkinterfaces hebben die deel uitmaken van een netwerkbeveiligingsgroep.

Als u een netwerkbeveiligingsgroep wilt maken, gebruikt u az network nsg create.

  az network nsg create \
    --resource-group load-balancer-cli-rg \
    --name lb-NSG

Regel voor netwerkbeveiligingsgroep maken

Als u een regel voor een netwerkbeveiligingsgroep wilt maken, gebruikt u az network nsg rule create.

  az network nsg rule create \
    --resource-group load-balancer-cli-rg \
    --nsg-name lb-NSG \
    --name lb-NSG-Rule \
    --protocol '*' \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

Back-endservers maken

In deze sectie maakt u:

  • Twee netwerkinterfaces voor de virtuele machines

  • Twee virtuele machines die moeten worden gebruikt als servers voor de load balancer

Netwerkinterfaces maken voor de virtuele machines

Maak twee netwerkinterfaces met az network nic create.

  array=(lb-nic-vm1 lb-nic-vm2)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group load-balancer-cli-rg \
        --name $vmnic \
        --vnet-name lb-vnet \
        --subnet backend-subnet \
        --network-security-group lb-NSG
  done

De virtuele machines maken

Maak de virtuele machines met az vm create.

  array=(1 2)
  for n in "${array[@]}"
  do
    az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-VM$n \
    --nics lb-nic-vm$n \
    --image win2022datacenter \
    --admin-username azureuser \
    --zone $n \
    --no-wait
  done

Het kan enkele minuten duren voordat de VM's zijn geïmplementeerd.

Notitie

Azure biedt een standaard ip-adres voor uitgaande toegang voor VM's waaraan geen openbaar IP-adres is toegewezen of zich in de back-endpool van een interne Azure-load balancer bevinden. Het standaard ip-mechanisme voor uitgaande toegang biedt een uitgaand IP-adres dat niet kan worden geconfigureerd.

Het standaard IP-adres voor uitgaande toegang is uitgeschakeld wanneer een van de volgende gebeurtenissen plaatsvindt:

  • Er wordt een openbaar IP-adres toegewezen aan de VIRTUELE machine.
  • De VM wordt in de back-endpool van een standaard load balancer geplaatst, met of zonder uitgaande regels.
  • Er wordt een Azure NAT Gateway-resource toegewezen aan het subnet van de VIRTUELE machine.

Virtuele machines die u maakt met behulp van virtuele-machineschaalsets in de flexibele indelingsmodus, hebben geen standaardtoegang voor uitgaand verkeer.

Zie Standaardtoegang voor uitgaand verkeer in Azure en Source Network Address Translation (SNAT) gebruiken voor uitgaande verbindingen voor meer informatie over uitgaande verbindingen in Azure.

Virtuele machines toevoegen aan de back-endpool

Voeg de virtuele machines toe aan de backendpool met 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 lb-backend-pool \
   --ip-config-name ipconfig1 \
   --nic-name lb-nic-$vm \
   --resource-group load-balancer-cli-rg \
   --lb-name load-balancer
  done

NAT-gateway maken

Als u uitgaande internettoegang wilt bieden voor resources in de back-endpool, maakt u een NAT-gateway.

Openbaar IP-adres maken

Gebruik az network public-ip create om één IP-adres voor de uitgaande verbinding te maken.

  az network public-ip create \
    --resource-group load-balancer-cli-rg \
    --name nat-gw-public-ip \
    --sku Standard \
    --zone 1 2 3

NAT-gatewayresource maken

Gebruik az network nat gateway create om de NAT-gatewayresource te maken. Het openbare IP-adres dat in de vorige stap is gemaakt, is gekoppeld aan de NAT-gateway.

  az network nat gateway create \
    --resource-group load-balancer-cli-rg \
    --name lb-nat-gateway \
    --public-ip-addresses nat-gw-public-ip \
    --idle-timeout 10

NAT-gateway koppelen aan subnet

Configureer het bronsubnet in het virtuele netwerk om een specifieke NAT-gatewayresource te gebruiken met az network vnet subnet update.

  az network vnet subnet update \
    --resource-group load-balancer-cli-rg \
    --vnet-name lb-vnet \
    --name backend-subnet \
    --nat-gateway lb-nat-gateway

Virtuele testmachine maken

Maak de netwerkinterface met az network nic create.

  az network nic create \
    --resource-group load-balancer-cli-rg \
    --name lb-nic-testvm \
    --vnet-name lb-vnet \
    --subnet backend-subnet \
    --network-security-group lb-NSG

Maak de virtuele machine met az vm create.

  az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-TestVM \
    --nics lb-nic-testvm \
    --image Win2019Datacenter \
    --admin-username azureuser \
    --no-wait

Mogelijk moet u enkele minuten wachten totdat de virtuele machine is geïmplementeerd.

IIS installeren

Gebruik az vm extension set om IIS te installeren op de back-end virtuele machines en stel de standaardwebsite in op de computernaam.

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

Test de load balancer

  1. Meld u aan bij de Azure-portal.

  2. Zoek op de pagina Overzicht het privé-IP-adres voor de load balancer. Selecteer in het menu aan de linkerkant All services>All resources>load-balancer.

  3. Kopieer in het overzicht van load balancer het adres naast het privé-IP-adres. Als het privé-IP-adres niet zichtbaar is, selecteert u Meer weergeven.

  4. Selecteer in het menu aan de linkerkant Alle services>Alle resources. Selecteer in de lijst met resources in de resourcegroep load-balancer-cli-rg de optie lb-TestVM.

  5. Ga op de pagina Overview naar Connect>Bastion.

  6. Voer de gebruikersnaam en het wachtwoord in die u hebt ingevoerd bij het maken van de virtuele machine.

  7. Open Internet Explorer op lb-TestVM.

  8. Voer het IP-adres uit de vorige stap in in de adresbalk van de browser. De standaardpagina van de IIS-webserver wordt weergegeven in de browser.

    Schermopname van het IP-adres in de adresbalk van de browser.

Resources opschonen

Wanneer uw resources niet meer nodig zijn, gebruikt u de opdracht az group delete om de resourcegroep, load balancer en alle gerelateerde resources te verwijderen.

  az group delete \
    --name load-balancer-cli-rg

Volgende stappen

Voor deze snelstart geldt het volgende:

  • U hebt een interne load balancer gemaakt

  • Twee virtuele machines gekoppeld

  • De verkeersregel en de statuscontrole van de load balancer geconfigureerd

  • De load balancer getest

Als u meer informatie wilt over Azure Load Balancer, gaat u naar: