Azure负载均衡器配置Private Link Service创建后端池报错
问题根因
你部署时触发的PrivateLinkServiceIsNotSupportedForIPBasedLoadBalancer报错,核心原因是Azure Private Link Service(PLS)不支持对接基于IP地址配置后端实例的负载均衡器。
Azure标准负载均衡的后端池有两种配置模式:
- 基于网卡(NIC)关联的模式:直接将虚拟机/虚拟机规模集的网卡对象绑定到后端池,是PLS支持的兼容模式
- 基于IP地址的模式:通过
虚拟网络ID + 静态/动态IP地址的方式向后端池添加实例,不需要直接关联网卡对象,也就是你当前代码使用的模式,该模式目前不支持和PLS关联。
你去掉后端池配置时可以正常创建PLS和负载均衡器,是因为空后端池不会触发IP模式负载均衡的校验规则,所以不会报错。
修复方法
删除现有代码中通过IP地址添加后端实例的逻辑,改为将虚拟机网卡直接关联到负载均衡后端池即可:
- 移除代码中两个
azurerm_lb_backend_address_pool_address资源块(对应vm1和appvm2_address的配置) - 在两台业务虚拟机对应的网络接口资源配置中,于
ip_configuration块内增加后端池关联参数,直接绑定到目标后端池,参考配置如下:
# 虚拟机网卡关联负载均衡后端池示例 resource "azurerm_network_interface" "devvm1_interface1" { name = "devvm1-nic-1" location = local.location resource_group_name = local.resource_group ip_configuration { name = "ipconfig1" subnet_id = azurerm_subnet.vm_subnet.id # 替换为你实际的业务虚机子网ID private_ip_address_allocation = "Dynamic" # 直接在此处关联负载均衡后端池,不要单独通过IP地址添加后端成员 load_balancer_backend_address_pools_ids = [azurerm_lb_backend_address_pool.PoolA.id] } }
第二台虚拟机的网卡做相同修改即可,你现有的负载均衡健康探测、转发规则、NAT规则、PLS和私有端点的配置都不需要调整,修改后重新执行部署即可成功创建资源。
补充校验点:你当前使用的Standard SKU区域级负载均衡、子网开启PLS/私有端点网络策略的配置均符合PLS部署要求,无需修改。
内容的提问来源于stack exchange,提问作者Bala K
相关产品推荐
相关产品推荐

