微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Azure 中创建具有 HA 端口的内部标准负载平衡器

如何解决在 Azure 中创建具有 HA 端口的内部标准负载平衡器

我正在尝试使用 ARM 模板在 Azure 中创建具有 HA 端口的内部标准负载平衡器。我收到以下验证错误

{ "code": "InvalidTemplateDeployment",“细节”: [ { "code": "PortValueIsOutOfRange","message": "资源 DC10TESTCPW01 的端口 (0) 值无效。该值必须介于 1 和 65535 之间。",“细节”: [] } ],"message": "根据验证程序,模板部署 'Microsoft.Template-20210524012843' 无效。跟踪 ID 为 '585f5d57-4423-47a8-a45d-4a0e371b47c2'。有关详细信息,请参阅内部错误。" }

解决方法

示例:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion": "1.0.0.0","parameters": {
    "adminUsername": {
      "type": "string","metadata": {
        "description": "Admin username"
      }
    },"adminPassword": {
      "type": "securestring","metadata": {
        "description": "Admin password"
      }
    },"vmNamePrefix": {
      "type": "string","defaultValue": "BackendVM","metadata": {
        "description": "Prefix to use for VM names"
      }
    },"location": {
      "type": "string","defaultValue": "[resourceGroup().location]","metadata": {
        "description": "Location for all resources."
      }
    },"vmSize": {
      "type": "string","defaultValue": "Standard_DS1_V2","metadata": {
        "description": "Size of the virtual machines"
      }
    }
  },"variables": {
    "availabilitySetName": "AvSet","storageAccountType": "Standard_LRS","storageAccountName": "[uniqueString(resourceGroup().id)]","virtualNetworkName": "vNet","subnetName": "backendSubnet","loadBalancerName": "ilb","networkInterfaceName": "nic","subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets',variables('virtualNetworkName'),variables('subnetName'))]","numberOfInstances": 2
  },"resources": [
    {
      "type": "Microsoft.Storage/storageAccounts","apiVersion": "2019-06-01","name": "[variables('storageAccountName')]","location": "[parameters('location')]","sku": {
        "name": "[variables('storageAccountType')]"
      },"kind": "StorageV2"
    },{
      "type": "Microsoft.Compute/availabilitySets","apiVersion": "2020-06-01","name": "[variables('availabilitySetName')]","sku": {
        "name": "Aligned"
      },"properties": {
        "PlatformUpdateDomainCount": 2,"PlatformFaultDomainCount": 2
      }
    },{
      "type": "Microsoft.Network/virtualNetworks","name": "[variables('virtualNetworkName')]","properties": {
        "addressSpace": {
          "addressPrefixes": [
            "10.0.0.0/16"
          ]
        },"subnets": [
          {
            "name": "[variables('subnetName')]","properties": {
              "addressPrefix": "10.0.2.0/24"
            }
          }
        ]
      }
    },{
      "type": "Microsoft.Network/networkInterfaces","name": "[concat(variables('networkInterfaceName'),copyindex())]","copy": {
        "name": "nicLoop","count": "[variables('numberOfInstances')]"
      },"dependsOn": [
        "[variables('virtualNetworkName')]","[variables('loadBalancerName')]"
      ],"properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1","properties": {
              "privateIPAllocationMethod": "Dynamic","subnet": {
                "id": "[variables('subnetRef')]"
              },"loadBalancerBackendAddressPools": [
                {
                  "id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools',variables('loadBalancerName'),'BackendPool1')]"
                }
              ]
            }
          }
        ]
      }
    },{
      "type": "Microsoft.Network/loadBalancers","name": "[variables('loadBalancerName')]","sku": {
        "name": "Standard"
      },"dependsOn": [
        "[variables('virtualNetworkName')]"
      ],"properties": {
        "frontendIPConfigurations": [
          {
            "properties": {
              "subnet": {
                "id": "[variables('subnetRef')]"
              },"privateIPAddress": "10.0.2.6","privateIPAllocationMethod": "Static"
            },"name": "LoadBalancerFrontend"
          }
        ],"backendAddressPools": [
          {
            "name": "BackendPool1"
          }
        ],"loadBalancingRules": [
          {
            "properties": {
              "frontendIPConfiguration": {
                "id": "[resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations','LoadBalancerFrontend')]"
              },"backendAddressPool": {
                "id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools','BackendPool1')]"
              },"probe": {
                "id": "[resourceId('Microsoft.Network/loadBalancers/probes','lbprobe')]"
              },"protocol": "Tcp","frontendPort": 80,"backendPort": 80,"idleTimeoutInMinutes": 15
            },"Name": "lbrule"
          }
        ],"probes": [
          {
            "properties": {
              "protocol": "Tcp","port": 80,"intervalInSeconds": 15,"numberOfProbes": 2
            },"name": "lbprobe"
          }
        ]
      }
    },{
      "type": "Microsoft.Compute/virtualMachines","name": "[concat(parameters('vmNamePrefix'),"copy": {
        "name": "virtualMachineLoop","dependsOn": [
        "[variables('storageAccountName')]","nicLoop","[variables('availabilitySetName')]"
      ],"properties": {
        "availabilitySet": {
          "id": "[resourceId('Microsoft.Compute/availabilitySets',variables('availabilitySetName'))]"
        },"hardwareProfile": {
          "vmSize": "[parameters('vmSize')]"
        },"osProfile": {
          "computerName": "[concat(parameters('vmNamePrefix'),copyIndex())]","adminUsername": "[parameters('adminUsername')]","adminPassword": "[parameters('adminPassword')]"
        },"storageProfile": {
          "imageReference": {
            "publisher": "MicrosoftWindowsServer","offer": "WindowsServer","sku": "2019-Datacenter","version": "latest"
          },"osDisk": {
            "createOption": "FromImage"
          }
        },"networkProfile": {
          "networkInterfaces": [
            {
              "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('networkInterfaceName'),copyindex()))]"
            }
          ]
        },"diagnosticsProfile": {
          "bootDiagnostics": {
            "enabled": true,"storageUri": "[reference(variables('storageAccountName')).primaryEndpoints.blob]"
          }
        }
      }
    }
  ]
}

使用 HA 更新:

  1. 为单个配置多个前端私有 IP 地址
    内部标准负载均衡器资源。
  2. 配置多个负载平衡规则,其中每个规则都选择了一个唯一的前端 IP 地址。
  3. 选择 HA 端口选项,然后将所有负载平衡规则的浮动 IP 设置为启用。

JSON 视图

{
    "name": "ilb1","id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1","etag": "W/\"<ETAG>\"","type": "Microsoft.Network/loadBalancers","location": "westeurope","tags": {},"properties": {
        "provisioningState": "Succeeded","resourceGuid": "<ResourceGuid>","frontendIPConfigurations": [
            {
                "name": "LoadBalancerFrontEnd","id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/frontendIPConfigurations/LoadBalancerFrontEnd","type": "Microsoft.Network/loadBalancers/frontendIPConfigurations","properties": {
                    "provisioningState": "Succeeded","privateIPAddress": "10.0.0.6","privateIPAllocationMethod": "Static","subnet": {
                        "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/virtualNetworks/<RG>-vnet/subnets/default"
                    },"loadBalancingRules": [
                        {
                            "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/loadBalancingRules/rule1"
                        }
                    ]
                }
            },{
                "name": "ilbIP2","id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/frontendIPConfigurations/ilbIP2","privateIPAddress": "10.0.0.7","loadBalancingRules": [
                        {
                            "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/loadBalancingRules/rule2"
                        }
                    ]
                }
            }
        ],"backendAddressPools": [
            {
                "name": "poolbackend1","id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/backendAddressPools/poolbackend1","loadBalancingRules": [
                        {
                            "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/loadBalancingRules/rule1"
                        },{
                            "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/loadBalancingRules/rule2"
                        }
                    ]
                },"type": "Microsoft.Network/loadBalancers/backendAddressPools"
            }
        ],"loadBalancingRules": [
            {
                "name": "rule1","id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/loadBalancingRules/rule1","type": "Microsoft.Network/loadBalancers/loadBalancingRules","frontendIPConfiguration": {
                        "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/frontendIPConfigurations/LoadBalancerFrontEnd"
                    },"frontendPort": 0,"backendPort": 0,"enableFloatingIP": true,"idleTimeoutInMinutes": 4,"protocol": "All","loadDistribution": "SourceIP","disableOutboundSnat": true,"backendAddressPool": {
                        "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/backendAddressPools/poolbackend1"
                    },"probe": {
                        "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/probes/Hprobe1"
                    }
                }
            },{
                "name": "rule2","id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/loadBalancingRules/rule2","frontendIPConfiguration": {
                        "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/frontendIPConfigurations/ilbIP2"
                    },"probe": {
                        "id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/probes/Hprobe1"
                    }
                }
            }
        ],"probes": [
            {
                "name": "Hprobe1","id": "/subscriptions/<SubscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/loadBalancers/ilb1/probes/Hprobe1","intervalInSeconds": 5,"numberOfProbes": 2,"type": "Microsoft.Network/loadBalancers/probes"
            }
        ],"inboundNatRules": [],"inboundNatPools": []
    },"sku": {
        "name": "Standard"
    }
}

ILB HA 模板

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","parameters": {
        "loadBalancers_ilb1_name": {
            "defaultValue": "ilb1","type": "String"
        },"virtualNetworks_<RG>_vnet_externalid": {
            "defaultValue": "/subscriptions/<subscriptionId>/resourceGroups/<RG>/providers/Microsoft.Network/virtualNetworks/<RG>-vnet","type": "String"
        }
    },"variables": {},"resources": [
        {
            "type": "Microsoft.Network/loadBalancers","apiVersion": "2020-11-01","name": "[parameters('loadBalancers_ilb1_name')]","dependsOn": [
                "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools',parameters('loadBalancers_ilb1_name'),'poolbackend1')]"
            ],"sku": {
                "name": "Standard","tier": "Regional"
            },"properties": {
                "frontendIPConfigurations": [
                    {
                        "name": "LoadBalancerFrontEnd","properties": {
                            "privateIPAddress": "10.0.0.6","subnet": {
                                "id": "[concat(parameters('virtualNetworks_<RG>_vnet_externalid'),'/subnets/default')]"
                            },"privateIPAddressVersion": "IPv4"
                        },"zones": [
                            "1","2","3"
                        ]
                    },{
                        "name": "ilbIP2","properties": {
                            "privateIPAddress": "10.0.0.7","3"
                        ]
                    }
                ],"backendAddressPools": [
                    {
                        "name": "poolbackend1","properties": {
                            "loadBalancerBackendAddresses": [
                                {
                                    "name": "1a959793-169e-4e7f-8711-128f237dbf67","properties": {
                                        "ipAddress": "10.0.0.9","virtualNetwork": {
                                            "id": "[parameters('virtualNetworks_<RG>_vnet_externalid')]"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                ],"loadBalancingRules": [
                    {
                        "name": "rule1","properties": {
                            "frontendIPConfiguration": {
                                "id": "[concat(resourceId('Microsoft.Network/loadBalancers',parameters('loadBalancers_ilb1_name')),'/frontendIPConfigurations/LoadBalancerFrontEnd')]"
                            },"enableTcpReset": false,"backendAddressPool": {
                                "id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools','poolbackend1')]"
                            },"probe": {
                                "id": "[concat(resourceId('Microsoft.Network/loadBalancers','/probes/Hprobe1')]"
                            }
                        }
                    },{
                        "name": "rule2",'/frontendIPConfigurations/ilbIP2')]"
                            },'/probes/Hprobe1')]"
                            }
                        }
                    }
                ],"probes": [
                    {
                        "name": "Hprobe1","properties": {
                            "protocol": "Tcp","numberOfProbes": 2
                        }
                    }
                ],"outboundRules": [],"inboundNatPools": []
            }
        },{
            "type": "Microsoft.Network/loadBalancers/backendAddressPools","name": "[concat(parameters('loadBalancers_ilb1_name'),'/poolbackend1')]","dependsOn": [
                "[resourceId('Microsoft.Network/loadBalancers',parameters('loadBalancers_ilb1_name'))]"
            ],"properties": {
                "loadBalancerBackendAddresses": [
                    {
                        "name": "1a959793-169e-4e7f-8711-128f237dbf67","properties": {
                            "ipAddress": "10.0.0.9","virtualNetwork": {
                                "id": "[parameters('virtualNetworks_<RG>_vnet_externalid')]"
                            }
                        }
                    }
                ]
            }
        }
    ]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?