後端集區是負載平衡器的重要元件。 後端集區會定義針對特定負載平衡規則提供流量服務的資源群組。
設定後端集區有兩種方式:
網路介面卡 (NIC)
IP 位址
若要使用包含虛擬機器和虛擬機器擴展集的 IP 位址範圍來預先配置後端集區,請使用 IP 位址和虛擬網路 ID 來設定該集區。 以 IP 為基礎的後端集區需要標準負載平衡器。
本文聚焦於基於 IP 的後端池的配置。
依 IP 位址與虛擬網路設定後端集區
在具有預先填入後端集區的情境下,請使用 IP 位址和虛擬網路。
開始之前,請確定您有︰
- 現有的標準負載平衡器與虛擬網路。
- 資源後端與負載平衡器在同一虛擬網路中。
- 授權建立或更新負載平衡器、網路介面及虛擬機器資源。
- 一個認證過的 Azure PowerShell 或 Azure CLI 會話,適用於你所使用的工具。
您可以在後端集區物件上設定後端集區管理,如下列範例所示。
PowerShell
建立新的後端集區:
$be = @{
ResourceGroupName = 'myResourceGroup'
LoadBalancerName = 'myLoadBalancer'
Name = 'myBackendPool'
}
$backendPool = New-AzLoadBalancerBackendAddressPool @be
使用現有虛擬網路中的新 IP 更新後端集區:
$vnet = @{
Name = 'myVnet'
ResourceGroupName = 'myResourceGroup'
}
$virtualNetwork = Get-AzVirtualNetwork @vnet
$add1 = @{
IpAddress = '10.0.0.5'
Name = 'TestVNetRef'
VirtualNetworkId = $virtualNetwork.Id
}
$ip1 = New-AzLoadBalancerBackendAddressConfig @add1
$backendPool.LoadBalancerBackendAddresses.Add($ip1)
Set-AzLoadBalancerBackendAddressPool -InputObject $backendPool
擷取負載平衡器的後端集區資訊,以確認後端位址已新增至後端集區:
$pool = @{
ResourceGroupName = 'myResourceGroup'
LoadBalancerName = 'myLoadBalancer'
Name = 'myBackendPool'
}
Get-AzLoadBalancerBackendAddressPool @pool
建立網路介面並將其新增至後端集區。 將 IP 位址設定為其中一個後端位址:
$net = @{
Name = 'myNic'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus'
PrivateIpAddress = '10.0.0.5'
Subnet = $virtualNetwork.Subnets[0]
}
$nic = New-AzNetworkInterface @net
建立 VM,並將具有後端集區 IP 位址的 NIC 附加至該 VM:
# Create a username and password for the virtual machine
$cred = Get-Credential
# Create a virtual machine configuration
$net = @{
Name = 'myNic'
ResourceGroupName = 'myResourceGroup'
}
$nic = Get-AzNetworkInterface @net
$vmc = @{
VMName = 'myVM1'
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = 'myVM1'
Credential = $cred
}
$vmi = @{
PublisherName = 'MicrosoftWindowsServer'
Offer = 'WindowsServer'
Skus = '2019-Datacenter'
Version = 'latest'
}
$vmConfig =
New-AzVMConfig @vmc | Set-AzVMOperatingSystem -Windows @vmos | Set-AzVMSourceImage @vmi | Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine using the configuration
$vm = @{
ResourceGroupName = 'myResourceGroup'
Zone = '1'
Location = 'eastus'
VM = $vmConfig
}
$vm1 = New-AzVM @vm
CLI
透過使用 Azure CLI,你可以透過命令列參數或 JSON 設定檔來填充基於 IP 的後端池。
使用 Azure CLI 建立以 IP 為基礎的後端集區
透過命令列參數建立並填入後端集區:
az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address name=addr1 ip-address=10.0.0.4 \
--backend-address name=addr2 ip-address=10.0.0.5
透過 JSON 組態檔建立並填入後端集區:
az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address-config-file @config_file.json
JSON 組態檔:
[
{
"name": "address1",
"virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
"ipAddress": "10.0.0.4"
},
{
"name": "address2",
"virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
"ipAddress": "10.0.0.5"
}
]
使用 Azure CLI 驗證後端位址
擷取負載平衡器的後端集區資訊,以確認後端位址已新增至後端集區:
az network lb address-pool show \
--resource-group myResourceGroup \
--lb-name MyLb \
--name MyBackendPool
使用 Azure CLI 建立網路介面
建立網路介面並將其新增至後端集區。 將 IP 位址設定為其中一個後端位址:
az network nic create \
--resource-group myResourceGroup \
--name myNic \
--vnet-name myVnet \
--subnet mySubnet \
--network-security-group myNetworkSecurityGroup \
--lb-name myLB \
--private-ip-address 10.0.0.4
使用 Azure CLI 建立虛擬機器
建立 VM,並將具有後端集區 IP 位址的 NIC 附加至該 VM:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--nics myNic \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
以 IP 為基礎的後端集區限制
- 你只能使用基於 IP 的後端池搭配標準負載平衡器。
- 後端資源必須與負載平衡器處於同一虛擬網路中。
- 基於 IP 的後端池中的後端實例必須是虛擬機或虛擬機縮放集。 你無法附加其他 PaaS 服務。
- 具有以 IP 為基礎的後端集區的負載平衡器無法作為 Private Link 服務使用。
- 你無法將 私有端點資源 放在基於 IP 的後端池中。
- 基於 IP 的後端池不支援 ACI 容器。
- 負載平衡器或像是應用閘道這類服務無法被放在負載平衡器的後端池中。
- 入站 NAT 規則無法用 IP 位址來指定。
- 你可以同時設定基於 IP 和 NIC 的後端池,針對同一負載平衡器。 您無法建立單一後端集區,在該集區中混合使用以 NIC 和 IP 位址為目標的後端位址。
- 位於與內部負載平衡器相同虛擬網路中的虛擬機器,無法同時存取 ILB 的前端與其後端 VM。
- 網際網路路由偏好 IP 目前不支援搭配以 IP 為基礎的後端集區使用。 如果你在基於 IP 的後端池中使用網際網路路由偏好 IP,這些 IP 會被計費並路由到預設的 Microsoft 全球網路。
- 不支援對已附加至 IP 型後端集區的 VNET 執行移動相關作業。
- 如果後端集區不斷變更 (因為後端資源持續新增或移除)。 這可能導致後端資源向來源發送重置訊號。 作為因應措施,您可以使用重試。
Important
基於 IP 的後端池仍需使用 Standard Load Balancer。 其預設的出站行為類似 Basic Load Balancer,因為預設出站存取已被啟用。 這句話並不代表 Basic Load Balancer 支援基於 IP 的後端池。 若要採用預設安全的組態,並支援對傳出需求較高的應用程式,請以 NIC 設定後端集區。
後續步驟
在本文中,您已了解 Azure Load Balancer 後端集區管理,以及如何依 IP 位址與虛擬網路設定後端集區。
深入了解 Azure Load Balancer。
檢視 REST API 來管理基於 IP 的後端池。