將跨訂用帳戶後端連結至 Azure Load Balancer
在本文中,您將了解如何建立跨訂用帳戶後端集區,並將跨訂用帳戶網路介面連結至負載平衡器的後端集區,以將跨訂用帳戶後端後端連結至 Azure Load Balancer。
跨訂用帳戶負載平衡器可以參考位於負載平衡器以外不同訂用帳戶中的虛擬網路。 此功能可讓您在一個訂用帳戶中部署負載平衡器,並參考另一個訂用帳戶中的虛擬網路。
必要條件
- 兩個 Azure 訂用帳戶。
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
- 現有的虛擬網路。 部署在其中一個訂用帳戶中。 在此範例中,虛擬網路位於 Azure 訂用帳戶 A 中。
- 已在本地安裝 Azure PowerShell 或 Azure Cloud Shell。
如果您選擇在本機安裝和使用 PowerShell,本文會要求使用 Azure PowerShell 模組版本 5.4.1 或更新版本。 執行 Get-Module -ListAvailable Az
以尋找安裝的版本。 如果您需要升級,請參閱安裝 Azure PowerShell 模組。 如果正在本機執行 PowerShell,也需要執行 Connect-AzAccount
,以建立與 Azure 的連線。
重要
所有程式碼範例都會使用範例名稱和預留位置。 請務必以您環境中的值取代這些值。
需要取代的值會以角括弧括住,如下所示:<example value>
。
登入 Azure
使用 Azure PowerShell,您可以使用 Connect-AzAccount
登入 Azure,並將包含 Set-AzContext
的訂用帳戶內容變更為 Azure 訂用帳戶 A。接著使用 Get-AzVirtualNetwork
取得虛擬網路資訊。 您需要來自環境的 Azure 訂用帳戶識別碼、資源群組名稱和虛擬網路名稱。
# Sign in to Azure
Connect-AzAccount
# Set the subscription context to Azure Subscription A
Set-AzContext -Subscription '<Azure Subscription A>'
# Get the Virtual Network information with Get-AzVirtualNetwork
$net = @{
Name = '<vnet name>'
ResourceGroupName = '<Resource Group Subscription A>'
}
$vnet = Get-AzVirtualNetwork @net
建立資源群組
在本節中,您會在 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 = 'myResourceGroupLB'
Location = 'westus'
}
New-AzResourceGroup @rg
注意
為負載平衡器建立資源群組時,請使用與 Azure 訂用帳戶 A 中虛擬網路相同的 Azure 區域。
建立負載平衡器
在本節中,您會在 Azure 訂用帳戶 B 中建立負載平衡器。建立具有前端 IP 位址的負載平衡器。
使用 Azure PowerShell,您將:
- 具有
New-AzLoadBalancer
負載平衡器 - 使用
New-AzPublicIpAddress
建立公用 IP 位址 - 使用
Add-AzLoadBalancerFrontendIpConfig
新增前端 IP 設定 - 使用
New-AzLoadBalancerBackendAddressPool
建立後端位址集區。
# Create a load balancer
$loadbalancer = @{
ResourceGroupName = 'resource group B'
Name = 'LB Name'
Location = 'eastus'
Sku = 'Standard'
}
$LB = New-AzLoadBalancer @loadbalancer
$LBinfo = @{
ResourceGroupName = 'resource group B'
Name = 'my-lb'
}
# Create a public IP address
$publicip = @{
Name = 'IP Address Name'
ResourceGroupName = 'resource group B'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
# Place public IP created in previous steps into variable
$pip = @{
Name = 'IP Address Name'
ResourceGroupName = 'resource group B'
}
$publicIp = Get-AzPublicIpAddress @pip
## Create load balancer frontend configuration and place in variable
$fip = @{
Name = 'Frontend Name'
PublicIpAddress = $publicip
}
$LB = $LB | Add-AzLoadBalancerFrontendIpConfig @fip
$LB = $LB | Set-AzLoadBalancer
# Create backend address pool configuration and place in variable. ##
$be = @{
ResourceGroupName= "resource group B"
Name= "myBackEndPool"
LoadBalancerName= "LB Name"
VirtualNetwork=$vnet.id
SyncMode= "Automatic"
}
#Create the backend pool
$backend = New-AzLoadBalancerBackendAddressPool @be
$LB = Get-AzLoadBalancer @LBinfo
建立健全狀態探查和負載平衡器規則
建立健全狀態探查來判斷後端 VM 執行個體的健康情況,並建立負載平衡器規則來定義連入流量的前端 IP 設定、接收流量的後端 IP 集區,以及所需的來源和目的地連接埠。
使用 Azure PowerShell 時,使用 Add-AzLoadBalancerProbeConfig
建立健全狀態探查,以判斷後端 VM 執行個體的健康情況。 然後使用 Add-AzLoadBalancerRuleConfig
建立負載平衡器規則,定義連入流量的前端 IP 設定、接收流量的後端 IP 集區,以及所需的來源和目的地連接埠。
## Create the health probe and place in variable. ##
$probe = @{
Name = 'myHealthProbe2'
Protocol = 'tcp'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
}
## Create the load balancer rule and place in variable. ##
$lbrule = @{
Name = 'myHTTPRule2'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
IdleTimeoutInMinutes = '15'
FrontendIpConfiguration = $LB.FrontendIpConfigurations[0]
BackendAddressPool = $backend
}
## Set the load balancer resource. ##
$LB | Add-AzLoadBalancerProbeConfig @probe
$LB | Add-AzLoadBalancerRuleConfig @lbrule
$LB | Set-AzLoadBalancer
將網路介面卡掛接至負載平衡器
在本節中,您會將 Azure 訂用帳戶 A 中的網路介面卡 (NIC) 連結至 Azure 訂用帳戶 B 中的負載平衡器。您可以使用 New-AzNetworkInterface
建立網路介面,然後使用 New-AzNetworkInterfaceIpConfig
建立網路介面卡的 IP 組態。
注意
網路介面卡 (NIC) 必須位於與負載平衡器後端集區相同的 VNet 中。
# Set the subscription context to **Azure Subscription A**
Set-AzContext -Subscription 'Sub A'
# Create a network interface card
$IP1 = @{
Name = 'MyIpConfig'
subnetID= $vnet.subnets[0].Id
PrivateIpAddressVersion = 'IPv4'
-LoadBalancerBackendAddressPool $lb-be-info
}
$IP1Config = New-AzNetworkInterfaceIpConfig @IP1 -Primary
$nic = @{
Name = 'MyNic'
ResourceGroupName = '<Resoure Group Subscription A>'
Location = 'eastus'
IpConfiguration = $IP1Config
}
New-AzNetworkInterface @nic
清除資源
當不再需要時,您可以使用 Remove-AzResourceGroup 命令來移除與負載平衡器一起建立的資源群組和其餘資源。
Remove-AzResourceGroup -Name 'myResourceGroupLB'