首页 > 解决方案 > PS:从 LB 池中删除 Azure NIC

问题描述

我正在尝试从 PowerShell 中的 NIC Ipconfig 中删除 Azure 负载均衡器后端池设置,但在不破坏整个 Ipconfig 的情况下无法成功。要么它删除整个配置,如

Remove-AzNetworkInterfaceIpConfig -NetworkInterface $NIC

或者当我在命名其他属性时尝试设置 Ipconfig 时,LB 池配置仍然存在

Set-AzNetworkInterfaceIpConfig -NetworkInterface $NIC -Name "ipconfig1" -PrivateIpAddress $DIP -Subnet $backendSubnet -PublicIpAddress $PIP -ApplicationSecurityGroup$NSG

如何仅删除 LB 后端池并保留其他属性?谢谢

标签: azureazure-powershellazure-load-balancer

解决方案


如果您只想删除或添加特定的 NIC,您可以使用这个。只需传递所需的变量和操作名称“删除”或“添加”。它仅从后端负载均衡器池中删除 NIC,但不会破坏整个后端池配置。

$ResourceGroup = "YourResourceGroupName"
$Loadbalancer = "YourLoadBalancerName"
$NICName = "YourVirtualMachineNetworkInterfaceName"
$Action = "remove" #add

if ($Action -eq 'add')
{
    Write-Host ("Adding to LB")

    $nic = Get-AzNetworkInterface | Where-Object { ($_.ResourceGroupName -eq "$ResourceGroup") -and ($_.Name -eq "$NICName") }
    $lb = Get-AzLoadBalancer | Where-Object { ($_.ResourceGroupName -eq "$ResourceGroup") -and ($_.Name -eq "$Loadbalancer") }
    $nic.IpConfigurations[0].LoadBalancerBackendAddressPools = $lb.BackendAddressPools[0]
    Set-AzNetworkInterface -NetworkInterface $nic
}
if ($Action -eq 'remove')
{
    Write-Host ("Removing from LB")

    $nic = Get-AzNetworkInterface | Where-Object { ($_.ResourceGroupName -eq "$ResourceGroup") -and ($_.Name -eq "$NICName") }
    $nic.Ipconfigurations[0].LoadBalancerBackendAddressPools = $null
    Set-AzNetworkInterface -NetworkInterface $nic
}

推荐阅读