Szybki Start: Tworzenie usługa Load Balancer w warstwie Standardowa równoważenia obciążenia maszyn wirtualnych przy użyciu interfejsu wiersza polecenia platformy AzureQuickstart: Create a Standard Load Balancer to load balance VMs using Azure CLI

W tym przewodniku szybki start przedstawiono sposób tworzenia Load Balancer publicznego.This quickstart shows you how to create a public Load Balancer. W celu przetestowania modułu równoważenia obciążenia wdrożysz dwie maszyny wirtualne z systemem Ubuntu Server i zrównoważysz obciążenie aplikacji internetowej między dwiema maszynami wirtualnymi.To test the load balancer, you deploy two virtual machines (VMs) running Ubuntu server and load balance a web app between the two VMs.

Używanie usługi Azure Cloud ShellUse Azure Cloud Shell

Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Aby uruchomić kod z tego artykułu bez konieczności instalowania narzędzi w środowisku lokalnym, można użyć wstępnie zainstalowanych poleceń środowiska Cloud Shell.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Aby uruchomić środowisko Azure Cloud Shell:To start Azure Cloud Shell:

OpcjaOption Przykład/linkExample/Link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu.Select Try It in the upper-right corner of a code block. Wybranie pozycji Wypróbuj nie spowoduje automatycznego skopiowania kodu do środowiska Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Przykład funkcji Wypróbuj w środowisku Azure Cloud Shell
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Uruchamianie środowiska Cloud Shell w nowym oknieLaunch Cloud Shell in a new window
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Przycisk Cloud Shell w witrynie Azure Portal

Aby uruchomić kod z tego artykułu w środowisku Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.Start Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu, aby skopiować kod.Select the Copy button on a code block to copy the code.

  3. Wklej kod w sesji Cloud Shell, naciskając klawisze Ctrl+Shift+V w systemach Windows i Linux lub klawisze Cmd+Shift+V w systemie macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Naciśnij klawisz Enter, aby uruchomić kod.Select Enter to run the code.

Jeśli zdecydujesz się zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten samouczek będzie wymagał interfejsu wiersza polecenia platformy Azure w wersji 2.0.28 lub nowszej.If you choose to install and use the CLI locally, this tutorial requires that you are running a version of the Azure CLI version 2.0.28 or later. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version.To find the version, run az --version. Jeśli konieczna będzie instalacja lub uaktualnienie interfejsu, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.If you need to install or upgrade, see Install the Azure CLI.

Tworzenie grupy zasobówCreate a resource group

Utwórz grupę zasobów za pomocą polecenia az group create.Create a resource group with az group create. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.An Azure resource group is a logical container into which Azure resources are deployed and managed.

W poniższym przykładzie zostanie utworzona grupa zasobów o nazwie myResourceGroupSLB w lokalizacji eastus:The following example creates a resource group named myResourceGroupSLB in the eastus location:

  az group create \
    --name myResourceGroupSLB \
    --location eastus

Tworzenie publicznego adresu IPCreate a public IP address

Aby uzyskać dostęp do aplikacji internetowej za pośrednictwem Internetu, potrzebujesz publicznego adresu IP modułu równoważenia obciążenia.To access your web app on the Internet, you need a public IP address for the load balancer. Użyj AZ Network Public-IP Create , aby utworzyć strefę Standard nadmiarowy publiczny adres IP o nazwie myPublicIP w myResourceGroupSLB.Use az network public-ip create to create a Standard zone redundant Public IP address named myPublicIP in myResourceGroupSLB.

  az network public-ip create --resource-group myResourceGroupSLB --name myPublicIP --sku standard

Aby utworzyć strefowy publiczny adres IP w strefie 1, użyj:To create a zonal Public IP address in zone 1 use:

  az network public-ip create --resource-group myResourceGroupSLB --name myPublicIP --sku standard --zone 1

Użyj -SKU Basic , aby utworzyć podstawowy publiczny adres IP.Use -SKU Basic to create a Basic Public IP. Podstawowe publiczne adresy IP nie są zgodne z usługą równoważenia obciążenia w warstwie Standardowa .Basic Public IPs are not compatible with Standard load balancer. Firma Microsoft zaleca używanie standardu dla obciążeń produkcyjnych.Microsoft recommends using Standard for production workloads.

Ważne

W pozostałej części tego przewodnika Szybki Start przyjęto założenie, że w ramach procesu wyboru jednostki SKU zostanie wybrana standardowa jednostka SKU.The rest of this quickstart assumes that Standard SKU is chosen during the SKU selection process above.

Tworzenie modułu równoważenia obciążenia platformy AzureCreate Azure Load balancer

W tej sekcji opisano szczegółowo procedurę tworzenia i konfigurowania następujących składników modułu równoważenia obciążenia:This section details how you can create and configure the following components of the load balancer:

  • Adres IP frontonu, który odbiera przychodzący ruch sieciowy w module równoważenia obciążenia.a frontend IP pool that receives the incoming network traffic on the load balancer.
  • Pula adresów IP zaplecza, gdzie pula frontonu wysyła ruch sieciowy o zrównoważonym obciążeniu.a backend IP pool where the frontend pool sends the load balanced network traffic.
  • Sonda kondycji, która określa kondycję wystąpień maszyn wirtualnych zaplecza.a health probe that determines health of the backend VM instances.
  • Reguła modułu równoważenia obciążenia, która definiuje sposób dystrybucji ruchu do maszyn wirtualnych.a load balancer rule that defines how traffic is distributed to the VMs.

Tworzenie modułu równoważenia obciążeniaCreate the load balancer

Utwórz publiczną Azure Load Balancer za pomocą AZ Network lb Create o nazwie myLoadBalancer , która zawiera pulę frontonu o nazwie Moja fronton, pulę zaplecza o nazwie myBackEndPool , która jest skojarzona z publicznym adresem IP myPublicIP utworzonym w poprzednim kroku.Create a public Azure Load Balancer with az network lb create named myLoadBalancer that includes a frontend pool named myFrontEnd, a backend pool named myBackEndPool that is associated with the public IP address myPublicIP that you created in the preceding step. Użyj --sku basic , aby utworzyć podstawowy publiczny adres IP.Use --sku basic to create a Basic Public IP. Firma Microsoft zaleca użycie standardowej jednostki SKU dla obciążeń produkcyjnych.Microsoft recommends Standard SKU for production workloads.

  az network lb create \
    --resource-group myResourceGroupSLB \
    --name myLoadBalancer \
    --sku standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool       

Ważne

W pozostałej części tego przewodnika Szybki Start przyjęto założenie, że w ramach procesu wyboru jednostki SKU zostanie wybrana standardowa jednostka SKU.The rest of this quickstart assumes that Standard SKU is chosen during the SKU selection process above.

Tworzenie sondy kondycjiCreate the health probe

Sonda kondycji sprawdza wszystkie wystąpienia maszyny wirtualnej, aby upewnić się, że mogą wysyłać ruch sieciowy.A health probe checks all virtual machine instances to make sure they can send network traffic. Wystąpienie maszyny wirtualnej, w przypadku którego sprawdzanie kondycji za pomocą sondy nie powiodło się, jest usuwane z modułu równoważenia obciążenia do momentu ponownego przejścia do trybu online i pomyślnego sprawdzenia kondycji.The virtual machine instance with failed probe checks is removed from the load balancer until it goes back online and a probe check determines that it's healthy. Utwórz sondę kondycji za pomocą polecenia az network lb probe create w celu monitorowania kondycji maszyn wirtualnych.Create a health probe with az network lb probe create to monitor the health of the virtual machines.

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

Tworzenie reguły modułu równoważenia obciążeniaCreate the load balancer rule

Reguła modułu równoważenia obciążenia definiuje konfigurację adresu IP frontonu na potrzeby ruchu przychodzącego oraz pulę adresów IP zaplecza do odbierania ruchu, wraz z wymaganym portem źródłowym i docelowym.A load balancer rule defines the frontend IP configuration for the incoming traffic and the backend IP pool to receive the traffic, along with the required source and destination port. Utwórz regułę modułu równoważenia obciążenia myLoadBalancerRuleWeb za pomocą polecenia az network lb rule create w celu nasłuchiwania na porcie 80 w puli frontonu myFrontEnd i wysyłania ruchu sieciowego o zrównoważonym obciążeniu do puli adresów zaplecza myBackEndPool, również przy użyciu portu 80.Create a load balancer rule myLoadBalancerRuleWeb with az network lb rule create for listening to port 80 in the frontend pool myFrontEnd and sending load-balanced network traffic to the backend address pool myBackEndPool also using port 80.

  az network lb rule create \
    --resource-group myResourceGroupSLB \
    --lb-name myLoadBalancer \
    --name myHTTPRule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool \
    --probe-name myHealthProbe  

Konfigurowanie sieci wirtualnejConfigure virtual network

Zanim będzie możliwe wdrożenie maszyn wirtualnych i przetestowanie modułu równoważenia obciążenia, należy utworzyć pomocnicze zasoby sieci wirtualnej.Before you deploy some VMs and can test your load balancer, create the supporting virtual network resources.

Tworzenie sieci wirtualnejCreate a virtual network

Utwórz sieć wirtualną o nazwie myVnet z podsiecią o nazwie mySubnet w grupie zasobów myResourceGroup przy użyciu polecenia az network vnet create.Create a virtual network named myVnet with a subnet named mySubnet in the myResourceGroup using az network vnet create.

  az network vnet create \
    --resource-group myResourceGroupSLB \
    --location eastus \
    --name myVnet \
    --subnet-name mySubnet

Tworzenie sieciowej grupy zabezpieczeńCreate a network security group

W przypadku usługi Load Balancer w warstwie Standardowa maszyny wirtualne w adresie zaplecza muszą mieć karty sieciowe, które należą do sieciowej grupy zabezpieczeń.For a Standard Load Balancer, the VMs in the backend address for are required to have NICs that belong to a Network Security group. Utwórz sieciową grupę zabezpieczeń w celu zdefiniowania połączeń przychodzących do sieci wirtualnej.Create network security group to define inbound connections to your virtual network.

  az network nsg create \
    --resource-group myResourceGroupSLB \
    --name myNetworkSecurityGroup

Tworzenie reguły sieciowej grupy zabezpieczeńCreate a network security group rule

Utwórz regułę sieciowej grupy zabezpieczeń, aby zezwalać na połączenia przychodzące za pośrednictwem portu 80.Create a network security group rule to allow inbound connections through port 80.

  az network nsg rule create \
    --resource-group myResourceGroupSLB \
    --nsg-name myNetworkSecurityGroup \
    --name myNetworkSecurityGroupRuleHTTP \
    --protocol tcp \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

Tworzenie kart sieciowychCreate NICs

Utwórz trzy interfejsy sieciowe za pomocą polecenia az network nic create i skojarz je z publicznym adresem IP i sieciową grupą zabezpieczeń.Create three network interfaces with az network nic create and associate them with the Public IP address and the network security group.


  az network nic create \
    --resource-group myResourceGroupSLB \
    --name myNicVM1 \
    --vnet-name myVnet \
    --subnet mySubnet \
    --network-security-group myNetworkSecurityGroup \
    --lb-name myLoadBalancer \
    --lb-address-pools myBackEndPool

  az network nic create \
    --resource-group myResourceGroupSLB \
    --name myNicVM2 \
    --vnet-name myVnet \
    --subnet mySubnet \
    --network-security-group myNetworkSecurityGroup \
    --lb-name myLoadBalancer \
    --lb-address-pools myBackEndPool
  
  az network nic create \
    --resource-group myResourceGroupSLB \
    --name myNicVM3 \
    --vnet-name myVnet \
    --subnet mySubnet \
    --network-security-group myNetworkSecurityGroup \
    --lb-name myLoadBalancer \
    --lb-address-pools myBackEndPool

Tworzenie serwerów zapleczaCreate backend servers

W tym przykładzie utworzysz trzy maszyny wirtualne, które będą używane jako serwery zaplecza dla modułu równoważenia obciążenia.In this example, you create three virtual machines to be used as backend servers for the load balancer. Aby sprawdzić, czy moduł równoważenia obciążenia został utworzony pomyślnie, zainstalujesz także serwer NGINX na maszynach wirtualnych.To verify that the load balancer was successfully created, you also install NGINX on the virtual machines.

Jeśli tworzysz podstawową Load Balancer z podstawowym publicznym adresem IP, musisz utworzyć zestaw dostępności za pomocą (AZ VM availabilityset Create , aby dodać maszyny wirtualne do programu.If you're creating a Basic Load Balancer with a Basic Public IP, you will need to create an Availability Set using (az vm availabilityset create to add your virtual machines into. Standardowe usługi równoważenia obciążenia nie wymagają tego dodatkowego kroku.Standard Load Balancers do not require this additional step. Firma Microsoft zaleca używanie standardu.Microsoft recommends using Standard.

Tworzenie trzech maszyn wirtualnychCreate three virtual machines

Aby zainstalować serwer NGINX i uruchomić aplikację Node.js „Hello World” na maszynie wirtualnej z systemem Linux, możesz użyć pliku konfiguracji cloud-init.You can use a cloud-init configuration file to install NGINX and run a 'Hello World' Node.js app on a Linux virtual machine. W bieżącej powłoce utwórz plik o nazwie cloud-init.txt, a następnie skopiuj i wklej poniższą konfigurację do powłoki.In your current shell, create a file named cloud-init.txt and copy and paste the following configuration into the shell. Upewnij się, że kopiujesz cały plik cloud-init, a szczególnie pierwszy wiersz:Make sure that you copy the whole cloud-init file correctly, especially the first line:

#cloud-config
package_upgrade: true
packages:
  - nginx
  - nodejs
  - npm
write_files:
  - owner: www-data:www-data
  - path: /etc/nginx/sites-available/default
    content: |
      server {
        listen 80;
        location / {
          proxy_pass http://localhost:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
      }
  - owner: azureuser:azureuser
  - path: /home/azureuser/myapp/index.js
    content: |
      var express = require('express')
      var app = express()
      var os = require('os');
      app.get('/', function (req, res) {
        res.send('Hello World from host ' + os.hostname() + '!')
      })
      app.listen(3000, function () {
        console.log('Hello world app listening on port 3000!')
      })
runcmd:
  - service nginx restart
  - cd "/home/azureuser/myapp"
  - npm init
  - npm install express -y
  - nodejs index.js

Utwórz maszyny wirtualne za pomocą polecenia az vm create.Create the virtual machines with az vm create.


  az vm create \
    --resource-group myResourceGroupSLB \
    --name myVM1 \
    --availability-set myAvailabilitySet \
    --nics myNicVM1 \
    --image UbuntuLTS \
    --generate-ssh-keys \
    --custom-data cloud-init.txt \
    --no-wait
   
  az vm create \
    --resource-group myResourceGroupSLB \
    --name myVM2 \
    --availability-set myAvailabilitySet \
    --nics myNicVM2 \
    --image UbuntuLTS \
    --generate-ssh-keys \
    --custom-data cloud-init.txt \
    --no-wait

   az vm create \
    --resource-group myResourceGroupSLB \
    --name myVM3 \
    --availability-set myAvailabilitySet \
    --nics myNicVM3 \
    --image UbuntuLTS \
    --generate-ssh-keys \
    --custom-data cloud-init.txt \
    --no-wait

Wdrażanie maszyn wirtualnych może potrwać kilka minut.It may take a few minutes for the VMs to get deployed.

Testowanie modułu równoważenia obciążeniaTest the load balancer

Aby uzyskać publiczny adres IP modułu równoważenia obciążenia, użyj polecenia az network public-ip show.To get the public IP address of the load balancer, use az network public-ip show. Skopiuj publiczny adres IP, a następnie wklej go na pasku adresu przeglądarki.Copy the public IP address, and then paste it into the address bar of your browser.

  az network public-ip show \
    --resource-group myResourceGroupSLB \
    --name myPublicIP \
    --query [ipAddress] \
    --output tsv

Testowanie modułu równoważenia obciążenia

Oczyszczanie zasobówClean up resources

Gdy grupa zasobów nie będzie już potrzebna, możesz użyć polecenia az group delete, aby usunąć grupę zasobów, moduł równoważenia obciążenia oraz wszystkie pokrewne zasoby.When no longer needed, you can use the az group delete command to remove the resource group, load balancer, and all related resources.

  az group delete --name myResourceGroupSLB

Następne krokiNext steps

W tym przewodniku szybki start utworzono usługa Load Balancer w warstwie Standardowa, dołączono do niego maszyny wirtualne, skonfigurowano regułę ruchu Load Balancer, sondę kondycji, a następnie przetestowano Load Balancer.In this quickstart, you created a Standard Load Balancer, attached VMs to it, configured the Load Balancer traffic rule, health probe, and then tested the Load Balancer. Aby dowiedzieć się więcej na temat Azure Load Balancer, przejdź do Azure Load Balancer samouczków.To learn more about Azure Load Balancer, continue to Azure Load Balancer tutorials.

Dowiedz się więcej na temat stref Load Balancer i dostępności.Learn more about Load Balancer and Availability zones.