我正在尝试为 SQL Server VM 部署网络接口(interface)卡,该虚拟机将作为 AlwaysOn 可用性组的一部分放置,随后应添加到我的内部负载均衡器中。该卡将在虚拟机本身之前创建。
我的问题是,当创建 VM 并在部署过程中附加预先创建的 NIC 时,VM 的 Internet 访问似乎无法正常工作。
我尝试在门户中手动创建 NIC 并手动连接到虚拟机/负载均衡器,这似乎工作正常。
作为引用,我已将类似的模板部署到不同的虚拟机,该虚拟机不需要 NIC 成为后端地址池的一部分,并且部署没有问题。
除了对负载均衡器中后端地址池的resourceId 的引用之外,我是否需要添加更多属性才能使其正常工作?
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-05-01' existing = {
name: virtualNetworkName
scope: resourceGroup(virtualNetworkResourceGroup)
}
resource virtualMachineNetworkInterfaceCardSubnet 'Microsoft.Network/virtualNetworks/subnets@2022-05-01' existing = {
name: virtualNetworkSubnetName
parent: virtualNetwork
}
resource loadBalancer 'Microsoft.Network/loadBalancers@2022-05-01' existing = {
name: loadBalancerName
scope: resourceGroup(virtualNetworkResourceGroup)
}
resource loadBalancerBackendAddressPool 'Microsoft.Network/loadBalancers/backendAddressPools@2022-05-01' existing = {
name: loadBalancerBackendAddressPoolName
parent: loadBalancer
}
resource virtualMachineNetworkInterfaceCard 'Microsoft.Network/networkInterfaces@2022-05-01' = {
name: '${virtualMachineName}-nic-01'
location: resourceLocation
tags: {
associatedResource: virtualMachineName
environmentCode: environmentCode
loadBalancer: loadBalancerName
resourceLocation: resourceLocation
}
properties: {
dnsSettings: {
dnsServers: [
]
}
enableAcceleratedNetworking: true
enableIPForwarding: false
ipConfigurations: [
{
name: '${virtualMachineName}-nic-01-configuration'
properties: {
loadBalancerBackendAddressPools: [
{
id: loadBalancerBackendAddressPool.id
}
]
primary: true
privateIPAddress: networkInterfaceCardIPAddress
privateIPAddressVersion: 'IPv4'
privateIPAllocationMethod: 'Static'
subnet: {
id: virtualMachineNetworkInterfaceCardSubnet.id
}
}
}
]
nicType: 'Standard'
}
}
最佳答案
事实证明,根本错误与 NIC 本身的 Bicep 模板无关。
这是因为,根据 https://learn.microsoft.com/en-us/answers/questions/37890/internet-access-on-vms-in-internal-load-balancer-p.html 的设计,负载均衡器(内部和公共(public))不允许出站互联网访问 和 https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-outbound-connections
在我的案例中,我可以通过首先将 NAT 网关分配给虚拟机/负载均衡器所在的子网来实现此目的。我还能够测试通过路由表将流量转发到 Azure 防火墙,该防火墙也有效
关于sql-server - 在负载均衡器配置中添加时,NIC 的二头肌模板会中断互联网访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74279412/