开始使用 Azure 经典 CLI 创建面向 Internet 的负载均衡器(经典)
Azure load balancer 是位于第 4 层 (TCP, UDP) 的负载均衡器。 该负载均衡器可以在云服务或负载均衡器集的虚拟机中运行状况良好的服务实例之间分配传入流量,从而提供高可用性。 Azure Load Balancer 还可以在多个端口和/或多个 IP 地址上显示这些服务。
可以将负载均衡器配置为用于:
- 对传入到虚拟机 (VM) 的 Internet 流量进行平衡负载。 我们将此方案中的负载均衡器作为一个面向 Internet 的负载均衡器。
- 对虚拟网络 (VNet) 和云服务中 VM 之间的流量或本地计算机和跨界虚拟网络中 VM 之间的流量进行平衡负载。 我们将此方案中的负载均衡器作为一个内部负载均衡器 (ILB)。
- 将外部流量转发到特定的 VM 实例。
重要
在使用 Azure 资源之前,请务必了解 Azure 当前使用两种部署模型:Azure 资源管理器部署模型和经典部署模型。 在使用任何 Azure 资源之前,请确保了解 部署模型和工具 。 可以通过单击本文顶部的选项卡来查看不同工具的文档。 本文介绍经典部署模型。 还可以了解如何使用 Azure 资源管理器创建面向 Internet 的负载均衡器。
重要
本文包含需要 Azure 经典 CLI 的内容。 这是 Azure CLI 的旧版本,只能与 Azure 经典部署模型一起使用。
若要安装经典 CLI,请参阅安装 Azure 经典 CLI;若要安装最新 Azure CLI 以进行 Azure 资源管理器部署,请参阅安装 Azure CLI。
将在此方案中完成以下任务:
- 创建在端口 80 上接收网络流量的负载均衡器,并将负载均衡流量发送到虚拟机“web1”和“web2”
- 在负载均衡器后面创建虚拟机的远程桌面访问/SSH 的 NAT 规则
- 创建运行状况探测
使用 CLI 创建面向 Internet 的负载均衡器
本指南演示如何基于上述方案创建 Internet 负载均衡器。
如果从未使用过 Azure 经典 CLI,请参阅安装和配置 Azure 经典 CLI,并按照说明操作,直到选择 Azure 帐户和订阅这一步。
运行 azure config mode 命令以切换到经典模式,如下所示。
azure config mode asm
预期输出:
info: New mode is asm
创建终结点和负载均衡器集
此方案假定已创建虚拟机“web1”和“web2”。 本指南将使用端口 80 作为公用端口和本地端口创建负载均衡器集。 还会在端口 80 上配置探测端口,并将负载均衡器集命名为“lbset”。
步骤 1
使用 azure network vm endpoint create
为虚拟机“web1”创建第一个终结点和负载均衡器集。
azure vm endpoint create web1 80 --local-port 80 --protocol tcp --probe-port 80 --load-balanced-set-name lbset
步骤 2
将第二个虚拟机“web2”添加到负载均衡器集。
azure vm endpoint create web2 80 --local-port 80 --protocol tcp --probe-port 80 --load-balanced-set-name lbset
步骤 3
使用 azure vm show
验证负载均衡器配置。
azure vm show web1
输出将为:
data: DNSName "contoso.cloudapp.net"
data: Location "East US"
data: VMName "web1"
data: IPAddress "10.0.0.5"
data: InstanceStatus "ReadyRole"
data: InstanceSize "Standard_D1"
data: Image "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-2015
6-en.us-127GB.vhd"
data: OSDisk hostCaching "ReadWrite"
data: OSDisk name "joaoma-1-web1-0-201509251804250879"
data: OSDisk mediaLink "https://XXXXXXXXXXXXXXX.blob.core.windows.
/vhds/joaomatest-web1-2015-09-25.vhd"
data: OSDisk sourceImageName "a699494373c04fc0bc8f2bb1389d6106__Windows-Se
r-2012-R2-20150916-en.us-127GB.vhd"
data: OSDisk operatingSystem "Windows"
data: OSDisk iOType "Standard"
data: ReservedIPName ""
data: VirtualIPAddresses 0 address "XXXXXXXXXXXXXXXX"
data: VirtualIPAddresses 0 name "XXXXXXXXXXXXXXXXXXXX"
data: VirtualIPAddresses 0 isDnsProgrammed true
data: Network Endpoints 0 loadBalancedEndpointSetName "lbset"
data: Network Endpoints 0 localPort 80
data: Network Endpoints 0 name "tcp-80-80"
data: Network Endpoints 0 port 80
data: Network Endpoints 0 loadBalancerProbe port 80
data: Network Endpoints 0 loadBalancerProbe protocol "tcp"
data: Network Endpoints 0 loadBalancerProbe intervalInSeconds 15
data: Network Endpoints 0 loadBalancerProbe timeoutInSeconds 31
data: Network Endpoints 0 protocol "tcp"
data: Network Endpoints 0 virtualIPAddress "XXXXXXXXXXXX"
data: Network Endpoints 0 enableDirectServerReturn false
data: Network Endpoints 1 localPort 5986
data: Network Endpoints 1 name "PowerShell"
data: Network Endpoints 1 port 5986
data: Network Endpoints 1 protocol "tcp"
data: Network Endpoints 1 virtualIPAddress "XXXXXXXXXXXX"
data: Network Endpoints 1 enableDirectServerReturn false
data: Network Endpoints 2 localPort 3389
data: Network Endpoints 2 name "Remote Desktop"
data: Network Endpoints 2 port 58081
info: vm show command OK
为虚拟机创建远程桌面终结点
可以使用 azure vm endpoint create
创建远程桌面终结点,将网络流量从公共端口转发到特定虚拟机的本地端口。
azure vm endpoint create web1 54580 -k 3389
从负载均衡器中删除虚拟机
必须从虚拟机中删除关联到负载均衡器集的终结点。 删除终结点后,虚拟机不再属于该负载均衡器集。
使用上面的示例,可以使用命令 azure vm endpoint delete
从负载均衡器“lbset”中删除为虚拟机“web1”创建的终结点。
azure vm endpoint delete web1 tcp-80-80
注意
可以使用命令 azure vm endpoint --help
浏览管理终结点的更多选项