Leer en inglés

Compartir a través de

教程:对多个 IP 配置进行负载均衡

若要托管多个网站,可以使用与虚拟机关联的另一个网络接口。 Azure 负载均衡器支持通过部署负载均衡来支持网站的高可用性。

在本教程中,你将了解如何:

  • 创建和配置虚拟网络、子网和 NAT 网关。
  • 创建两个 Windows 服务器虚拟机
  • 为每个虚拟机创建辅助 NIC 和网络配置
  • 在每个虚拟机上创建两个 Internet Information Server (IIS) 网站
  • 将网站绑定到网络配置
  • 创建和配置 Azure 负载均衡器
  • 测试负载均衡器

先决条件

创建虚拟网络和堡垒主机

在本部分中,你将创建一个包含资源子网、Azure Bastion 子网和 Azure Bastion 主机的虚拟网络。

Importante

小时定价从部署 Bastion 的时刻开始计算,而无论出站数据使用情况如何。 有关详细信息,请参阅定价SKU。 如果要将 Bastion 部署为教程或测试的一部分,建议在使用完此资源后将其删除。

  1. 在门户中,搜索并选择“虚拟网络”。

  2. 在“虚拟网络”页面上,选择“+ 创建”。

  3. 创建虚拟网络基本信息选项卡上输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 从下拉列表中选择“load-balancer-rg”,或者选择“新建”(如果前者不存在)
    在“名称”中,输入“load-balancer-rg”。
    选择“确定”
    实例详细信息
    名称 输入“lb-vnet”
    区域 选择“中国北部 3”

    Azure 门户中“创建虚拟网络”的“基本信息”选项卡的屏幕截图。

  4. 选择“安全性”选项卡或页面底部的“下一步”按钮。

  5. 在“Azure Bastion”下,输入或选择以下信息:

    设置
    Azure Bastion
    启用 Azure Bastion 选中复选框。
    Azure Bastion 主机名 输入“lb-bastion”
    Azure Bastion 公共 IP 地址 选择“新建”。
    在“名称”中输入“lb-bastion-ip”
    选择“确定”
  6. 选择“IP 地址”选项卡,或选择页面底部的“下一步”

  7. 在“创建虚拟网络”页面上,输入或选择以下信息:

    设置
    添加 IPv4 地址空间
    IPv4 地址空间 输入“10.0.0.0/16 (65,356 个地址)”
    子网 选择要编辑的默认子网链接。
    编辑子网
    子网用途 保留默认值“默认”。
    名称 输入“backend-subnet”
    开始地址 输入“10.0.0.0”
    子网大小 输入 /24(256 个地址)
    安全性
    NAT 网关 选择“lb-nat-gateway”

    默认子网重命名和配置的屏幕截图。

  8. 选择“保存”。

  9. 选择屏幕底部的“查看 + 创建”,然后在验证通过时选择“创建”。

创建 NAT 网关

在本部分中,你将为虚拟网络中的资源创建用于出站 Internet 访问的 NAT 网关。 有关出站规则的其他选项,请查看用于出站连接的网络地址转换 (SNAT)

  1. 登录 Azure 门户

  2. 在门户顶部的搜索框中,输入“NAT 网关”。 在搜索结果中选择“NAT 网关”。

  3. 选择“+ 新建”。

  4. 在“创建网络地址转换(NAT)网关”的“基本信息”选项卡中,输入或选择以下值:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“新建”。
    在“名称”中,输入“load-balancer-rg”。
    选择“确定”
    实例详细信息
    NAT 网关名称 输入“lb-nat-gateway”
    区域 选择“中国北部 3”。
    可用性区域 选择“无区域”
    空闲超时(分钟) 输入 15
  5. 选择“出站 IP”选项卡,或者选择“下一步: 出站 IP”按钮(位于页面底部) 。

  6. 在“公共 IP 地址”下,选择“创建新的公共 IP 地址”。

  7. 在“添加公共 IP 地址”的“名称”中,输入“nat-gw-public-ip”

  8. 选择“确定”

  9. 选择页面底部的“查看 + 创建”按钮,或选择“查看 + 创建”选项卡 。

  10. 选择“创建”。

创建虚拟机

在本部分中,你将创建两个虚拟机来托管 IIS 网站

  1. 在门户顶部的搜索框中,输入“虚拟机”。 在搜索结果中,选择“虚拟机”。

  2. 在“虚拟机”中,依次选择“+ 创建”和“Azure 虚拟机”。

  3. 在“创建虚拟机”中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择 Azure 订阅
    资源组 选择“load-balancer-rg”
    实例详细信息
    虚拟机名称 输入“myVM1”
    区域 选择“中国北部 3”
    可用性选项 选择“可用性区域”
    可用性区域 选择“1”
    安全类型 保留默认值标准
    映像 选择“Windows Server 2022 Datacenter - Gen2”
    大小 选择 VM 大小或采用默认设置
    管理员帐户
    用户名 输入用户名
    密码 输入密码
    确认密码 重新输入密码
    入站端口规则
    公共入站端口 选择“无”
  4. 选择“网络”选项卡,或选择“下一步: 磁盘”,然后选择“下一步: 网络”。

  5. 在“网络”选项卡中,选择或输入:

    设置
    网络接口
    虚拟网络 选择“myVNet”。
    子网 选择“backend-subnet(10.1.0.0/24)”
    公共 IP 选择
    NIC 网络安全组 选择“高级”
    配置网络安全组 选择“新建”。
    在“创建网络安全组”的“名称”中输入“myNSG”。
    在“入站规则”中,选择“+添加入站规则”。
    在“服务”中,选择“HTTP”。
    在“优先级”中,输入“100”。
    在“名称”中输入“myNSGrule”。
    选择“添加”。
    选择“确定”。
  6. 选择“查看 + 创建”。

  7. 检查设置,然后选择“创建”。

  8. 按照步骤 1 到 7 操作,使用以下值创建另一个 VM,所有其他设置均与 myVM1 相同:

    设置 VM 2
    名称 myVM2
    可用性区域 2
    网络安全组 选择现有的“myNSG”

Nota

Azure 会为未分配公共 IP 地址的 VM 或位于内部基本 Azure 负载均衡器的后端池中的 VM 提供默认出站访问 IP。 默认出站访问 IP 机制会提供不可配置的出站 IP 地址。

发生以下事件之一时,将禁用默认出站访问 IP:

  • 将公共 IP 地址分配给 VM。
  • 虚拟机被放置在标准负载平衡器的后端池中,有无出站规则均可。
  • 向 VM 的子网分配了 Azure NAT 网关资源。

在灵活业务流程模式下通过使用虚拟机规模集创建的 VM 没有默认的出站访问权限。

有关 Azure 中的出站连接的详细信息,请参阅 Azure 中的默认出站访问权限使用用于出站连接的源网络地址转换 (SNAT)

创建辅助网络配置

在本部分中,你要将每个虚拟机的现有 NIC 的专用 IP 地址更改为“静态”。 接着,为每个具有“静态”专用 IP 地址配置的虚拟机添加新的 NIC 资源。

有关在虚拟机配置中配置浮动 IP 的更多信息,请参阅浮动 IP 来宾 OS 配置

  1. 在门户顶部的搜索框中,输入“虚拟机”。 在搜索结果中,选择“虚拟机”。

  2. 选择 myVM1。

  3. 如果虚拟机正在运行,则将其停止。

  4. 在“设置”中选择“网络” 。

  5. 在“网络”中,选择“网络接口”旁边的网络接口名称 。 该网络接口以 VM 的名称开头,并分配有一个随机数。 在本示例中,它为 myVM1266。

  6. 在网络接口页上的“设置”中,选择“IP 配置” 。

  7. 在“IP 配置”中,选择“ipconfig1” 。

  8. 在 ipconfig1 配置的“分配”中选择 “静态”。

  9. 选择“保存”。

  10. 返回到 myVM1 的“概述”页。

  11. 在“设置”中选择“网络” 。

  12. 在“网络”页中,选择“附加网络接口”。

  13. 在“附加网络接口”中,选择“创建并附加网络接口” 。

  14. 在“创建网络接口”中,输入或选择以下信息:

    设置
    项目详细信息
    资源组 选择“load-balancer-rg”
    网络接口
    名称 输入“myVM1NIC2”
    子网 选择“backend-subnet (10.1.0.0/24)”
    NIC 网络安全组 选择“高级”。
    配置网络安全组 选择 myNSG。
    专用 IP 地址分配 选择“静态”。
    专用 IP 地址 输入 10.1.0.6。
  15. 选择“创建”。

  16. 启动虚拟机。

  17. 对 myVM2 重复步骤 1 到 16,并替换以下信息:

    设置 myVM2
    名称 myVM2NIC2
    专用 IP 地址 10.1.0.7

配置虚拟机

在本部分中,你将使用 Azure Bastion 连接到 myVM1 和 myVM2,并配置辅助网络配置。 你将为辅助网络配置的网关添加一个路由。 然后,在每个虚拟机上安装 IIS,并自定义网站以显示虚拟机的主机名。

  1. 在门户顶部的搜索框中,输入“虚拟机”。 在搜索结果中,选择“虚拟机”。

  2. 选择 myVM1。

  3. 启动 myVM1。

  4. 在“概述”中,依次选择“连接”、“Bastion” 。

  5. 输入创建虚拟机时输入的用户名和密码。

  6. 选择“允许”让 Bastion 使用剪贴板。

  7. 在服务器桌面上,导航到“开始”>“Windows 管理工具”>“Windows PowerShell”>“Windows PowerShell”。

  8. 在 PowerShell 窗口中执行 route print 命令,此命令将返回类似于以下虚拟机输出的输出,该虚拟机包含两个附加的网络接口:

    ===========================================================================
    Interface List
      4...60 45 bd 9c c7 00 ......Microsoft Hyper-V Network Adapter
     11...60 45 bd 8d 44 fa ......Microsoft Hyper-V Network Adapter #3
      1...........................Software Loopback Interface 1
    ===========================================================================
    
    IPv4 Route Table
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         10.1.0.1         10.1.0.4     10
             10.1.0.0    255.255.255.0         On-link          10.1.0.4    266
             10.1.0.0    255.255.255.0         On-link          10.1.0.6    266
             10.1.0.4  255.255.255.255         On-link          10.1.0.4    266
             10.1.0.6  255.255.255.255         On-link          10.1.0.6    266
           10.1.0.255  255.255.255.255         On-link          10.1.0.4    266
           10.1.0.255  255.255.255.255         On-link          10.1.0.6    266
            127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
            127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
      127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
        168.63.129.16  255.255.255.255         10.1.0.1         10.1.0.4     11
      169.254.169.254  255.255.255.255         10.1.0.1         10.1.0.4     11
            224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
            224.0.0.0        240.0.0.0         On-link          10.1.0.4    266
            224.0.0.0        240.0.0.0         On-link          10.1.0.6    266
      255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      255.255.255.255  255.255.255.255         On-link          10.1.0.4    266
      255.255.255.255  255.255.255.255         On-link          10.1.0.6    266
    ===========================================================================
    Persistent Routes:
      None
    
    IPv6 Route Table
    ===========================================================================
    Active Routes:
     If Metric Network Destination      Gateway
      1    331 ::1/128                  On-link
      4    266 fe80::/64                On-link
     11    266 fe80::/64                On-link
     11    266 fe80::382:8783:5d2:f71e/128       
                                        On-link
      4    266 fe80::1575:ced8:3e94:f23a/128
                                        On-link
      1    331 ff00::/8                 On-link
      4    266 ff00::/8                 On-link
     11    266 ff00::/8                 On-link
    ===========================================================================
    Persistent Routes:
      None
    

    在本示例中,Microsoft Hyper-V 网络适配器 #3(接口 13)是辅助网络接口,系统不会向其分配默认网关。

  9. 在 PowerShell 窗口中执行 ipconfig /all 命令,以查看分配给辅助网络接口的 IP 地址。 在本例中,10.1.0.6 被分配到接口 13。 辅助网络接口没有返回任何默认网关地址。

    
       Connection-specific DNS Suffix  . : pbu0t5vjr3sevaritkncspakhd.ax.internal.cloudapp.net
       Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter #3
       Physical Address. . . . . . . . . : 60-45-BD-A1-75-FB
       DHCP Enabled. . . . . . . . . . . : Yes
       Autoconfiguration Enabled . . . . : Yes
       Link-local IPv6 Address . . . . . : fe80::dfb3:b93e:3516:c5b6%12(Preferred)
       IPv4 Address. . . . . . . . . . . : 10.1.0.6(Preferred)
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       Lease Obtained. . . . . . . . . . : Monday, December 12, 2022 7:42:31 PM
       Lease Expires . . . . . . . . . . : Friday, January 19, 2159 2:17:19 AM
       Default Gateway . . . . . . . . . :
       DHCP Server . . . . . . . . . . . : 168.63.129.16
       DHCPv6 IAID . . . . . . . . . . . : 207635901
       DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2B-28-C9-C0-60-45-BD-9B-ED-AE
       DNS Servers . . . . . . . . . . . : 168.63.129.16
       NetBIOS over Tcpip. . . . . . . . : Enabled
    
  10. 若要将子网外地址的所有流量路由到网关,请执行以下命令:

    route -p add 0.0.0.0 MASK 0.0.0.0 10.1.0.1 METRIC 5015 IF 13
    

    在本示例中,10.1.0.1 是之前创建的虚拟网络的默认网关。

  11. 执行以下命令或将代码复制并粘贴到 PowerShell 窗口中,以安装并配置 IIS 和测试网站:

    ## Install IIS and the management tools. ##
    Install-WindowsFeature -Name Web-Server -IncludeManagementTools
    
    ## Set the binding for the Default website to 10.1.0.4:80. ##
    $para1 = @{
        Name = 'Default Web Site'
        BindingInformation = '10.1.0.4:80:'
        Protocol = 'http'
    }
    New-IISSiteBinding @para1
    
    ## Remove the default site binding. ##
    $para2 = @{
        Name = 'Default Web Site'
        BindingInformation = '*:80:'
    }
    Remove-IISSiteBinding @para2
    
    ## Remove the default htm file. ##
    Remove-Item c:\inetpub\wwwroot\iisstart.htm
    
    ## Add a new htm file that displays the Contoso website. ##
    $para3 = @{
        Path = 'c:\inetpub\wwwroot\iisstart.htm'
        Value = $("Hello World from www.contoso.com" + "-" + $env:computername)
    }
    Add-Content @para3
    
    ## Create folder to host website. ##
    $para4 = @{
        Path = 'c:\inetpub\'
        Name = 'fabrikam'
        Type = 'directory'
    }
    New-Item @para4
    
     ## Create a new website and site binding for the second IP address 10.1.0.6. ##
    $para5 = @{
        Name = 'Fabrikam'
        PhysicalPath = 'c:\inetpub\fabrikam'
        BindingInformation = '10.1.0.6:80:'
    }
    New-IISSite @para5
    
    ## Add a new htm file that displays the Fabrikam website. ##
    $para6 = @{
        Path = 'C:\inetpub\fabrikam\iisstart.htm'
        Value = $("Hello World from www.fabrikam.com" + "-" + $env:computername)
    
    }
    Add-Content @para6
    
  12. 关闭 Bastion 与 myVM1 的连接。

  13. 对 myVM2 重复步骤 1 到 12。 使用下面的 PowerShell 代码为 myVM2 安装 IIS。

    ## Install IIS and the management tools. ##
    Install-WindowsFeature -Name Web-Server -IncludeManagementTools
    
    ## Set the binding for the Default website to 10.1.0.5:80. ##
    $para1 = @{
        Name = 'Default Web Site'
        BindingInformation = '10.1.0.5:80:'
        Protocol = 'http'
    }
    New-IISSiteBinding @para1
    
    ## Remove the default site binding. ##
    $para2 = @{
        Name = 'Default Web Site'
        BindingInformation = '*:80:'
    }
    Remove-IISSiteBinding @para2
    
    ## Remove the default htm file. ##
    Remove-Item C:\inetpub\wwwroot\iisstart.htm
    
    ## Add a new htm file that displays the Contoso website. ##
    $para3 = @{
        Path = 'c:\inetpub\wwwroot\iisstart.htm'
        Value = $("Hello World from www.contoso.com" + "-" + $env:computername)
    }
    Add-Content @para3
    
    ## Create folder to host website. ##
    $para4 = @{
        Path = 'c:\inetpub\'
        Name = 'fabrikam'
        Type = 'directory'
    }
    New-Item @para4
    
    ## Create a new website and site binding for the second IP address 10.1.0.7. ##
    $para5 = @{
        Name = 'Fabrikam'
        PhysicalPath = 'c:\inetpub\fabrikam'
        BindingInformation = '10.1.0.7:80:'
    }
    New-IISSite @para5
    
    ## Add a new htm file that displays the Fabrikam website. ##
    $para6 = @{
        Path = 'C:\inetpub\fabrikam\iisstart.htm'
        Value = $("Hello World from www.fabrikam.com" + "-" + $env:computername)
    }
    Add-Content @para6
    

创建负载均衡器

在本部分中,你将创建一个对虚拟机进行负载均衡的区域冗余负载均衡器。

使用区域冗余时,一个或多个可用性区域可能会发生故障,而数据路径可以幸存,但前提是该区域中有一个局部区域保持正常。

在创建负载均衡器的过程中,配置以下内容:

  • 两个前端 IP 地址,每个网站一个。
  • 后端池
  • 入站负载均衡规则
  1. 在门户顶部的搜索框中,输入“负载均衡器”。 在搜索结果中选择“负载均衡器”。

  2. 在“负载均衡器”页上,选择“创建” 。

  3. 在“创建负载均衡器”页的“基本信息”选项卡中,输入或选择以下信息:

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“load-balancer-rg”
    实例详细信息
    名称 输入“myLoadBalancer”
    区域 选择“中国北部 3”。
    SKU 保留默认值“标准”。
    类型 选择“公共”。
    保留默认值“区域”。
  4. 选择“下一步: 前端 IP 配置”。

  5. 在“前端 IP 配置”中,选择“+ 添加前端 IP 配置”。

  6. 在“添加前端 IP 配置”中,输入或选择以下信息:

    设置
    名称 输入“Frontend-contoso”。
    IP 版本 选择“IPv4”。
    IP 类型 选择“IP 地址”。
    公共 IP 地址 选择“新建”。
    在“名称”中输入“myPublicIP-contoso”
    在“可用性区域”中选择“区域冗余”
    保留“路由首选项”的默认值“Microsoft 网络”。
    选择“确定”。

    Nota

    IPv6 目前不支持路由首选项或跨区域负载平衡(全局层)。

  7. 选择 添加

  8. 选择“+ 添加前端 IP 配置”。

  9. 在“添加前端 IP 配置”中,输入或选择以下信息:

    设置
    名称 输入“Frontend-fabrikam”。
    IP 版本 选择“IPv4”。
    IP 类型 选择“IP 地址”。
    公共 IP 地址 选择“新建”。
    在“名称”中输入“myPublicIP-fabrikam”
    在“可用性区域”中选择“区域冗余”
    保留“路由首选项”的默认值“Microsoft 网络”。
    选择“确定”。
  10. 选择 添加

  11. 选择“下一步: 后端池”。

  12. 在“后端池”选项卡上,选择“+ 添加后端池” 。

  13. 在“添加后端池”中,输入或选择以下信息:

    设置
    名称 输入“myBackendPool-contoso”。
    虚拟网络 选择“myVNet”。
    后端池配置 选择“NIC”。
  14. 在“IP 配置”中,选择“+ 添加” 。

  15. 选择与 ipconfig1 (10.1.0.4) 和 ipconfig1 (10.1.0.5) 对应的 myVM1 和 myVM2 。

  16. 选择 添加

  17. 选择“保存”。

  18. 选择“+ 添加后端池”。

  19. 在“添加后端池”中,输入或选择以下信息:

    设置
    名称 输入“myBackendPool-fabrikam”。
    虚拟网络 选择“myVNet”。
    后端池配置 选择“NIC”。
  20. 在“IP 配置”中,选择“+ 添加” 。

  21. 选择与 ipconfig1 (10.1.0.6) 和 ipconfig1 (10.1.0.7) 对应的 myVM1 和 myVM2 。

  22. 选择 添加

  23. 选择“保存”。

  24. 选择“下一步: 入站规则”。

  25. 在“入站规则”选项卡的“负载均衡规则”中,选择“+ 添加负载均衡规则” 。

  26. 在“添加负载均衡规则”中,输入或选择以下信息:

    设置
    名称 输入“myHTTPRule-contoso”
    IP 版本 选择“IPv4”。
    前端 IP 地址 选择“Frontend-contoso”。
    后端池 选择“myBackendPool-contoso”。
    协议 选择“TCP”。
    端口 输入 80
    后端端口 输入 80
    运行状况探测 选择“新建”。
    在“名称”中,输入“myHealthProbe-contoso”。
    在“协议”中选择“TCP”。
    将剩余的字段保留为默认值,然后选择“确定”。
    会话暂留 选择
    空闲超时(分钟) 输入或选择“15”。
    TCP 重置 选择“启用”。
    浮动 IP 选择“已禁用”。
    出站源网络地址转换 (SNAT) 保留默认值“(建议)使用出站规则为后端池成员提供对 Internet 的访问权限。”
  27. 选择 添加

  28. 选择“+ 添加负载均衡规则”。

  29. 在“添加负载均衡规则”中,输入或选择以下信息:

    设置
    名称 输入“myHTTPRule-fabrikam”
    IP 版本 选择“IPv4”。
    前端 IP 地址 选择“Frontend-fabrikam”。
    后端池 选择“myBackendPool-fabrikam”。
    协议 选择“TCP”。
    端口 输入 80
    后端端口 输入 80
    运行状况探测 选择“新建”。
    在“名称”中,输入“myHealthProbe-fabrikam”。
    在“协议”中选择“TCP”。
    将剩余的字段保留为默认值,然后选择“确定”。
    会话暂留 选择
    空闲超时(分钟) 输入或选择“15”。
    TCP 重置 选择“启用”。
    浮动 IP 选择“已禁用”。
    出站源网络地址转换 (SNAT) 保留默认值“(建议)使用出站规则为后端池成员提供对 Internet 的访问权限。”
  30. 选择 添加

  31. 选择页面底部的“查看 + 创建”蓝色按钮。

  32. 选择“创建”。

    Nota

    在此示例中,我们创建了一个 NAT 网关来提供出站 Internet 访问。 我们绕过了配置中的出站规则选项卡,因为它是可选选项,且 NAT 网关不需要它。 有关 Azure NAT 网关的详细信息,请参阅什么是虚拟网络 NAT?若要详细了解 Azure 中的出站连接,请参阅出站连接的源网络地址转换 (SNAT)

测试负载均衡器

在本部分中,你将发现每个网站的公共 IP 地址。 你将在浏览器中输入相应 IP,以测试之前创建的网站。

  1. 在门户顶部的搜索框中,输入“公共 IP”。 在搜索结果中,选择“公共 IP 地址”。

  2. 选择“myPublicIP-contoso”。

  3. 复制 myPublicIP-contoso 的概述页中的“IP 地址”。

    myPublicIP-fabrikam 公共 IP 地址的屏幕截图。

  4. 打开 Web 浏览器并将公共 IP 地址粘贴到地址栏中。

    Web 浏览器中 contoso 网站的屏幕截图。

  5. 返回到“公共 IP 地址”。 选择“myPublicIP-fabrikam”。

  6. 复制 myPublicIP-fabrikam 的概述页中的“IP 地址”。

    myPublicIP-contoso 公共 IP 地址的屏幕截图。

  7. 打开 Web 浏览器并将公共 IP 地址粘贴到地址栏中。

    Web 浏览器中 fabrikam 网站的屏幕截图。

  8. 若要测试负载均衡器,请刷新浏览器或关闭其中一个虚拟机。

清理资源

如果你不打算继续使用此应用程序,请按以下步骤删除虚拟机和负载均衡器:

  1. 在门户顶部的搜索框中输入“资源组”。 在搜索结果中选择“资源组”。

  2. 在“资源组”中选择“load-balancer-rg”。

  3. 选择“删除资源组”。

  4. 在“键入资源组名称:”中输入 load-balancer-rg。 选择“删除” 。

对多个 IP 配置进行负载均衡

若要实现本文中所述的方案,请完成以下步骤:

  1. 按照所链接的文章中的步骤安装和配置 Azure CLI,然后登录到 Azure 帐户。

  2. 如下所述创建一个资源组并将其命名为 contosofabrikam,如下所示:

    az group create contosofabrikam chinanorth3
    
  3. 为两个 VM 创建可用性集。 对于此场景,请使用以下命令:

    az vm availability-set create --resource-group contosofabrikam --location chinanorth3 --name myAvailabilitySet
    
  4. 创建一个虚拟网络并将其命名为 myVNet,并创建一个名为 mySubnet 的子网:

    az network vnet create --resource-group contosofabrikam --name myVnet --address-prefixes 10.0.0.0/16  --location chinanorth3 --subnet-name MySubnet --subnet-prefix 10.0.0.0/24
    
    
  5. 创建负载均衡器并将其命名为 mylb

    az network lb create --resource-group contosofabrikam --location chinanorth3 --name mylb
    
  6. 为负载均衡器的前端 IP 配置创建两个动态公共 IP 地址:

    az network public-ip create --resource-group contosofabrikam --location chinanorth3 --name PublicIp1 --domain-name-label contoso --allocation-method Dynamic
    
    az network public-ip create --resource-group contosofabrikam --location chinanorth3 --name PublicIp2 --domain-name-label fabrikam --allocation-method Dynamic
    
  7. 创建两个分别名为 contosofefabrikamfe 的前端 IP 配置:

    az network lb frontend-ip create --resource-group contosofabrikam --lb-name mylb --public-ip-name PublicIp1 --name contosofe
    az network lb frontend-ip create --resource-group contosofabrikam --lb-name mylb --public-ip-name PublicIp2 --name fabrikamfe
    
  8. 创建后端地址池 - contosopoolfabrikampool探测 - HTTP 和负载均衡规则 - HTTPruleContosoHTTPruleFabrikam

    az network lb address-pool create --resource-group contosofabrikam --lb-name mylb --name contosopool
    azure network lb address-pool create --resource-group contosofabrikam --lb-name mylb --name fabrikampool
    
    az network lb probe create --resource-group contosofabrikam --lb-name mylb --name HTTP --protocol "http" --interval 15 --count 2 --path index.html
    
    az network lb rule create --resource-group contosofabrikam --lb-name mylb --name HTTPruleContoso --protocol tcp --probe-name http--frontend-port 5000 --backend-port 5000 --frontend-ip-name contosofe --backend-address-pool-name contosopool
    az network lb rule create --resource-group contosofabrikam --lb-name mylb --name HTTPruleFabrikam --protocol tcp --probe-name http --frontend-port 5000 --backend-port 5000 --frontend-ip-name fabrikamfe --backend-address-pool-name fabrikampool
    
  9. 运行以下命令,检查输入以验证是否正确创建了负载均衡器

    az network lb show --resource-group contosofabrikam --name mylb
    
  10. 为第一个虚拟机 VM1 创建公共 IPmyPublicIp存储帐户mystorageaccont1,如下所示:

    az network public-ip create --resource-group contosofabrikam --location chinanorth3 --name myPublicIP --domain-name-label mypublicdns345 --allocation-method Dynamic
    
    az storage account create --location chinanorth3 --resource-group contosofabrikam --kind Storage --sku-name GRS mystorageaccount1
    
  11. 为 VM1 创建网络接口,添加另一个 IP 配置 VM1-ipconfig2,并创建 VM,如下所示:

    az network nic create --resource-group contosofabrikam --location chinanorth3 --subnet-vnet-name myVnet --subnet-name mySubnet --name VM1Nic1 --ip-config-name NIC1-ipconfig1
    az network nic create --resource-group contosofabrikam --location chinanorth3 --subnet-vnet-name myVnet --subnet-name mySubnet --name VM1Nic2 --ip-config-name VM1-ipconfig1 --public-ip-name myPublicIP --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/contosopool"
    az network nic ip-config create --resource-group contosofabrikam --nic-name VM1Nic2 --name VM1-ipconfig2 --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/fabrikampool"
    az vm create --resource-group contosofabrikam --name VM1 --location chinanorth3 --os-type linux --nic-names VM1Nic1,VM1Nic2  --vnet-name VNet1 --vnet-subnet-name Subnet1 --availability-set myAvailabilitySet --vm-size Standard_DS3_v2 --storage-account-name mystorageaccount1 --image-urn canonical:UbuntuServer:16.04.0-LTS:latest --admin-username <your username>  --admin-password <your password>
    
  12. 为第二个虚拟机重复步骤 10-11:

    az network public-ip create --resource-group contosofabrikam --location chinanorth3 --name myPublicIP2 --domain-name-label mypublicdns785 --allocation-method Dynamic
    az storage account create --location chinanorth3 --resource-group contosofabrikam --kind Storage --sku-name GRS mystorageaccount2
    az network nic create --resource-group contosofabrikam --location chinanorth3 --subnet-vnet-name myVnet --subnet-name mySubnet --name VM2Nic1
    az network nic create --resource-group contosofabrikam --location chinanorth3 --subnet-vnet-name myVnet --subnet-name mySubnet --name VM2Nic2 --ip-config-name VM2-ipconfig1 --public-ip-name myPublicIP2 --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/contosopool"
    az network nic ip-config create --resource-group contosofabrikam --nic-name VM2Nic2 --name VM2-ipconfig2 --lb-address-pool-ids "/subscriptions/<your subscription ID>/resourceGroups/contosofabrikam/providers/Microsoft.Network/loadBalancers/mylb/backendAddressPools/fabrikampool"
    az vm create --resource-group contosofabrikam --name VM2 --location chinanorth3 --os-type linux --nic-names VM2Nic1,VM2Nic2 --vnet-name VNet1 --vnet-subnet-name Subnet1 --availability-set myAvailabilitySet --vm-size Standard_DS3_v2 --storage-account-name mystorageaccount2 --image-urn canonical:UbuntuServer:16.04.0-LTS:latest --admin-username <your username>  --admin-password <your password>
    
  13. 最后,必须将 DNS 资源记录配置为指向各自的负载均衡器的前端 IP 地址。 可以在 Azure DNS 中托管域。 有关将 Azure DNS 与负载均衡器配合使用的详细信息,请参阅 将 Azure DNS 与其他 Azure 服务配合使用

对多个 IP 配置进行负载均衡

Nota

建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

使用以下步骤创建一个负载均衡器,该负载均衡器可以使用 Azure PowerShell 在单个虚拟机(VM)上平衡多个 IP 配置的流量。 此示例使用两个 VM,但可以对任意数量的 VM 使用相同的进程。

  1. 安装 Azure PowerShell。 有关安装最新版本的 Azure PowerShell、选择订阅和登录帐户的信息,请参阅 如何安装和配置 Azure PowerShell

  2. 使用以下设置创建资源组:

    $location = "chinanorth3".
    $myResourceGroup = "contosofabrikam"
    
  3. 创建一个可用性集以包含您的 VM。 对于此场景,请使用以下命令:

    New-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" -Location "China North 3"
    
  4. 请遵循说明中的步骤 3 到 5,准备创建具有单个网络接口卡的虚拟机。 执行步骤 6.1,使用以下命令而不是步骤 6.2:

    $availset = Get-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset"
    New-AzVMConfig -VMName "VM1" -VMSize "Standard_DS1_v2" -AvailabilitySetId $availset.Id
    

    然后完成创建 Windows VM 的步骤 6.3 至 6.8。

  5. 向每个 VM 中添加另一个 IP 配置。 按照将多个 IP 地址分配给虚拟机文章中的说明执行操作。 请使用以下配置设置:

    $NicName = "VM1-NIC2"
    $RgName = "contosofabrikam"
    $NicLocation = "China North 3"
    $IPConfigName4 = "VM1-ipconfig2"
    $Subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $myVnet
    

    在本教程中,你不需要将辅助 IP 配置与公共 IP 相关联。 请编辑此命令以删除公共 IP 关联部分。

  6. 再次完成 VM2 的步骤 4 到 6。 在代码示例中,请务必将 VM 名称替换为 VM2。 你不需要为第二个 VM 创建虚拟网络。 你可以根据自己的用例创建新子网。

  7. 创建两个公共 IP 地址并将它们存储在相应的变量中,如下所示:

    $publicIP1 = New-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam -Location 'China North 3' -AllocationMethod Dynamic -DomainNameLabel contoso
    $publicIP2 = New-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam -Location 'China North 3' -AllocationMethod Dynamic -DomainNameLabel fabrikam
    
    $publicIP1 = Get-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam
    $publicIP2 = Get-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam
    
  8. 创建两个前端 IP 配置:

    $frontendIP1 = New-AzLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1
    $frontendIP2 = New-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
    
  9. 创建后端地址池、探测程序和负载均衡规则:

    $beaddresspool1 = New-AzLoadBalancerBackendAddressPoolConfig -Name contosopool
    $beaddresspool2 = New-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool
    
    $healthProbe = New-AzLoadBalancerProbeConfig -Name HTTP -RequestPath 'index.html' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
    
    $lbrule1 = New-AzLoadBalancerRuleConfig -Name HTTPc -FrontendIpConfiguration $frontendIP1 -BackendAddressPool $beaddresspool1 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    $lbrule2 = New-AzLoadBalancerRuleConfig -Name HTTPf -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    
  10. 一旦创建这些资源后,即可创建负载均衡器:

    $mylb = New-AzLoadBalancer -ResourceGroupName contosofabrikam -Name mylb -Location 'China North 3' -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
    
  11. 将第二个后端地址池和前端 IP 配置添加到新创建的负载均衡器:

    $mylb = Get-AzLoadBalancer -Name "mylb" -ResourceGroupName $myResourceGroup | Add-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool | Set-AzLoadBalancer
    
    $mylb | Add-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2 | Set-AzLoadBalancer
    
    Add-AzLoadBalancerRuleConfig -Name HTTP -LoadBalancer $mylb -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 | Set-AzLoadBalancer
    
  12. 以下命令获取 NIC,然后将每个辅助 NIC 的两个 IP 配置添加到负载均衡器的后端地址池:

    $nic1 = Get-AzNetworkInterface -Name "VM1-NIC2" -ResourceGroupName "MyResourcegroup";
    $nic2 = Get-AzNetworkInterface -Name "VM2-NIC2" -ResourceGroupName "MyResourcegroup";
    
    $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]);
    $nic1.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]);
    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]);
    $nic2.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]);
    
    $mylb = $mylb | Set-AzLoadBalancer
    
    $nic1 | Set-AzNetworkInterface
    $nic2 | Set-AzNetworkInterface
    
  13. 最后,必须将 DNS 资源记录配置为指向各自的负载均衡器的前端 IP 地址。 可以在 Azure DNS 中托管域。 有关将 Azure DNS 与负载均衡器配合使用的详细信息,请参阅将 Azure DNS 与其他 Azure 服务配合使用

后续步骤

请继续学习下一篇文章,了解如何创建跨区域负载均衡器: