Aracılığıyla paylaş


Service Fabric ağ desenleri

Azure Service Fabric kümenizi diğer Azure ağ özellikleriyle tümleştirebilirsiniz. Bu makalede, aşağıdaki özellikleri kullanan kümelerin nasıl oluşturulacağını göstereceğiz:

Service Fabric standart bir sanal makine ölçek kümesinde çalışır. Bir sanal makine ölçek kümesinde kullanabileceğiniz tüm işlevleri Service Fabric kümesiyle kullanabilirsiniz. Sanal makine ölçek kümeleri ve Service Fabric için Azure Resource Manager şablonlarının ağ bölümleri aynıdır. Mevcut bir sanal ağa dağıtıldıktan sonra Azure ExpressRoute, Azure VPN Gateway, bir ağ güvenlik grubu ve sanal ağ eşlemesi gibi diğer ağ özelliklerini kolayca birleştirebilirsiniz.

Service Fabric kaynak sağlayıcısının kümenizi sorgulamasına izin verme

Service Fabric, bir yönüyle diğer ağ özelliklerinden benzersizdir. Azure portalı, düğümler ve uygulamalar hakkında bilgi almak üzere bir kümeye çağrı yapmak için Service Fabric kaynak sağlayıcısını dahili olarak kullanır. Service Fabric kaynak sağlayıcısı, yönetim uç noktasında HTTP ağ geçidi bağlantı noktasına (varsayılan olarak 19080 numaralı bağlantı noktası) genel olarak erişilebilir gelen erişim gerektirir. Service Fabric Explorer , kümenizi yönetmek için yönetim uç noktasını kullanır. Service Fabric kaynak sağlayıcısı, azure portalında görüntülemek üzere kümenizle ilgili bilgileri sorgulamak için de bu bağlantı noktasını kullanır.

Service Fabric kaynak sağlayıcısından 19080 numaralı bağlantı noktasına erişilemiyorsa portalda Düğümler Bulunamadı gibi bir ileti görüntülenir ve düğüm ve uygulama listenize boş görünür. Kümenizi Azure portalında görmek istiyorsanız yük dengeleyicinizin genel ip adresini kullanıma sunması ve ağ güvenlik grubunuzun gelen bağlantı noktası 19080 trafiğine izin vermesi gerekir. Kurulumunuz bu gereksinimleri karşılamıyorsa Azure portalı kümenizin durumunu görüntülemez.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Şablonlar

Tüm Service Fabric şablonları GitHub'dadır. Aşağıdaki PowerShell komutlarını kullanarak şablonları olduğu gibi dağıtabilmeniz gerekir. Mevcut Azure Sanal Ağ şablonunu veya statik genel IP şablonunu dağıtıyorsanız, önce bu makalenin İlk kurulum bölümünü okuyun.

İlk kurulum

Var olan sanal ağ

Aşağıdaki örnekte, ExistingRG kaynak grubundaki ExistingRG-vnet adlı mevcut bir sanal ağ ile başlayacağız. Alt ağ varsayılan olarak adlandırılır. Bu varsayılan kaynaklar, standart bir sanal makine (VM) oluşturmak için Azure portalını kullandığınızda oluşturulur. SANAL makineyi oluşturmadan sanal ağı ve alt ağı oluşturabilirsiniz, ancak mevcut bir sanal ağa küme eklemenin temel amacı diğer VM'lere ağ bağlantısı sağlamaktır. VM'nin oluşturulması, mevcut bir sanal ağın normalde nasıl kullanıldığına ilişkin iyi bir örnek verir. Service Fabric kümeniz genel IP adresi olmayan yalnızca bir iç yük dengeleyici kullanıyorsa VM'yi ve genel IP'sini güvenli atlama kutusu olarak kullanabilirsiniz.

Statik genel IP adresi

Statik genel IP adresi genellikle atandığı VM veya VM'lerden ayrı olarak yönetilen ayrılmış bir kaynaktır. Ayrılmış bir ağ kaynak grubunda sağlanır (Service Fabric kümesi kaynak grubunun kendisinden farklı olarak). Azure portalında veya PowerShell kullanarak aynı ExistingRG kaynak grubunda staticIP1 adlı bir statik genel IP adresi oluşturun:

PS C:\Users\user> New-AzPublicIpAddress -Name staticIP1 -ResourceGroupName ExistingRG -Location westus -AllocationMethod Static -DomainNameLabel sfnetworking

Name                     : staticIP1
ResourceGroupName        : ExistingRG
Location                 : westus
Id                       : /subscriptions/1237f4d2-3dce-1236-ad95-123f764e7123/resourceGroups/ExistingRG/providers/Microsoft.Network/publicIPAddresses/staticIP1
Etag                     : W/"fc8b0c77-1f84-455d-9930-0404ebba1b64"
ResourceGuid             : 77c26c06-c0ae-496c-9231-b1a114e08824
ProvisioningState        : Succeeded
Tags                     :
PublicIpAllocationMethod : Static
IpAddress                : 40.83.182.110
PublicIpAddressVersion   : IPv4
IdleTimeoutInMinutes     : 4
IpConfiguration          : null
DnsSettings              : {
                             "DomainNameLabel": "sfnetworking",
                             "Fqdn": "sfnetworking.westus.cloudapp.azure.com"
                           }

Service Fabric şablonu

Bu makaledeki örneklerde Service Fabric template.json kullanılır. Küme oluşturmadan önce şablonu portaldan indirmek için standart portal sihirbazını kullanabilirsiniz. Ayrıca, güvenli beş düğümlü Service Fabric kümesi gibi örnek şablonlardan birini de kullanabilirsiniz.

Mevcut sanal ağ veya alt ağ

  1. Alt ağ parametresini mevcut alt ağın adıyla değiştirin ve ardından mevcut sanal ağa başvurmak için iki yeni parametre ekleyin:

        "subnet0Name": {
                "type": "string",
                "defaultValue": "default"
            },
            "existingVNetRGName": {
                "type": "string",
                "defaultValue": "ExistingRG"
            },
    
            "existingVNetName": {
                "type": "string",
                "defaultValue": "ExistingRG-vnet"
            },
            /*
            "subnet0Name": {
                "type": "string",
                "defaultValue": "Subnet-0"
            },
            "subnet0Prefix": {
                "type": "string",
                "defaultValue": "10.0.0.0/24"
            },*/
    

    Ayrıca, Azure portalındaki küme dağıtımı dikey penceresinde sanal ağ adını iki kez girmenizi istememesi için parametresine "virtualNetworkName" adıyla açıklama ekleyebilirsiniz.

  2. Var olan alt ağı kullandığınızdan Microsoft.Compute/virtualMachineScaleSetsve 1. adımda bu değişkeni devre dışı bırakmış olduğunuzdan, özniteliğini açıklama satırı nicPrefixOverride yap.

            /*"nicPrefixOverride": "[parameters('subnet0Prefix')]",*/
    
  3. Değişkenini vnetID var olan sanal ağa işaret eden şekilde değiştirin:

            /*old "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]",*/
            "vnetID": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('existingVNetRGName'), '/providers/Microsoft.Network/virtualNetworks/', parameters('existingVNetName'))]",
    
  4. Azure'ın yeni bir sanal ağ oluşturmaması için kaynaklarınızdan kaldırın Microsoft.Network/virtualNetworks :

    /*{
    "apiVersion": "[variables('vNetApiVersion')]",
    "type": "Microsoft.Network/virtualNetworks",
    "name": "[parameters('virtualNetworkName')]",
    "location": "[parameters('computeLocation')]",
    "properties": {
        "addressSpace": {
            "addressPrefixes": [
                "[parameters('addressPrefix')]"
            ]
        },
        "subnets": [
            {
                "name": "[parameters('subnet0Name')]",
                "properties": {
                    "addressPrefix": "[parameters('subnet0Prefix')]"
                }
            }
        ]
    },
    "tags": {
        "resourceType": "Service Fabric",
        "clusterName": "[parameters('clusterName')]"
    }
    },*/
    
  5. Özniteliğinden dependsOn sanal ağı açıklama Microsoft.Compute/virtualMachineScaleSetssatırı yapma, böylece yeni bir sanal ağ oluşturmaya bağımlı olmazsınız:

    "apiVersion": "[variables('vmssApiVersion')]",
    "type": "Microsoft.Computer/virtualMachineScaleSets",
    "name": "[parameters('vmNodeType0Name')]",
    "location": "[parameters('computeLocation')]",
    "dependsOn": [
        /*"[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]",
        */
        "[Concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0])]",
    
    
  6. Şablonu dağıtın:

    New-AzResourceGroup -Name sfnetworkingexistingvnet -Location westus
    New-AzResourceGroupDeployment -Name deployment -ResourceGroupName sfnetworkingexistingvnet -TemplateFile C:\SFSamples\Final\template\_existingvnet.json
    

    Dağıtımdan sonra sanal ağınız yeni ölçek kümesi VM'lerini içermelidir. Sanal makine ölçek kümesi düğüm türü mevcut sanal ağı ve alt ağı göstermelidir. Ayrıca Uzak Masaüstü Protokolü'nü (RDP) kullanarak sanal ağda zaten bulunan VM'ye erişebilir ve yeni ölçek kümesi VM'lerine ping yapabilirsiniz:

    C:>\Users\users>ping 10.0.0.5 -n 1
    C:>\Users\users>ping NOde1000000 -n 1
    

Başka bir örnek için Bkz . Service Fabric'e özgü olmayan bir örnek.

Statik genel IP adresi

  1. Mevcut statik IP kaynak grubunun adı, adı ve tam etki alanı adı (FQDN) için parametreler ekleyin:

    "existingStaticIPResourceGroup": {
                "type": "string"
            },
            "existingStaticIPName": {
                "type": "string"
            },
            "existingStaticIPDnsFQDN": {
                "type": "string"
    }
    
  2. parametresini dnsName kaldırın. (Statik IP adresi zaten bir ip adresine sahip.)

    /*
    "dnsName": {
        "type": "string"
    },
    */
    
  3. Var olan statik IP adresine başvurmak için bir değişken ekleyin:

    "existingStaticIP": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('existingStaticIPResourceGroup'), '/providers/Microsoft.Network/publicIPAddresses/', parameters('existingStaticIPName'))]",
    
  4. Azure'ın yeni bir IP adresi oluşturmaması için kaynaklarınızdan kaldırın Microsoft.Network/publicIPAddresses :

    /*
    {
        "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')]"
        }
    }, */
    
  5. Ip adresini özniteliğinden dependsOn Microsoft.Network/loadBalancersaçıklama satırı yapma, böylece yeni bir IP adresi oluşturmaya bağımlı olmazsınız:

    "apiVersion": "[variables('lbIPApiVersion')]",
    "type": "Microsoft.Network/loadBalancers",
    "name": "[concat('LB', '-', parameters('clusterName'), '-', parameters('vmNodeType0Name'))]",
    "location": "[parameters('computeLocation')]",
    /*
    "dependsOn": [
        "[concat('Microsoft.Network/publicIPAddresses/', concat(parameters('lbIPName'), '-', '0'))]"
    ], */
    "properties": {
    
  6. Kaynakta Microsoft.Network/loadBalancers öğesinifrontendIPConfigurations, yeni oluşturulan ip adresi yerine var olan statik IP adresine başvuracak şekilde değiştirinpublicIPAddress:

                "frontendIPConfigurations": [
                        {
                            "name": "LoadBalancerIPConfig",
                            "properties": {
                                "publicIPAddress": {
                                    /*"id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]"*/
                                    "id": "[variables('existingStaticIP')]"
                                }
                            }
                        }
                    ],
    
  7. Kaynakta Microsoft.ServiceFabric/clusters , statik IP adresinin DNS FQDN'sine geçin managementEndpoint . Güvenli bir küme kullanıyorsanız, http:// https:// olarak değiştirdiğinizden emin olun. (Bu adımın yalnızca Service Fabric kümeleri için geçerli olduğunu unutmayın. Sanal makine ölçek kümesi kullanıyorsanız bu adımı atlayın.)

                    "fabricSettings": [],
                    /*"managementEndpoint": "[concat('http://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]",*/
                    "managementEndpoint": "[concat('http://',parameters('existingStaticIPDnsFQDN'),':',parameters('nt0fabricHttpGatewayPort'))]",
    
  8. Şablonu dağıtın:

    New-AzResourceGroup -Name sfnetworkingstaticip -Location westus
    
    $staticip = Get-AzPublicIpAddress -Name staticIP1 -ResourceGroupName ExistingRG
    
    $staticip
    
    New-AzResourceGroupDeployment -Name deployment -ResourceGroupName sfnetworkingstaticip -TemplateFile C:\SFSamples\Final\template\_staticip.json -existingStaticIPResourceGroup $staticip.ResourceGroupName -existingStaticIPName $staticip.Name -existingStaticIPDnsFQDN $staticip.DnsSettings.Fqdn
    

Dağıtımdan sonra yük dengeleyicinizin diğer kaynak grubundan genel statik IP adresine bağlı olduğunu görebilirsiniz. Service Fabric istemci bağlantı uç noktası ve Service Fabric Explorer uç noktası statik IP adresinin DNS FQDN'sini gösterir.

Yalnızca iç yük dengeleyici

Bu senaryo, varsayılan Service Fabric şablonundaki dış yük dengeleyiciyi yalnızca iç yük dengeleyici ile değiştirir. Azure portalının ve Service Fabric kaynak sağlayıcısının etkileri için makalenin önceki bölümüne bakın.

  1. parametresini dnsName kaldırın. (Gerekli değildir.)

    /*
    "dnsName": {
        "type": "string"
    },
    */
    
  2. İsteğe bağlı olarak, statik ayırma yöntemi kullanırsanız statik IP adresi parametresi ekleyebilirsiniz. Dinamik ayırma yöntemi kullanıyorsanız, bu adımı uygulamanız gerekmez.

            "internalLBAddress": {
                "type": "string",
                "defaultValue": "10.0.0.250"
            }
    
  3. Azure'ın yeni bir IP adresi oluşturmaması için kaynaklarınızdan kaldırın Microsoft.Network/publicIPAddresses :

    /*
    {
        "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')]"
        }
    }, */
    
  4. ip adresi dependsOn özniteliğini Microsoft.Network/loadBalancerskaldırın, böylece yeni bir IP adresi oluşturmaya bağımlı olmazsınız. Yük dengeleyici artık sanal ağdan alt ağa dependsOn bağlı olduğundan sanal ağ özniteliğini ekleyin:

                "apiVersion": "[variables('lbApiVersion')]",
                "type": "Microsoft.Network/loadBalancers",
                "name": "[concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name'))]",
                "location": "[parameters('computeLocation')]",
                "dependsOn": [
                    /*"[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]"*/
                    "[concat('Microsoft.Network/virtualNetworks/',parameters('virtualNetworkName'))]"
                ],
    
  5. Yük dengeleyicinin frontendIPConfigurations ayarını kullanarak alt publicIPAddressağ ve privateIPAddressolarak değiştirin. privateIPAddress önceden tanımlanmış bir statik iç IP adresi kullanır. Dinamik IP adresi kullanmak için öğesini kaldırın privateIPAddress ve Dinamik olarak değiştirinprivateIPAllocationMethod.

                "frontendIPConfigurations": [
                        {
                            "name": "LoadBalancerIPConfig",
                            "properties": {
                                /*
                                "publicIPAddress": {
                                    "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]"
                                } */
                                "subnet" :{
                                    "id": "[variables('subnet0Ref')]"
                                },
                                "privateIPAddress": "[parameters('internalLBAddress')]",
                                "privateIPAllocationMethod": "Static"
                            }
                        }
                    ],
    
  6. Kaynakta Microsoft.ServiceFabric/clusters , iç yük dengeleyici adresini işaret eden şekilde değiştirin managementEndpoint . Güvenli bir küme kullanıyorsanız, http:// https:// olarak değiştirdiğinizden emin olun. (Bu adımın yalnızca Service Fabric kümeleri için geçerli olduğunu unutmayın. Sanal makine ölçek kümesi kullanıyorsanız bu adımı atlayın.)

                    "fabricSettings": [],
                    /*"managementEndpoint": "[concat('http://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]",*/
                    "managementEndpoint": "[concat('http://',reference(variables('lbID0')).frontEndIPConfigurations[0].properties.privateIPAddress,':',parameters('nt0fabricHttpGatewayPort'))]",
    
  7. Şablonu dağıtın:

    New-AzResourceGroup -Name sfnetworkinginternallb -Location westus
    
    New-AzResourceGroupDeployment -Name deployment -ResourceGroupName sfnetworkinginternallb -TemplateFile C:\SFSamples\Final\template\_internalonlyLB.json
    

Dağıtımdan sonra yük dengeleyiciniz özel statik 10.0.0.250 IP adresini kullanır. Aynı sanal ağda başka bir makineniz varsa, iç Service Fabric Explorer uç noktasına gidebilirsiniz. Yük dengeleyicinin arkasındaki düğümlerden birine bağlandığını unutmayın.

İç ve dış yük dengeleyici

Bu senaryoda, mevcut tek düğümlü tür dış yük dengeleyici ile başlarsınız ve aynı düğüm türü için bir iç yük dengeleyici eklersiniz. Arka uç adres havuzuna bağlı arka uç bağlantı noktası yalnızca tek bir yük dengeleyiciye atanabilir. Hangi yük dengeleyicinin uygulama bağlantı noktalarınıza sahip olacağını ve hangi yük dengeleyicinin yönetim uç noktalarınıza (19000 ve 19080 bağlantı noktaları) sahip olacağını seçin. Yönetim uç noktalarını iç yük dengeleyiciye koyarsanız, makalenin önceki bölümlerinde açıklanan Service Fabric kaynak sağlayıcısı kısıtlamalarını göz önünde bulundurun. Kullandığımız örnekte yönetim uç noktaları dış yük dengeleyicide kalır. Ayrıca bir bağlantı noktası 80 uygulama bağlantı noktası ekler ve bunu iç yük dengeleyiciye yerleştirirsiniz.

İki düğümlü bir kümede, dış yük dengeleyicide bir düğüm türü vardır. Diğer düğüm türü iç yük dengeleyicidedir. İki düğümlü bir küme kullanmak için portal tarafından oluşturulan iki düğümlü tür şablonunda (iki yük dengeleyiciyle birlikte gelir), ikinci yük dengeleyiciyi iç yük dengeleyiciye geçirin. Daha fazla bilgi için Yalnızca iç yük dengeleyici bölümüne bakın.

  1. Statik iç yük dengeleyici IP adresi parametresini ekleyin. (Dinamik IP adresi kullanımıyla ilgili notlar için bu makalenin önceki bölümlerine bakın.)

            "internalLBAddress": {
                "type": "string",
                "defaultValue": "10.0.0.250"
            }
    
  2. Bir uygulama bağlantı noktası 80 parametresi ekleyin.

  3. Mevcut ağ değişkenlerinin iç sürümlerini eklemek için bunları kopyalayıp yapıştırın ve ada "-Int" ekleyin:

    /* Add internal load balancer networking variables */
            "lbID0-Int": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name'), '-Internal'))]",
            "lbIPConfig0-Int": "[concat(variables('lbID0-Int'),'/frontendIPConfigurations/LoadBalancerIPConfig')]",
            "lbPoolID0-Int": "[concat(variables('lbID0-Int'),'/backendAddressPools/LoadBalancerBEAddressPool')]",
            "lbProbeID0-Int": "[concat(variables('lbID0-Int'),'/probes/FabricGatewayProbe')]",
            "lbHttpProbeID0-Int": "[concat(variables('lbID0-Int'),'/probes/FabricHttpGatewayProbe')]",
            "lbNatPoolID0-Int": "[concat(variables('lbID0-Int'),'/inboundNatPools/LoadBalancerBEAddressNatPool')]",
            /* Internal load balancer networking variables end */
    
  4. 80 numaralı uygulama bağlantı noktasını kullanan portal tarafından oluşturulan şablonla başlarsanız, varsayılan portal şablonu dış yük dengeleyiciye AppPort1 (bağlantı noktası 80) ekler. Bu durumda, iç yük dengeleyiciye ekleyebilmeniz için AppPort1'i dış yük dengeleyiciden loadBalancingRules ve yoklamalardan kaldırın:

    "loadBalancingRules": [
        {
            "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"
            }
        } /* Remove AppPort1 from the external load balancer.
        {
            "name": "AppPortLBRule1",
            "properties": {
                "backendAddressPool": {
                    "id": "[variables('lbPoolID0')]"
                },
                "backendPort": "[parameters('loadBalancedAppPort1')]",
                "enableFloatingIP": "false",
                "frontendIPConfiguration": {
                    "id": "[variables('lbIPConfig0')]"            
                },
                "frontendPort": "[parameters('loadBalancedAppPort1')]",
                "idleTimeoutInMinutes": "5",
                "probe": {
                    "id": "[concate(variables('lbID0'), '/probes/AppPortProbe1')]"
                },
                "protocol": "tcp"
            }
        }*/
    
    ],
    "probes": [
        {
            "name": "FabricGatewayProbe",
            "properties": {
                "intervalInSeconds": 5,
                "numberOfProbes": 2,
                "port": "[parameters('nt0fabricTcpGatewayPort')]",
                "protocol": "tcp"
            }
        },
        {
            "name": "FabricHttpGatewayProbe",
            "properties": {
                "intervalInSeconds": 5,
                "numberOfProbes": 2,
                "port": "[parameters('nt0fabricHttpGatewayPort')]",
                "protocol": "tcp"
            }
        } /* Remove AppPort1 from the external load balancer.
        {
            "name": "AppPortProbe1",
            "properties": {
                "intervalInSeconds": 5,
                "numberOfProbes": 2,
                "port": "[parameters('loadBalancedAppPort1')]",
                "protocol": "tcp"
            }
        } */
    
    ],
    "inboundNatPools": [
    
  5. İkinci Microsoft.Network/loadBalancers bir kaynak ekleyin. Yalnızca iç yük dengeleyici bölümünde oluşturulan iç yük dengeleyiciye benzer, ancak "-Int" yük dengeleyici değişkenlerini kullanır ve yalnızca uygulama bağlantı noktası 80'i uygular. Bu, RDP uç noktalarını genel yük dengeleyicide tutmak için öğesini de kaldırır inboundNatPools. RDP'nin iç yük dengeleyicide olmasını istiyorsanız, dış yük dengeleyiciden bu iç yük dengeleyiciye geçin inboundNatPools :

            /* Add a second load balancer, configured with a static privateIPAddress and the "-Int" load balancer variables. */
            {
                "apiVersion": "[variables('lbApiVersion')]",
                "type": "Microsoft.Network/loadBalancers",
                /* Add "-Internal" to the name. */
                "name": "[concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name'), '-Internal')]",
                "location": "[parameters('computeLocation')]",
                "dependsOn": [
                    /* Remove public IP dependsOn, add vnet dependsOn
                    "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]"
                    */
                    "[concat('Microsoft.Network/virtualNetworks/',parameters('virtualNetworkName'))]"
                ],
                "properties": {
                    "frontendIPConfigurations": [
                        {
                            "name": "LoadBalancerIPConfig",
                            "properties": {
                                /* Switch from Public to Private IP address
                                */
                                "publicIPAddress": {
                                    "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]"
                                }
                                */
                                "subnet" :{
                                    "id": "[variables('subnet0Ref')]"
                                },
                                "privateIPAddress": "[parameters('internalLBAddress')]",
                                "privateIPAllocationMethod": "Static"
                            }
                        }
                    ],
                    "backendAddressPools": [
                        {
                            "name": "LoadBalancerBEAddressPool",
                            "properties": {}
                        }
                    ],
                    "loadBalancingRules": [
                        /* Add the AppPort rule. Be sure to reference the "-Int" versions of backendAddressPool, frontendIPConfiguration, and the probe variables. */
                        {
                            "name": "AppPortLBRule1",
                            "properties": {
                                "backendAddressPool": {
                                    "id": "[variables('lbPoolID0-Int')]"
                                },
                                "backendPort": "[parameters('loadBalancedAppPort1')]",
                                "enableFloatingIP": "false",
                                "frontendIPConfiguration": {
                                    "id": "[variables('lbIPConfig0-Int')]"
                                },
                                "frontendPort": "[parameters('loadBalancedAppPort1')]",
                                "idleTimeoutInMinutes": "5",
                                "probe": {
                                    "id": "[concat(variables('lbID0-Int'),'/probes/AppPortProbe1')]"
                                },
                                "protocol": "tcp"
                            }
                        }
                    ],
                    "probes": [
                    /* Add the probe for the app port. */
                    {
                            "name": "AppPortProbe1",
                            "properties": {
                                "intervalInSeconds": 5,
                                "numberOfProbes": 2,
                                "port": "[parameters('loadBalancedAppPort1')]",
                                "protocol": "tcp"
                            }
                        }
                    ],
                    "inboundNatPools": [
                    ]
                },
                "tags": {
                    "resourceType": "Service Fabric",
                    "clusterName": "[parameters('clusterName')]"
                }
            },
    
  6. networkProfile Kaynak için Microsoft.Compute/virtualMachineScaleSets içine iç arka uç adres havuzunu ekleyin:

    "loadBalancerBackendAddressPools": [
                                                        {
                                                            "id": "[variables('lbPoolID0')]"
                                                        },
                                                        {
                                                            /* Add internal BE pool */
                                                            "id": "[variables('lbPoolID0-Int')]"
                                                        }
    ],
    
  7. Şablonu dağıtın:

    New-AzResourceGroup -Name sfnetworkinginternalexternallb -Location westus
    
    New-AzResourceGroupDeployment -Name deployment -ResourceGroupName sfnetworkinginternalexternallb -TemplateFile C:\SFSamples\Final\template\_internalexternalLB.json
    

Dağıtımdan sonra kaynak grubunda iki yük dengeleyici görebilirsiniz. Yük dengeleyicilere göz atarsanız, genel IP adresine atanmış genel IP adresini ve yönetim uç noktalarını (19000 ve 19080 bağlantı noktaları) görebilirsiniz. Ayrıca, iç yük dengeleyiciye atanmış statik iç IP adresini ve uygulama uç noktasını (bağlantı noktası 80) görebilirsiniz. Her iki yük dengeleyici de aynı sanal makine ölçek kümesi arka uç havuzunu kullanır.

Üretim iş yükleri için notlar

Yukarıdaki GitHub şablonları, Temel SKU olan Azure Standart Load Balancer (SLB) için varsayılan SKU ile çalışacak şekilde tasarlanmıştır. Temel SKU LB'nin SLA'sı yoktur, bu nedenle üretim iş yükleri için Standart SKU kullanılmalıdır. Bu konuda daha fazla bilgi için bkz. Azure Standart Load Balancer genel bakış. SLB için Standart SKU kullanan herhangi bir Service Fabric kümesinin, her düğüm türünün 443 numaralı bağlantı noktasında giden trafiğe izin veren bir kuralı olduğundan emin olması gerekir. Bu, küme kurulumunu tamamlamak için gereklidir ve böyle bir kural olmadan yapılan tüm dağıtımlar başarısız olur. Yukarıdaki "yalnızca iç" yük dengeleyici örneğinde, 443 numaralı bağlantı noktası için giden trafiğe izin veren bir kural ile şablona ek bir dış yük dengeleyici eklenmelidir.

Sonraki adımlar

Küme oluşturma