教程:使用 Azure PowerShell 创建网关负载均衡器
Azure 负载均衡器包括标准、基本和网关 SKU。 网关负载均衡器用于以透明方式插入网络虚拟设备 (NVA)。 对于需要实现 NVA 高性能和高度可伸缩性的方案,可以使用网关负载均衡器。
在本教程中,你将了解如何执行以下操作:
- 创建虚拟网络。
- 创建网络安全组。
- 创建网关负载均衡器。
- 将负载均衡器前端链接到网关负载均衡器。
先决条件
- 具有有效订阅的 Azure 帐户。创建试用订阅。
- 一个现有的公共标准 SKU Azure 负载均衡器。 有关创建负载均衡器的详细信息,请参阅使用 Azure PowerShell 创建公共负载均衡器。
- 对于本教程,示例中现有的负载均衡器名为 myLoadBalancer。
- 在本地安装了 Azure PowerShell。
如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az
查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount -Environment AzureChinaCloud
以创建与 Azure 的连接。
创建资源组
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 New-AzResourceGroup 创建资源组:
New-AzResourceGroup -Name 'TutorGwLB-rg' -Location 'chinanorth2'
创建虚拟网络
网关负载均衡器后端池中的资源需要一个虚拟网络。 使用 New-AzVirtualNetwork 创建虚拟网络。 使用 New-AzBastion 部署堡垒主机,以便安全管理虚拟网络中的资源。
## Create backend subnet config ##
$subnet = @{
Name = 'myBackendSubnet'
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create Azure Bastion subnet. ##
$bastsubnet = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.1.1.0/24'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
## Create the virtual network ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'chinanorth2'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$ip = @{
Name = 'myBastionIP'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'chinanorth2'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myBastion'
PublicIpAddress = $publicip
VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob
创建 NSG
使用以下示例创建网络安全组。 你将在前面创建的虚拟网络中配置网络流量所需的 NSG 规则。
使用 New-AzNetworkSecurityRuleConfig 为 NSG 创建规则。 使用 New-AzNetworkSecurityGroup 创建 NSG。
## Create rule for network security group and place in variable. ##
$nsgrule1 = @{
Name = 'myNSGRule-AllowAll'
Description = 'Allow all'
Protocol = '*'
SourcePortRange = '*'
DestinationPortRange = '*'
SourceAddressPrefix = '0.0.0.0/0'
DestinationAddressPrefix = '0.0.0.0/0'
Access = 'Allow'
Priority = '100'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule1
$nsgrule2 = @{
Name = 'myNSGRule-AllowAll-TCP-Out'
Description = 'Allow all TCP Out'
Protocol = 'TCP'
SourcePortRange = '*'
DestinationPortRange = '*'
SourceAddressPrefix = '0.0.0.0/0'
DestinationAddressPrefix = '0.0.0.0/0'
Access = 'Allow'
Priority = '100'
Direction = 'Outbound'
}
$rule2 = New-AzNetworkSecurityRuleConfig @nsgrule2
## Create network security group ##
$nsg = @{
Name = 'myNSG'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'chinanorth2'
SecurityRules = $rule1,$rule2
}
New-AzNetworkSecurityGroup @nsg
创建网关负载均衡器
在本部分,你将创建配置并部署网关负载均衡器。 使用 New-AzLoadBalancerFrontendIpConfig 创建负载均衡器的前端 IP 配置。
你将使用 New-AzLoadBalancerTunnelInterface 为负载均衡器创建两个隧道接口。
使用 New-AzLoadBalancerBackendAddressPoolConfig 为 NVA 创建后端池。
需要使用运行状况探测来监视负载均衡器中后端实例的运行状况。 使用 New-AzLoadBalancerProbeConfig 创建运行状况探测。
发往后端实例的流量将通过负载均衡规则进行路由。 使用 New-AzLoadBalancerRuleConfig 创建负载均衡规则。
若要创建负载均衡器,请使用 New-AzLoadBalancer。
## Place virtual network configuration in a variable for later use. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'TutorGwLB-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Create load balancer frontend configuration and place in variable. ##
$fe = @{
Name = 'myFrontend'
SubnetId = $vnet.subnets[0].id
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe
## Create backend address pool configuration and place in variable. ##
$int1 = @{
Type = 'Internal'
Protocol = 'Vxlan'
Identifier = '800'
Port = '10800'
}
$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int1
$int2 = @{
Type = 'External'
Protocol = 'Vxlan'
Identifier = '801'
Port = '10801'
}
$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int2
$pool = @{
Name = 'myBackendPool'
TunnelInterface = $tunnelInterface1,$tunnelInterface2
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @pool
## Create the health probe and place in variable. ##
$probe = @{
Name = 'myHealthProbe'
Protocol = 'http'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe
## Create the load balancer rule and place in variable. ##
$para = @{
Name = 'myLBRule'
Protocol = 'All'
FrontendPort = '0'
BackendPort = '0'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
Probe = $healthprobe
}
$rule = New-AzLoadBalancerRuleConfig @para
## Create the load balancer resource. ##
$lb = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myLoadBalancer-gw'
Location = 'chinanorth2'
Sku = 'Gateway'
LoadBalancingRule = $rule
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
Probe = $healthprobe
}
New-AzLoadBalancer @lb
将网络虚拟设备添加到网关负载均衡器后端池
通过 Azure 市场部署 NVA。 部署后,使用 Add-AzVMNetworkInterface 将虚拟机添加到后端池
清理资源
如果不再需要资源组、负载均衡器和剩余资源,可以使用 Remove-AzResourceGroup 命令将其删除。
Remove-AzResourceGroup -Name 'TutorGwLB-rg'
后续步骤
在 Azure 中创建网络虚拟设备。
创建 NVA 时,请选择本教程中创建的资源:
虚拟网络
子网
网络安全组
网关负载均衡器
请继续学习下一篇文章,了解如何创建跨区域 Azure 负载均衡器。