你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用跨订阅后端创建全局负载均衡器

在本文中,你将学习如何使用跨订阅后端创建全局负载均衡器。

跨订阅负载均衡器可以引用驻留在负载均衡器以外的其他订阅中的虚拟网络。 此功能允许在一个订阅中部署负载均衡器,并在另一个订阅中引用虚拟网络。

先决条件

  • 两个 Azure 订阅。
  • 具有有效订阅的 Azure 帐户。 免费创建帐户
  • 部署在 Azure 订阅 A 中的全局公共 IP 地址,位于全局负载均衡器主区域
  • 部署在 Azure 订阅 A 中的区域负载均衡器。
  • Azure PowerShell(本地安装)或 Azure Cloud Shell。

如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az 查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount 以创建与 Azure 的连接。

重要

所有代码示例都将使用示例名称和占位符。 请务必将这些值替换为你的环境中的值。 需替换的值括在尖括号中,如下所示:<example value>

登录 Azure

你将在 Azure PowerShell 中使用 Connect-AzAccount 登录到 Azure,然后使用 Set-AzContext 将订阅上下文更改为 Azure 订阅 A。然后使用 Get-AzLoadBalancerGet-AzLoadBalancerFrontendIpConfig 获取区域负载均衡器信息。 需要环境中的 Azure 订阅 ID、资源组名称和虚拟网络名称。


# Sign in to Azure
Connect-AzAccount

# Set the subscription context to Azure Subscription A
Set-AzContext -Subscription '<Subscription ID of Subscription A>'     

# Get the Virtual Network information with Get-AzVirtualNetwork
$rlb= @{
    Name = 'load-balancer-regional'
    ResourceGroupName = 'resource-group-a'
}
$rlbinfo = Get-AzLoadBalancer @rlb
$rlbfe = Get-AzLoadBalancerFrontendIpConfig @rlbinfo

创建资源组

在本部分中,你将在 Azure 订阅 B 中创建一个资源组。此资源组用于与负载均衡器关联的所有资源。

你将在 Azure PowerShell 中使用 Set-AzContext 切换订阅上下文,并使用 New-AzResourceGroup 创建资源组。


# Set the subscription context to Azure Subscription B
Set-AzContext -Subscription '<Azure Subscription B>'  

# Create a resource group  
$rg = @{
    Name = 'resource-group-b'
    Location = 'eastus2'
}
New-AzResourceGroup @rg

注意

为负载均衡器创建资源组时,请使用与 Azure 订阅 A 中的虚拟网络相同的 Azure 区域

创建全局负载均衡器

在本部分,你将创建全局负载均衡器所需的资源。 全局标准 SKU 公共 IP 用于全局负载均衡器的前端。

使用 Azure PowerShell,你可以:

# Create global IP address for load balancer
$ip = @{
    Name = 'public-IP-global'
    ResourceGroupName = 'resource-group-b'
    Location = 'eastus2'
    Sku = 'Standard'
    Tier = 'Global'
    AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip

# Create frontend configuration
$fe = @{
    Name = 'front-end-config-global'
    PublicIpAddress = $publicIP
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe

# Create backend address pool
$be = @{
    Name = 'backend-pool-global'
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @be

# Create the load balancer rule
$rul = @{
    Name = 'HTTP-rule-global'
    Protocol = 'tcp'
    FrontendPort = '80'
    BackendPort = '80'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bepool
}
$rule = New-AzLoadBalancerRuleConfig @rul

# Create global load balancer resource
$lbp = @{
    ResourceGroupName = 'resource-group-b'
    Name = 'load-balancer-global'
    Location = ‘eastus2’
    Sku = 'Standard'
    Tier = 'Global'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bepool
    LoadBalancingRule = $rule
}
$lb = New-AzLoadBalancer @lbp

将负载均衡器前端添加到全局负载均衡器

在本部分中,你将把前端 IP 配置添加到全局负载均衡器。

使用 Azure PowerShell,你可以:


## Create the global backend address pool configuration for region 2 ##
$rlbbaf = @{
    Name = 'backend-pool-config-regional'
    LoadBalancerFrontendIPConfigurationId = $rlbfe.Id
}
$beaddressconfigRLB = New-AzLoadBalancerBackendAddressConfig @region2ap

## Apply the backend address pool configuration for the global load balancer ##
$bepoolcr = @{
    ResourceGroupName = 'resource-group-b'
    LoadBalancerName = 'load-balancer-global'
    Name = 'backend-pool-global'
    LoadBalancerBackendAddress = $beaddressconfigRLB
}
Set-AzLoadBalancerBackendAddressPool @bepoolcr