【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务
2021-02-10 17:32
1581 查看
问题描述
创建新的Service Fabric集群,可以通过门户,Powershell命令,或者是ARM模板。但是通过门户和PowerShell命令时,创建的SF集群都会自动新建一个虚拟网络而无法使用以及存在的虚拟网络及子网来部署SF。
{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", "contentVersion": "1.0.0.0", "parameters": { "clusterLocation": { "type": "string", "defaultValue": "chinanorth2", "metadata": { "description": "Location of the Cluster" } }, "clusterName": { "type": "string", "defaultValue": "Clustervanke", "metadata": { "description": "Name of your cluster - Between 3 and 23 characters. Letters and numbers only" } }, "nt0applicationStartPort": { "type": "int", "defaultValue": 20000 }, "nt0applicationEndPort": { "type": "int", "defaultValue": 30000 }, "nt0ephemeralStartPort": { "type": "int", "defaultValue": 49152 }, "nt0ephemeralEndPort": { "type": "int", "defaultValue": 65534 }, "nt0fabricTcpGatewayPort": { "type": "int", "defaultValue": 19000 }, "nt0fabricHttpGatewayPort": { "type": "int", "defaultValue": 19080 }, "subnet0Name": { "type": "string", "defaultValue": "default" }, "existingVNetRGName": { "type": "string", "defaultValue": "vanke-rg" }, "existingVNetName": { "type": "string", "defaultValue": "vanke-vnet-sf-03" }, "computeLocation": { "type": "string", "defaultValue": "chinanorth2" }, "vmStorageAccountName" ad8 : { "type": "string", "defaultValue": "sftestsa002" }, "publicIPAddressName": { "type": "string", "defaultValue": "PublicIP-SF-VM" }, "publicIPAddressType": { "type": "string", "allowedValues": [ "Dynamic" ], "defaultValue": "Dynamic" }, "vmStorageAccountContainerName": { "type": "string", "defaultValue": "vhds" }, "adminUserName": { "type": "string", "defaultValue": "testadmin", "metadata": { "description": "Remote desktop user Id" } }, "adminPassword": { "type": "securestring", "defaultValue": "1qaz#EDC5tgb", "metadata": { "description": "Remote desktop user password. Must be a strong password" } }, "virtualNetworkName": { "type": "string", "defaultValue": "VNet" }, "addressPrefix": { "type": "string", "defaultValue": "10.3.0.0/24" }, "dnsName": { "type": "string", "defaultValue": "sfdnstest02" }, "nicName": { "type": "string", "defaultValue": "NIC" }, "lbName": { "type": "string", "defaultValue": "LoadBalancer" }, "lbIPName": { "type": "string", "defaultValue": "PublicIP-LB-SF-FE" }, "overProvision": { "type": "string", "defaultValue": "false" }, "vmImagePublisher": { "type": "string", "defaultValue": "MicrosoftWindowsServer" }, "vmImageOffer": { "type": "string", "defaultValue": "WindowsServer" }, "vmImageSku": { "type": "string", "defaultValue": "2016-Datacenter-with-Containers" }, "vmImageVersion": { "type": "string", "defaultValue": "latest" }, "loadBalancedAppPort1": { "type": "int", "defaultValue": 80, "metadata": { "description": "Input endpoint1 for the application to use. Replace it with what your application uses" } }, "storageAccountType": { "type": "string", "allowedValues": [ "Standard_LRS", "Standard_GRS" ], "defaultValue": "Standard_LRS", "metadata": { "description": "Replication option for the VM image storage account" } ad0 }, "supportLogStorageAccountType": { "type": "string", "allowedValues": [ "Standard_LRS", "Standard_GRS" ], "defaultValue": "Standard_LRS", "metadata": { "description": "Replication option for the support log storage account" } }, "supportLogStorageAccountName": { "type": "string", "defaultValue": "[toLower( concat('sflogs', uniqueString(resourceGroup().id),'2'))]", "metadata": { "description": "Name for the storage account that contains support logs from the cluster" } }, "applicationDiagnosticsStorageAccountType": { "type": "string", "allowedValues": [ "Standard_LRS", "Standard_GRS" ], "defaultValue": "Standard_LRS", "metadata": { "description": "Replication option for the application diagnostics storage account" } }, "applicationDiagnosticsStorageAccountName": { "type": "string", "defaultValue": "[toLower(concat(uniqueString(resourceGroup().id), '3' ))]", "metadata": { "description": "Name for the storage account that contains application diagnostics data from the cluster" } }, "nt0InstanceCount": { "type": "int", "defaultValue": 1, "metadata": { "description": "Instance count for node type" } }, "vmNodeType0Name": { "type": "string", "defaultValue": "Node1", "maxLength": 9 }, "vmNodeType0Size": { "type": "string", "defaultValue": "Standard_D1_v2" } }, "variables": { "vmssApiVersion": "2016-03-30", "lbApiVersion": "2015-06-15", "vNetApiVersion": "2015-06-15", "storageApiVersion": "2016-01-01", "publicIPApiVersion": "2015-06-15", "vnetID": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('existingVNetRGName'), '/providers/Microsoft.Network/virtualNetworks/', parameters('existingVNetName'))]", "subnet0Ref": "[concat(variables('vnetID'),'/subnets/',parameters('subnet0Name'))]", "lbID0": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", "lbIPConfig0": "[concat(variables('lbID0'),'/frontendIPConfigurations/LoadBalancerIPConfig')]", "lbPoolID0": "[concat(variables('lbID0'),'/backendAddressPools/LoadBalancerBEAddressPool')] ad8 ", "lbProbeID0": "[concat(variables('lbID0'),'/probes/FabricGatewayProbe')]", "lbHttpProbeID0": "[concat(variables('lbID0'),'/probes/FabricHttpGatewayProbe')]", "lbNatPoolID0": "[concat(variables('lbID0'),'/inboundNatPools/LoadBalancerBEAddressNatPool')]", "vmStorageAccountName0": "[toLower(concat(uniqueString(resourceGroup().id), '1', '0' ))]", "uniqueStringArray0": [ "[concat(variables('vmStorageAccountName0'), '0')]", "[concat(variables('vmStorageAccountName0'), '1')]", "[concat(variables('vmStorageAccountName0'), '2')]", "[concat(variables('vmStorageAccountName0'), '3')]", "[concat(variables('vmStorageAccountName0'), '4')]" ] }, "resources": [ { "apiVersion": "[variables('storageApiVersion')]", "type": "Microsoft.Storage/storageAccounts", "name": "[parameters('supportLogStorageAccountName')]", "location": "[parameters('computeLocation')]", "dependsOn": [], "properties": {}, "kind": "Storage", "sku": { "name": "[parameters('supportLogStorageAccountType')]" }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } }, { "apiVersion": "[variables('storageApiVersion')]", "type": "Microsoft.Storage/storageAccounts", "name": "[parameters('applicationDiagnosticsStorageAccountName')]", "location": "[parameters('computeLocation')]", "dependsOn": [], "properties": {}, "kind": "Storage", "sku": { "name": "[parameters('applicationDiagnosticsStorageAccountType')]" }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } }, { "apiVersion": "[variables('publicIPApiVersion')]", "type": "Microsoft.Network/publicIPAddresses", "name": "[concat(parameters('lbIPName'),'-','0')]", "location": "[parameters('computeLocation')]", "properties": { "dnsSettings": { "domainNameLabel": "[parameters('dnsName')]" }, "publicIPAllocationMethod": "Dynamic" }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } }, { "apiVersion": "[variables('lbApiVersion')]", "type": "Microsoft.Network/loadBalancers", 1044 "name": "[concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name'))]", "location": "[parameters('computeLocation')]", "dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]" ], "properties": { "frontendIPConfigurations": [ { "name": "LoadBalancerIPConfig", "properties": { "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]" } } } ], "backendAddressPools": [ { "name": "LoadBalancerBEAddressPool", "properties": {} } ], "loadBalancingRules": [ { "name": "LBRule", "properties": { "backendAddressPool": { "id": "[variables('lbPoolID0')]" }, "backendPort": "[parameters('nt0fabricTcpGatewayPort')]", "enableFloatingIP": "false", "frontendIPConfiguration": { "id": "[variables('lbIPConfig0')]" }, "frontendPort": "[parameters('nt0fabricTcpGatewayPort')]", "idleTimeoutInMinutes": "5", "probe": { "id": "[variables('lbProbeID0')]" }, "protocol": "tcp" } }, { "name": "LBHttpRule", "properties": { "backendAddressPool": { "id": "[variables('lbPoolID0')]" }, "backendPort": "[parameters('nt0fabricHttpGatewayPort')]", "enableFloatingIP": "false", "frontendIPConfiguration": { "id": "[variables('lbIPConfig0')]" }, "frontendPort": "[parameters('nt0fabricHttpGatewayPort')]", "idleTimeoutInMinutes": "5", "probe": { "id": "[variables('lbHttpProbeID0')]" }, "protocol": "tcp" } }, { "name": "AppPortLBRule1", "properties": { "backendAddressPool": { "id": "[variables('lbPoolID0')]" }, "backendPort": "[parameters('loadBalancedAppPort1')]", "enableFloatingIP": "false", "frontendIPConfiguration": { "id": "[variables('lbIPConfig0')]" }, "frontendPort": "[parameters('loadBalancedAppPort1')]", "idleTimeoutInMinutes": "5", "probe": { "id": "[concat(variables('lbID0'),'/probes/AppPortProbe1')]" }, "protocol": "tcp" } } ], "probes": [ { "name": "FabricGatewayProbe", "properties": { "intervalInSeconds": 5, "numberOfProbes": 2, "port": "[parameters('nt0fabricTcpGatewayPo ad8 rt')]", "protocol": "tcp" } }, { "name": "FabricHttpGatewayProbe", "properties": { "intervalInSeconds": 5, "numberOfProbes": 2, "port": "[parameters('nt0fabricHttpGatewayPort')]", "protocol": "tcp" } }, { "name": "AppPortProbe1", "properties": { "intervalInSeconds": 5, "numberOfProbes": 2, "port": "[parameters('loadBalancedAppPort1')]", "protocol": "tcp" } } ], "inboundNatPools": [ { "name": "LoadBalancerBEAddressNatPool", "properties": { "backendPort": "3389", "frontendIPConfiguration": { "id": "[variables('lbIPConfig0')]" }, "frontendPortRangeEnd": "4500", "frontendPortRangeStart": "3389", "protocol": "tcp" } } ] }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } }, { "apiVersion": "[variables('storageApiVersion')]", "type": "Microsoft.Storage/storageAccounts", "name": "[variables('uniqueStringArray0')[copyIndex()]]", "location": "[parameters('computeLocation')]", "dependsOn": [], "properties": {}, "copy": { "name": "storageLoop", "count": 5 }, "kind": "Storage", "sku": { "name": "[parameters('storageAccountType')]" }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } }, { "apiVersion": "[variables('vmssApiVersion')]", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[parameters('vmNodeType0Name')]", "location": "[parameters('computeLocation')]", "dependsOn": [ "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0])]", " 1b14 [concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1])]", "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2])]", "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3])]", "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4])]", "[concat('Microsoft.Network/loadBalancers/', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]", "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]", "[concat('Microsoft.Storage/storageAccounts/', parameters('applicationDiagnosticsStorageAccountName'))]" ], "properties": { "overprovision": "[parameters('overProvision')]", "upgradePolicy": { "mode": "Automatic" }, "virtualMachineProfile": { "extensionProfile": { "extensions": [ { "name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricNode')]", "properties": { "type": "ServiceFabricNode", "autoUpgradeMinorVersion": false, "protectedSettings": { "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key1]", "StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key2]" }, "publisher": "Microsoft.Azure.ServiceFabric", "settings": { "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]", "nodeTypeRef": "[parameters('vmNodeType0Name')]", "dataPath": "D:\\\\SvcFab", "durabilityLevel": "Bronze" }, "typeHandlerVersion": "1.0" } }, { "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]", "properties": { "type": "IaaSDiagnostics", "autoUpgradeMinorVersion": true, "protectedSettings": { "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]", "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]", "storageAccountEndPoint": "https://core.windows.net/" }, "publisher": "Microsoft.Azure.Diagnostics", "settings": { "WadCfg": { "DiagnosticMonitorConfiguration": { "overallQuotaInMB": "50000", "EtwProviders": { "EtwEventSourceProviderConfiguration": [ { "provider": "Microsoft-ServiceFabric-Actors", "scheduledTransferKeywordFilter": "1", "scheduledTransferPeriod": "PT5M", "DefaultEvents": { "eventDestination": "ServiceFabricReliableActorEventTable" } }, { "provider": "Microsoft-ServiceFabric-Services", "scheduledTransferPeriod": "PT5M", "DefaultEvents": { "eventDestination": "ServiceFabricReliableServiceEventTable" } } ], "EtwManifestProviderConfiguration": [ { "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8", "scheduledTransferLogLevelFilter": "Information", "scheduledTransferKeywordFilter": "4611686018427387904", "scheduledTransferPeriod": "PT5M", "DefaultEvents": { "eventDestination": "ServiceFabricSystemEventTable" } } ] } } }, "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]" }, "typeHandlerVersion": "1.5" } } ] }, "networkProfile": { "networkInterfaceConfigurations": [ { "name": "[concat(parameters('nicName'), '-0')]", "properties": { "ipConfigurations": [ 56c { "name": "[concat(parameters('nicName'),'-',0)]", "properties": { "loadBalancerBackendAddressPools": [ { "id": "[variables('lbPoolID0')]" } ], "loadBalancerInboundNatPools": [ { "id": "[variables('lbNatPoolID0')]" } ], "subnet": { "id": "[variables('subnet0Ref')]" } } } ], "primary": true } } ] }, "osProfile": { ad8 "adminPassword": "[parameters('adminPassword')]", "adminUsername": "[parameters('adminUsername')]", "computernamePrefix": "[parameters('vmNodeType0Name')]" }, "storageProfile": { "imageReference": { "publisher": "[parameters('vmImagePublisher')]", "offer": "[parameters('vmImageOffer')]", "sku": "[parameters('vmImageSku')]", "version": "[parameters('vmImageVersion')]" }, "osDisk": { "vhdContainers": [ "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]", "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]" ], "name": "vmssosdisk", "caching": "ReadOnly", "createOption": "FromImage" } } } }, "sku": { "name": "[parameters('vmNodeType0Size')]", "capacity": "[parameters('nt0InstanceCount')]", "tier": "Standard" }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } }, { "apiVersion": "2016-09-01", "type": "Microsoft.ServiceFabric/clusters", "name": "[parameters('clusterName')]", "location": "[parameters('clusterLocation')]", "dependsOn": [ "[co 22e2 ncat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" ], "properties": { "clientCertificateCommonNames": [], "clientCertificateThumbprints": [], "clusterState": "Default", "diagnosticsStorageAccountConfig": { "blobEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.blob]", "protectedAccountKeyName": "StorageAccountKey1", "queueEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.queue]", "storageAccountName": "[parameters('supportLogStorageAccountName')]", "tableEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.table]" }, "fabricSettings": [], "managementEndpoint": "[concat('http://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]", "nodeTypes": [ { "name": "[parameters('vmNodeType0Name')]", "applicationPorts": { "endPort": "[parameters('nt0applicationEndPort')]", "startPort": "[parameters('nt0applicationStartPort')]" }, "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]", "durabilityLevel": "Bronze", "ephemeralPorts": { "endPort": "[parameters('nt0ephemeralEndPort')]", "startPort": "[parameters('nt0ephemeralStartPort')]" }, "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]", "reverseProxyEndpointPort": "19081", "isPrimary": true, "vmInstanceCount": "[parameters('nt0InstanceCount')]" } ], "provisioningState": "Default", "reliabilityLevel": "None", "upgradeMode": "Automatic", "vmImage": "Windows" }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } } ], "outputs": { "clusterProperties": { "value": "[reference(parameters('clusterName'))]", "type": "object" } } }View Code
2)使用az命令部署
az login az account set --subscription "your subscription id" az group create --name sfnetworkingexistingvnet --location chinanorth az deployment group create --name deployment --resource-group sfnetworkingexistingvnet --template-file .\exsitvnet.json
3) 在虚拟网络中配置自定义DNS服务器(在Azure门户中进入VNET页面,选择DNS servers)
远程连接到SF的节点中,通过 ipconfig /all | findstr “DNS\ Servers” 查看当前节点中所使用的DNS IP地址
[完]
参考资料
相关文章推荐
- 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法
- Windows XP下配置基于本机DNS服务的Apache虚拟主机和SSL
- Azure虚拟网络基于RFC1918的子网划分
- 创建自定义配置节点(web.config和app.config都适用)
- 基于windows sever 2008系统平台配置DNS服务
- Ubuntu部署基于Fabric的虚拟区块链服务
- 创建自定义自启动LINUX服务service
- 基于已经存在的游标创建存储提纲固定执行计划
- 邮件服务系列之四基于虚拟用户的虚拟域的邮件系统(安装courier-authlib以及部分配置方法)
- Windows Azure Cloud Service (18) 基于Input Endpoint通过Worker Role发布WCF服务
- C#创建自定义配置节点
- 在ubuntu14版本上使用dnsmasq配置自定义的简易DNS服务
- Linux网络服务之DNS服务器介绍及配置实例详解
- linux服务器的所有服务web/dns/dhcp/vsftp-nfs-samba的配置
- 小型公司网络组建及WEB服务配置及DNS解析
- 【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
- 在RHEL5下构建LAMP网站服务平台之编译安装Apache与配置基于域名的虚拟Web主机
- Service一直存在并且能调用服务里面的方法
- Linux网络服务之DNS服务器介绍及配置实例详解 推荐
- 创建自定义配置节点(web.config和app.config都适用)