2017-11-09 9 views

답변

1

VMSS에서 직접 VM으로 RDP 할 수있는 방법이 있습니까?

설명에 따르면,로드 밸런서에서 NAT 규칙을 구성 할 수 있습니다. 여기

는 VHD를 기존에 VMSS을 만들고 (3389) NAT 규칙을 구성, CPU와로드 밸런싱 규칙 (포트 80), 자동 규모, 템플릿입니다 :

{ 
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
    "vmSku": { 
     "type": "string", 
     "defaultValue": "Standard_D1", 
     "metadata": { 
     "description": "Size of VMs in the VM Scale Set." 
     } 
    }, 
    "sourceImageVhdUri": { 
      "type": "string", 
      "metadata": { 
       "description": "The source of the blob containing the custom image" 
      } 
     }, 
    "vmssName": { 
     "type": "string", 
     "metadata": { 
     "description": "String used as a base for naming resources. Must be 3-61 characters in length and globally unique across Azure. A hash is prepended to this string for some resources, and resource-specific information is appended." 
     }, 
     "maxLength": 61 
    }, 
    "instanceCount": { 
     "type": "int", 
     "metadata": { 
     "description": "Number of VM instances (100 or less)." 
     }, 
     "maxValue": 100 
    }, 
    "adminUsername": { 
     "type": "string", 
     "metadata": { 
     "description": "Admin username on all VMs." 
     } 
    }, 
    "adminPassword": { 
     "type": "securestring", 
     "metadata": { 
     "description": "Admin password on all VMs." 
     } 
    }, 
    "frontEndLBPort": { 
     "type": "int", 
     "metadata": { 
     "description": "The front end port to load balance" 
     }, 
     "defaultValue": 80 
    }, 
    "backEndLBPort": { 
     "type": "int", 
     "metadata": { 
     "description": "The back end port to load balance" 
     }, 
     "defaultValue": 80 
    }, 
    "probeIntervalInSeconds": { 
     "type": "int", 
     "metadata": { 
     "description": "The interval between load balancer health probes" 
     }, 
     "defaultValue": 15 
    }, 
    "numberOfProbes": { 
     "type": "int", 
     "metadata": { 
     "description": "The number of probes that need to fail before a VM instance is deemed unhealthy" 
     }, 
     "defaultValue": 5 
    }, 
    "probeRequestPath": { 
     "type": "string", 
     "metadata": { 
     "description": "The path used for the load balancer health probe" 
     }, 
     "defaultValue": "/iisstart.htm" 
    } 
    }, 
    "variables": { 
    "namingInfix": "[toLower(substring(concat(parameters('vmssName'), uniqueString(resourceGroup().id)), 0, 9))]", 
    "longNamingInfix": "[toLower(parameters('vmssName'))]", 
    "addressPrefix": "10.0.0.0/16", 
    "subnetPrefix": "10.0.0.0/24", 
    "virtualNetworkName": "[concat(variables('namingInfix'), 'vnet')]", 
    "publicIPAddressName": "[concat(variables('namingInfix'), 'pip')]", 
    "subnetName": "[concat(variables('namingInfix'), 'subnet')]", 
    "loadBalancerName": "[concat(variables('namingInfix'), 'lb')]", 
    "publicIPAddressID": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]", 
    "lbID": "[resourceId('Microsoft.Network/loadBalancers',variables('loadBalancerName'))]", 
    "natPoolName": "[concat(variables('namingInfix'), 'natpool')]", 
    "bePoolName": "[concat(variables('namingInfix'), 'bepool')]", 
    "lbFEName": "loadBalancerFrontEnd", 
    "lbWebProbeName": "loadBalancerWebProbe", 
    "natStartPort": 50000, 
    "natEndPort": 50119, 
    "natBackendPort": 3389, 
    "nicName": "[concat(variables('namingInfix'), 'nic')]", 
    "ipConfigName": "[concat(variables('namingInfix'), 'ipconfig')]", 
    "frontEndIPConfigID": "[concat(variables('lbID'),'/frontendIPConfigurations/loadBalancerFrontEnd')]", 
    "lbFEIPConfigID": "[concat(variables('lbID'),'/frontendIPConfigurations/',variables('lbFEName'))]", 
    "lbBEAddressPoolID": "[concat(variables('lbID'),'/backendAddressPools/',variables('bePoolName'))]", 
    "lbWebProbeID": "[concat(variables('lbID'),'/probes/',variables('lbWebProbeName'))]", 
    "computeApiVersion": "2016-04-30-preview", 
    "networkApiVersion": "2016-03-30", 
    "storageApiVersion": "2015-06-15", 
    "insightsApiVersion": "2015-04-01" 
    }, 
    "resources": [ 
    { 
     "type": "Microsoft.Network/virtualNetworks", 
     "name": "[variables('virtualNetworkName')]", 
     "location": "[resourceGroup().location]", 
     "apiVersion": "[variables('networkApiVersion')]", 
     "properties": { 
     "addressSpace": { 
      "addressPrefixes": [ 
      "[variables('addressPrefix')]" 
      ] 
     }, 
     "subnets": [ 
      { 
      "name": "[variables('subnetName')]", 
      "properties": { 
       "addressPrefix": "[variables('subnetPrefix')]" 
      } 
      } 
     ] 
     } 
    }, 
    { 
     "type": "Microsoft.Network/publicIPAddresses", 
     "name": "[variables('publicIPAddressName')]", 
     "location": "[resourceGroup().location]", 
     "apiVersion": "[variables('networkApiVersion')]", 
     "properties": { 
     "publicIPAllocationMethod": "Dynamic", 
     "dnsSettings": { 
      "domainNameLabel": "[variables('longNamingInfix')]" 
     } 
     } 
    }, 
    { 
     "type": "Microsoft.Network/loadBalancers", 
     "name": "[variables('loadBalancerName')]", 
     "location": "[resourceGroup().location]", 
     "apiVersion": "[variables('networkApiVersion')]", 
     "dependsOn": [ 
     "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]" 
     ], 
     "properties": { 
     "frontendIPConfigurations": [ 
      { 
      "name": "LoadBalancerFrontEnd", 
      "properties": { 
       "publicIPAddress": { 
       "id": "[variables('publicIPAddressID')]" 
       } 
      } 
      } 
     ], 
     "backendAddressPools": [ 
      { 
      "name": "[variables('bePoolName')]" 
      } 
     ], 
     "inboundNatPools": [ 
      { 
      "name": "[variables('natPoolName')]", 
      "properties": { 
       "frontendIPConfiguration": { 
       "id": "[variables('frontEndIPConfigID')]" 
       }, 
       "protocol": "tcp", 
       "frontendPortRangeStart": "[variables('natStartPort')]", 
       "frontendPortRangeEnd": "[variables('natEndPort')]", 
       "backendPort": "[variables('natBackendPort')]" 
      } 
      } 
     ], 
     "loadBalancingRules": [ 
      { 
      "name": "weblb", 
      "properties": { 
       "frontendIPConfiguration": { 
       "id": "[variables('lbFEIPConfigID')]" 
       }, 
       "backendAddressPool": { 
       "id": "[variables('lbBEAddressPoolID')]" 
       }, 
       "probe": { 
       "id": "[variables('lbWebProbeID')]" 
       }, 
       "protocol": "tcp", 
       "frontendPort": "[parameters('frontEndLBPort')]", 
       "backendPort": "[parameters('backEndLBPort')]", 
       "enableFloatingIP": false 
      } 
      } 
     ], 
     "probes": [ 
      { 
      "name": "[variables('lbWebProbeName')]", 
      "properties": { 
       "protocol": "Http", 
       "port": "[parameters('backEndLBPort')]", 
       "intervalInSeconds": "[parameters('probeIntervalInSeconds')]", 
       "numberOfProbes": "[parameters('numberOfProbes')]", 
       "requestPath": "[parameters('probeRequestPath')]" 
      } 
      } 
     ] 

     } 
    }, 
    { 
     "type": "Microsoft.Compute/virtualMachineScaleSets", 
     "name": "[variables('namingInfix')]", 
     "location": "[resourceGroup().location]", 
     "apiVersion": "[variables('computeApiVersion')]", 
     "dependsOn": [ 
     "[concat('Microsoft.Network/loadBalancers/', variables('loadBalancerName'))]", 
     "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]" 
     ], 
     "sku": { 
     "name": "[parameters('vmSku')]", 
     "tier": "Standard", 
     "capacity": "[parameters('instanceCount')]" 
     }, 
     "properties": { 
     "overprovision": "true", 
     "upgradePolicy": { 
      "mode": "Manual" 
     }, 
     "virtualMachineProfile": { 
      "storageProfile": { 
      "osDisk": { 
      "name": "vmssosdisk", 
      "createOption": "FromImage", 
      "osType": "Windows", 
      "image": { 
       "uri": "[parameters('sourceImageVhdUri')]" 
      } 
      } 
      }, 
      "osProfile": { 
      "computerNamePrefix": "[variables('namingInfix')]", 
      "adminUsername": "[parameters('adminUsername')]", 
      "adminPassword": "[parameters('adminPassword')]" 
      }, 
      "networkProfile": { 
      "networkInterfaceConfigurations": [ 
       { 
       "name": "[variables('nicName')]", 
       "properties": { 
        "primary": "true", 
        "ipConfigurations": [ 
        { 
         "name": "[variables('ipConfigName')]", 
         "properties": { 
         "subnet": { 
          "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('subnetName'))]" 
         }, 
         "loadBalancerBackendAddressPools": [ 
          { 
          "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('loadBalancerName'), '/backendAddressPools/', variables('bePoolName'))]" 
          } 
         ], 
         "loadBalancerInboundNatPools": [ 
          { 
          "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('loadBalancerName'), '/inboundNatPools/', variables('natPoolName'))]" 
          } 
         ] 
         } 
        } 
        ] 
       } 
       } 
      ] 
      } 
     } 
     } 
    }, 
    { 
     "type": "Microsoft.Insights/autoscaleSettings", 
     "apiVersion": "[variables('insightsApiVersion')]", 
     "name": "autoscalewad", 
     "location": "[resourceGroup().location]", 
     "dependsOn": [ 
     "[concat('Microsoft.Compute/virtualMachineScaleSets/', variables('namingInfix'))]" 
     ], 
     "properties": { 
     "name": "autoscalewad", 
     "targetResourceUri": "[concat('/subscriptions/',subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Compute/virtualMachineScaleSets/', variables('namingInfix'))]", 
     "enabled": true, 
     "profiles": [ 
      { 
      "name": "Profile1", 
      "capacity": { 
       "minimum": "1", 
       "maximum": "10", 
       "default": "1" 
      }, 
      "rules": [ 
       { 
       "metricTrigger": { 
        "metricName": "Percentage CPU", 
        "metricNamespace": "", 
        "metricResourceUri": "[concat('/subscriptions/',subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Compute/virtualMachineScaleSets/', variables('namingInfix'))]", 
        "timeGrain": "PT1M", 
        "statistic": "Average", 
        "timeWindow": "PT5M", 
        "timeAggregation": "Average", 
        "operator": "GreaterThan", 
        "threshold": 60.0 
       }, 
       "scaleAction": { 
        "direction": "Increase", 
        "type": "ChangeCount", 
        "value": "1", 
        "cooldown": "PT1M" 
       } 
       }, 
       { 
       "metricTrigger": { 
        "metricName": "Percentage CPU", 
        "metricNamespace": "", 
        "metricResourceUri": "[concat('/subscriptions/',subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Compute/virtualMachineScaleSets/', variables('namingInfix'))]", 
        "timeGrain": "PT1M", 
        "statistic": "Average", 
        "timeWindow": "PT5M", 
        "timeAggregation": "Average", 
        "operator": "LessThan", 
        "threshold": 30.0 
       }, 
       "scaleAction": { 
        "direction": "Decrease", 
        "type": "ChangeCount", 
        "value": "1", 
        "cooldown": "PT5M" 
       } 
       } 
      ] 
      } 
     ] 
     } 
    } 
    ] 
} 
이 템플릿에 대한

더 많은 정보를하시기 바랍니다 이 link을 참조하십시오.

+0

감사합니다. @ Jason 너무 빨리 답변 해주세요. 위의 템플릿을 테스트하여 VMSS 내에있는 VM에 RDP를 수행 할 수있었습니다. 템플릿을 다시 보내 주셔서 감사합니다. –