Konfigurera nätverksinställningar för Service Fabric-hanterade kluster
Service Fabric-hanterade kluster skapas med en standardkonfiguration för nätverk. Den här konfigurationen består av en Azure Load Balancer med en offentlig IP-adress, ett virtuellt nätverk med ett allokerat undernät och en NSG som konfigurerats för viktiga klusterfunktioner. Det finns också valfria NSG-regler som används, till exempel att tillåta all utgående trafik som standard som är avsedd att göra kundkonfigurationen enklare. Det här dokumentet beskriver hur du ändrar följande konfigurationsalternativ för nätverk med mera:
- Hantera NSG-regler
- Hantera RDP-åtkomst
- Hantera load balancer-konfiguration
- Aktivera offentlig IP-adress
- Aktivera IPv6
- Ta med ditt eget virtuella nätverk
- Ta med din egen lastbalanserare
- Aktivera accelererat nätverk
- Konfigurera extra undernät
Hantera NSG-regler
Vägledning om NSG-regler
Tänk på dessa överväganden när du skapar nya NSG-regler för ditt hanterade kluster.
- Service Fabric-hanterade kluster reserverar NSG-regelns prioritetsintervall 0 till 999 för viktiga funktioner. Du kan inte skapa anpassade NSG-regler med ett prioritetsvärde på mindre än 1 000.
- Service Fabric-hanterade kluster reserverar prioritetsintervallet 3001 till 4 000 för att skapa valfria NSG-regler. Dessa regler läggs till automatiskt för att göra konfigurationerna snabba och enkla. Du kan åsidosätta dessa regler genom att lägga till anpassade NSG-regler i prioritetsintervallet 1000 till 3 000.
- Anpassade NSG-regler bör ha en prioritet inom intervallet 1000 till 3 000.
Tillämpa NSG-regler
Med Service Fabric-hanterade kluster kan du tilldela NSG-regler direkt i klusterresursen i distributionsmallen.
Använd egenskapen networkSecurityRules för din Microsoft.ServiceFabric/managedclusters-resurs (version 2021-05-01
eller senare) för att tilldela NSG-regler. Till exempel:
{
"apiVersion": "2021-05-01",
"type": "Microsoft.ServiceFabric/managedclusters",
"properties": {
"networkSecurityRules": [
{
"name": "AllowCustomers",
"protocol": "*",
"sourcePortRange": "*",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"destinationPortRange": "33000-33499",
"access": "Allow",
"priority": 2001,
"direction": "Inbound"
},
{
"name": "AllowARM",
"protocol": "*",
"sourcePortRange": "*",
"sourceAddressPrefix": "AzureResourceManager",
"destinationAddressPrefix": "*",
"destinationPortRange": "33500-33699",
"access": "Allow",
"priority": 2002,
"direction": "Inbound"
},
{
"name": "DenyCustomers",
"protocol": "*",
"sourcePortRange": "*",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "*",
"destinationPortRange": "33700-33799",
"access": "Deny",
"priority": 2003,
"direction": "Outbound"
},
{
"name": "DenyRDP",
"protocol": "*",
"sourcePortRange": "*",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "VirtualNetwork",
"destinationPortRange": "3389",
"access": "Deny",
"priority": 2004,
"direction": "Inbound",
"description": "Override for optional SFMC_AllowRdpPort rule. This is required in tests to avoid Sev2 incident for security policy violation."
}
],
"fabricSettings": [
"..."
]
}
}
Standardregler och valfria regler för ClientConnection och HttpGatewayConnection
NSG-regel: SFMC_AllowServiceFabricGatewayToSFRP
En standardregel för NSG läggs till för att ge Service Fabric-resursprovidern åtkomst till klustrets clientConnectionPort och httpGatewayConnectionPort. Den här regeln tillåter åtkomst till portarna via tjänsttaggen ServiceFabric
.
Kommentar
Den här regeln läggs alltid till och kan inte åsidosättas.
{
"name": "SFMC_AllowServiceFabricGatewayToSFRP",
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"properties": {
"description": "This is required rule to allow SFRP to connect to the cluster. This rule can't be overridden.",
"protocol": "TCP",
"sourcePortRange": "*",
"sourceAddressPrefix": "ServiceFabric",
"destinationAddressPrefix": "VirtualNetwork",
"access": "Allow",
"priority": 500,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [
"19000",
"19080"
]
}
}
NSG-regel: SFMC_AllowServiceFabricGatewayPorts
Den här valfria regeln gör det möjligt för kunder att komma åt SFX, ansluta till klustret med hjälp av PowerShell och använda Service Fabric-kluster-API-slutpunkter från Internet genom att öppna LB-portar för clientConnectionPort och httpGatewayPort.
Kommentar
Den här regeln läggs inte till om det finns en anpassad regel med samma åtkomst-, riktnings- och protokollvärden för samma port. Du kan åsidosätta den här regeln med anpassade NSG-regler.
{
"name": "SFMC_AllowServiceFabricGatewayPorts",
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"properties": {
"description": "Optional rule to open SF cluster gateway ports. To override add a custom NSG rule for gateway ports in priority range 1000-3000.",
"protocol": "tcp",
"sourcePortRange": "*",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "VirtualNetwork",
"access": "Allow",
"priority": 3001,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [
"19000",
"19080"
]
}
}
Aktivera åtkomst till RDP-portar från Internet
Service Fabric-hanterade kluster aktiverar inte inkommande åtkomst till RDP-portarna från Internet som standard. Du kan öppna inkommande åtkomst till RDP-portarna från Internet genom att ange följande egenskap på en Service Fabric-hanterad klusterresurs.
"allowRDPAccess": true
När egenskapen allowRDPAccess är inställd på true läggs följande NSG-regel till i klusterdistributionen.
{
"name": "SFMC_AllowRdpPort",
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"properties": {
"description": "Optional rule to open RDP ports.",
"protocol": "tcp",
"sourcePortRange": "*",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "VirtualNetwork",
"access": "Allow",
"priority": 3002,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRange": "3389"
}
}
Service Fabric-hanterade kluster skapar automatiskt inkommande NAT-regler för varje instans i en nodtyp. Följ stegen nedan för att hitta portmappningarna för att nå specifika instanser (klusternoder):
Med hjälp av Azure Portal letar du reda på det hanterade kluster som skapats inkommande NAT-regler för RDP (Remote Desktop Protocol).
Gå till resursgruppen för det hanterade klustret i din prenumeration med namnet med följande format: SFC_{cluster-id}
Välj lastbalanseraren för klustret med följande format: LB-{cluster-name}
På sidan för lastbalanseraren väljer du Inkommande NAT-regler. Granska de inkommande NAT-reglerna för att bekräfta den inkommande klientdelsporten till målportmappningen för en nod.
Följande skärmbild visar de inkommande NAT-reglerna för tre olika nodtyper:
För Windows-kluster är klientdelsporten som standard inom intervallet 50000 och högre och målporten är port 3389, som mappar till RDP-tjänsten på målnoden.
Kommentar
Om du använder FUNKTIONEN BYOLB och vill ha RDP måste du konfigurera en NAT-pool separat för att göra det. Detta skapar inte automatiskt några NAT-regler för dessa nodtyper.
Fjärranslutning till den specifika noden (skalningsuppsättningsinstans). Du kan använda användarnamnet och lösenordet som du angav när du skapade klustret eller andra autentiseringsuppgifter som du har konfigurerat.
Följande skärmbild visar hur du använder anslutning till fjärrskrivbord för att ansluta till appnoden (instans 0) i ett Windows-kluster:
Ändra standardkonfigurationen för lastbalanserare
Portar för lastbalanserare
Service Fabric-hanterade kluster skapar en NSG-regel i standardprioritetsintervallet för alla lastbalanseringsportar (LB) som konfigurerats under avsnittet "loadBalancingRules" under ManagedCluster-egenskaper . Den här regeln öppnar LB-portar för inkommande trafik från Internet.
Kommentar
Den här regeln läggs till i det valfria prioritetsintervallet och kan åsidosättas genom att lägga till anpassade NSG-regler.
{
"name": "SFMC_AllowLoadBalancedPorts",
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"properties": {
"description": "Optional rule to open LB ports",
"protocol": "*",
"sourcePortRange": "*",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "VirtualNetwork",
"access": "Allow",
"priority": 3003,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [
"80", "8080", "4343"
]
}
}
Avsökningar för lastbalanserare
Service Fabric-hanterade kluster skapar automatiskt lastbalanseringsavsökningar för infrastrukturgatewayportar och alla portar som konfigurerats under loadBalancingRules
avsnittet med egenskaper för hanterade kluster.
{
"value": [
{
"name": "FabricTcpGateway",
"properties": {
"provisioningState": "Succeeded",
"protocol": "Tcp",
"port": 19000,
"intervalInSeconds": 5,
"numberOfProbes": 2,
"loadBalancingRules": [
{
"id": "<>"
}
]
},
"type": "Microsoft.Network/loadBalancers/probes"
},
{
"name": "FabricHttpGateway",
"properties": {
"provisioningState": "Succeeded",
"protocol": "Tcp",
"port": 19080,
"intervalInSeconds": 5,
"numberOfProbes": 2,
"loadBalancingRules": [
{
"id": "<>"
}
]
},
"type": "Microsoft.Network/loadBalancers/probes"
},
{
"name": "probe1_tcp_8080",
"properties": {
"provisioningState": "Succeeded",
"protocol": "Tcp",
"port": 8080,
"intervalInSeconds": 5,
"numberOfProbes": 2,
"loadBalancingRules": [
{
"id": "<>"
}
]
},
"type": "Microsoft.Network/loadBalancers/probes"
}
]
}
Aktivera offentlig IP-adress
Kommentar
För närvarande stöds endast offentlig IPv4.
Service Fabric-hanterade klusternoder kräver inte egna offentliga IP-adresser för kommunikation. Vissa scenarier kan dock kräva att en nod har en egen offentlig IP-adress för att kommunicera med Internet och offentliga Azure-tjänster. Till exempel:
- Spel, där en konsol måste upprätta en direktanslutning till en virtuell molndator som bearbetar spelfysik.
- Virtuella datorer som behöver upprätta externa anslutningar till varandra mellan regioner i en distribuerad databas.
Mer information om utgående anslutningar i Azure finns i Förstå utgående anslutningar.
Offentlig IP-adress kan endast aktiveras på sekundära nodtyper eftersom primära nodtyper är reserverade för Service Fabric-systemtjänster. Följ stegen i avsnittet Bring your own load balancer i den här artikeln för att skapa en sekundär nodtyp för ditt hanterade kluster.
Azure tilldelar dynamiskt tillgängliga IP-adresser.
Kommentar
Aktivering av offentlig IP-adress stöds endast via ARM-mall.
Följande steg beskriver hur du aktiverar offentlig IP-adress på noden.
Lägg till
enableNodePublicIP
i ARM-mallen för varje nodtyp i mallen:{ "name": "<secondary_node_type_name>", "apiVersion": "2023-02-01-preview", "properties": { "isPrimary" : false, "vmImageResourceId": "/subscriptions/<your_subscription_id>/resourceGroups/<your_resource_group>/providers/Microsoft.Compute/images/<your_custom_image>", "vmSize": "Standard_D2", "vmInstanceCount": 5, "dataDiskSizeGB": 100, "enableNodePublicIP": true } }
Kontrollera att du har en offentlig IP-adress på noderna genom att köra följande PowerShell-kommando:
az vmss list-instance-public-ips -g MC_MyResourceGroup2_MyManagedCluster_eastus -n YourVirtualMachineScaleSetName
Kommandot matas ut i JSON-format.
[ { "etag": "etag_0", "id": "<id_0/name>", "idleTimeoutInMinutes": 15, "ipAddress": "<ip_address_0>", "ipConfiguration": { "id": "<configuration_id_0>", "resourceGroup": "<your_resource_group>" }, "ipTags": [], "name": "<name>", "provisioningState": "Succeeded", "publicIPAddressVersion": "IPv4", "publicIPAllocationMethod": "Static", "resourceGroup": "<your_resource_group>", "resourceGuid": "resource_guid_0", "sku": { "name": "Standard" } }, { "etag": "etag_1", "id": "/<id_1/name>", "idleTimeoutInMinutes": 15, "ipAddress": "<ip_address_1>", "ipConfiguration": { "id": "<configuration_id_1>", "resourceGroup": "<your_resource_group>" }, "ipTags": [], "name": "<name>", "provisioningState": "Succeeded", "publicIPAddressVersion": "IPv4", "publicIPAllocationMethod": "Static", "resourceGroup": "<your_resource_group>", "resourceGuid": "resource_guid_1", "sku": { "name": "Standard" } }, { "etag": "etag_2", "id": "<id_2/name>", "idleTimeoutInMinutes": 15, "ipAddress": "<ip_address_2>", "ipConfiguration": { "id": "<configuration_id_2>", "resourceGroup": "<your_resource_group>" }, "ipTags": [], "name": "<name>", "provisioningState": "Succeeded", "publicIPAddressVersion": "IPv4", "publicIPAllocationMethod": "Static", "resourceGroup": "<your_resource_group>", "resourceGuid": "resource_guid_2", "sku": { "name": "Standard" } } ]
Aktivera IPv6
Hanterade kluster aktiverar inte IPv6 som standard. Den här funktionen möjliggör fullständig IPv4/IPv6-funktion med dubbla staplar från Load Balancer-klientdelen till serverdelsresurserna. Alla ändringar som du gör i konfigurationen av den hanterade klusterlastbalanseraren eller NSG-reglerna påverkar både IPv4- och IPv6-routningen.
Kommentar
Den här inställningen är inte tillgänglig i portalen och kan inte ändras när klustret har skapats.
- Den hanterade Service Fabric-klusterresursen apiVersion ska vara 2022-01-01 eller senare.
Ange följande egenskap för en Service Fabric-hanterad klusterresurs.
"resources": [ { "apiVersion": "[variables('sfApiVersion')]", "type": "Microsoft.ServiceFabric/managedclusters", ... "properties": { "enableIpv6": true }, } ]
Distribuera ditt IPv6-aktiverade hanterade kluster. Anpassa exempelmallen efter behov eller skapa en egen. I följande exempel skapar vi en resursgrupp som heter
MyResourceGroup
inwestus
och distribuerar ett kluster med den här funktionen aktiverad.New-AzResourceGroup -Name MyResourceGroup -Location westus New-AzResourceGroupDeployment -Name deployment -ResourceGroupName MyResourceGroup -TemplateFile AzureDeploy.json
Efter distributionen blir klustrens virtuella nätverk och resurser dubbla. Därför har klusterklientens lastbalanserare en unik dns-adress som skapats,
mycluster-ipv6.southcentralus.cloudapp.azure.com
till exempel som är associerad med en offentlig IPv6-adress på Azure Load Balancer och privata IPv6-adresser på de virtuella datorerna.
Ta med ditt eget virtuella nätverk
Med den här funktionen kan kunder använda ett befintligt virtuellt nätverk genom att ange ett dedikerat undernät som det hanterade klustret distribuerar sina resurser till. Detta kan vara användbart om du redan har ett konfigurerat virtuellt nätverk och undernät med relaterade säkerhetsprinciper och trafikroutning som du vill använda. När du har distribuerat till ett befintligt virtuellt nätverk är det enkelt att använda eller införliva andra nätverksfunktioner, till exempel Azure ExpressRoute, Azure VPN Gateway, en nätverkssäkerhetsgrupp och peering för virtuella nätverk. Dessutom kan du ta med din egen Azure Load Balancer om det behövs.
Kommentar
När du använder BYOVNET distribueras hanterade klusterresurser i ett undernät.
Kommentar
Den här inställningen kan inte ändras när klustret har skapats och det hanterade klustret tilldelar en NSG till det angivna undernätet. Åsidosätt inte NSG-tilldelningen eller så kan trafiken brytas.
Så här tar du med ditt eget virtuella nätverk:
Hämta tjänsten
Id
från din prenumeration för Service Fabric Resource Provider-programmet.Login-AzAccount Select-AzSubscription -SubscriptionId <SubId> Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
Kommentar
Kontrollera att du har rätt prenumeration, huvud-ID:t ändras om prenumerationen finns i en annan klientorganisation.
ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2} ApplicationId : 74cb6831-0dbb-4be1-8206-fd4df301cdc2 ObjectType : ServicePrincipal DisplayName : Azure Service Fabric Resource Provider Id : 00000000-0000-0000-0000-000000000000
Observera ID:t för föregående utdata som principalId för användning i ett senare steg
Namn på rolldefinition Rolldefinitions-ID Nätverksdeltagare 4d97b98b-1d4f-4787-a291-c67834d212e7 Observera egenskapsvärdena
Role definition name
ochRole definition ID
för användning i ett senare stegLägg till en rolltilldelning i Service Fabric Resource Provider-programmet. Att lägga till en rolltilldelning är en engångsåtgärd. Du lägger till rollen genom att köra följande PowerShell-kommandon eller genom att konfigurera en ARM-mall (Azure Resource Manager) enligt beskrivningen nedan.
I följande steg börjar vi med ett befintligt virtuellt nätverk med namnet ExistingRG-vnet i resursgruppen ExistingRG. Undernätet heter standard.
Hämta nödvändig information från det befintliga virtuella nätverket.
Login-AzAccount Select-AzSubscription -SubscriptionId <SubId> Get-AzVirtualNetwork -Name ExistingRG-vnet -ResourceGroupName ExistingRG
Observera följande undernätsnamn och
Id
egenskapsvärde som returneras frånSubnets
avsnittet i svaret som du ska använda i senare steg.Subnets:[ { ... "Id": "/subscriptions/<subscriptionId>/resourceGroups/Existing-RG/providers/Microsoft.Network/virtualNetworks/ExistingRG-vnet/subnets/default" }]
Kör följande PowerShell-kommando med huvud-ID, rolldefinitionsnamn från steg 2 och tilldelningsomfånget
Id
ovan:New-AzRoleAssignment -PrincipalId 00000000-0000-0000-0000-000000000000 -RoleDefinitionName "Network Contributor" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>"
Eller så kan du lägga till rolltilldelningen med hjälp av en ARM-mall (Azure Resource Manager) som konfigurerats med rätt värden för
principalId
,roleDefinitionId
,vnetName
ochsubnetName
:"type": "Microsoft.Authorization/roleAssignments", "apiVersion": "2020-04-01-preview", "name": "[parameters('VNetRoleAssignmentID')]", "scope": "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/', parameters('subnetName'))]", "dependsOn": [ "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]" ], "properties": { "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7')]", "principalId": "00000000-0000-0000-0000-000000000000" }
Kommentar
VNetRoleAssignmentID måste vara ett GUID. Om du distribuerar en mall igen, inklusive den här rolltilldelningen, kontrollerar du att GUID:t är samma som det som användes ursprungligen. Vi föreslår att du kör den här isolerade resursen eller tar bort den här resursen från klustermallen efter distributionen eftersom den bara behöver skapas en gång.
Här är en fullständig exempelmall för Azure Resource Manager (ARM) som skapar ett virtuellt nätverksundernät och utför rolltilldelning som du kan använda för det här steget.
subnetId
Konfigurera egenskapen för klusterdistributionen när rollen har konfigurerats enligt nedan:
Den hanterade Service Fabric-klusterresursen apiVersion ska vara 2022-01-01 eller senare.
"resources": [ { "apiVersion": "[variables('sfApiVersion')]", "type": "Microsoft.ServiceFabric/managedclusters", ... }, "properties": { "subnetId": "subnetId", ... } ]
Se exempelmallen bring your own virtual network cluster (Ta med ett eget virtuellt nätverkskluster) eller anpassa ditt eget.
Distribuera den konfigurerade ARM-mallen (Managed Cluster Azure Resource Manager).
I följande exempel skapar vi en resursgrupp som heter
MyResourceGroup
inwestus
och distribuerar ett kluster med den här funktionen aktiverad.New-AzResourceGroup -Name MyResourceGroup -Location westus New-AzResourceGroupDeployment -Name deployment -ResourceGroupName MyResourceGroup -TemplateFile AzureDeploy.json
När du tar med ditt eget virtuella nätverksundernät skapas och hanteras den offentliga slutpunkten fortfarande av resursprovidern, men i det konfigurerade undernätet. Med funktionen kan du inte ange den offentliga ip/återanvända statiska ip-adressen på Azure Load Balancer. Du kan använda din egen Azure Load Balancer tillsammans med den här funktionen eller själv om du behöver de eller andra lastbalanseringsscenarier som inte stöds internt.
Wehn klustret skapas, en nätverkssäkerhetsgrupp skapas i den hanterade resursgruppen för standardklusternivåundernätet. När en nodtyp skapas placeras den i det här undernätet och ärver automatiskt nätverkssäkerhetsgruppens regler, såvida du inte använder nodtypnivåundernät.
Bring your own virtual network har också stöd för undernät på nodtypsnivå, vilket gör att du kan placera nodtyper i separata undernät, vilket ger flexibilitet för olika nätverkskonfigurationer och konfigurationer.
"resources": [ { "apiVersion": "[variables('sfApiVersion')]", "type": "Microsoft.ServiceFabric/managedclusters/nodetypes", ... }, "properties": { "subnetId": "subnetId", ... } ]
Om du vill använda undernät på nodtypsnivå anger du
"useCustomVnet": true
i definitionen för det hanterade klustret. När"useCustomVnet"
är inställt påtrue
skapas inte ett standardklusterundernät. När du använder nodtypnivåundernätsubnetId
blir en obligatorisk egenskap i nodtypdefinitionen.Viktigt!
När du använder nodtypnivåundernät måste du tilldela en nätverkssäkerhetsgrupp till nodtypens undernät innan nodtypen skapas. Nätverkssäkerhetsgruppen måste innehålla den obligatoriska inkommande regeln SFMC_AllowServiceFabricGatewayToSFRP eller så misslyckas skapande av nodtyp.
Ta med din egen Azure Load Balancer
Hanterade kluster skapar en offentlig Standard Load Balancer i Azure och ett fullständigt kvalificerat domännamn med en statisk offentlig IP-adress för både de primära och sekundära nodtyperna. Med Bring Your Own Load Balancer kan du använda en befintlig Azure Load Balancer för sekundära nodtyper för både inkommande och utgående trafik. När du tar med din egen Azure Load Balancer kan du:
- Använda en förkonfigurerad statisk IP-adress för lastbalanserare för privat eller offentlig trafik
- Mappa en lastbalanserare till en viss nodtyp
- Konfigurera regler för nätverkssäkerhetsgrupp per nodtyp eftersom varje nodtyp distribueras i ett eget undernät
- Underhålla befintliga principer och kontroller som du kan ha på plats
- Konfigurera en intern lastbalanserare och använd standardlastbalanseraren för extern trafik
Kommentar
När du använder BYOVNET distribueras hanterade klusterresurser i ett undernät med en NSG oavsett ytterligare konfigurerade lastbalanserare.
Kommentar
Du kan inte växla från standardlastbalanseraren till en anpassad efter distributionen av en nodtyp, men du kan ändra den anpassade lastbalanserarens konfiguration efter distributionen om den är aktiverad.
Funktionskrav
- Standard SKU Azure Load Balancer-typen stöds
- Du måste ha serverdels- och NAT-pooler konfigurerade på Azure Load Balancer
- Du måste aktivera utgående anslutning antingen med hjälp av en angivet offentlig lastbalanserare eller den offentliga standardlastbalanseraren
Här är några exempel på scenarier som kunder kan använda detta för:
I det här exemplet vill en kund dirigera trafik via en befintlig Azure Load Balancer som konfigurerats med en befintlig statisk IP-adress till två nodtyper.
I det här exemplet vill en kund dirigera trafik via befintliga Azure Load Balancers för att hjälpa dem att hantera trafikflödet till sina program oberoende av varandra som finns på separata nodtyper. När du konfigurerar det här exemplet ligger varje nodtyp bakom sin egen hanterade NSG.
I det här exemplet vill en kund dirigera trafik via befintliga interna Azure Load Balancers. Detta hjälper dem att hantera trafikflödet till sina program oberoende av varandra som finns på separata nodtyper. När du konfigurerar som det här exemplet ligger varje nodtyp bakom sin egen hanterade NSG och använder standardlastbalanseraren för extern trafik.
Så här konfigurerar du med din egen lastbalanserare:
Hämta tjänsten
Id
från din prenumeration för Service Fabric Resource Provider-programmet:Login-AzAccount Select-AzSubscription -SubscriptionId <SubId> Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
Kommentar
Kontrollera att du har rätt prenumeration, huvud-ID:t ändras om prenumerationen finns i en annan klientorganisation.
ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2} ApplicationId : 74cb6831-0dbb-4be1-8206-fd4df301cdc2 ObjectType : ServicePrincipal DisplayName : Azure Service Fabric Resource Provider Id : 00000000-0000-0000-0000-000000000000
Observera ID:t för föregående utdata som principalId för användning i ett senare steg
Namn på rolldefinition Rolldefinitions-ID Nätverksdeltagare 4d97b98b-1d4f-4787-a291-c67834d212e7 Observera egenskapsvärdena
Role definition name
ochRole definition ID
för användning i ett senare stegLägg till en rolltilldelning i Service Fabric Resource Provider-programmet. Att lägga till en rolltilldelning är en engångsåtgärd. Du lägger till rollen genom att köra följande PowerShell-kommandon eller genom att konfigurera en ARM-mall (Azure Resource Manager) enligt beskrivningen nedan.
I följande steg börjar vi med en befintlig lastbalanserare med namnet Existing-LoadBalancer1 i resursgruppen Existing-RG.
Hämta nödvändig
Id
egenskapsinformation från den befintliga Azure Load Balancer.Login-AzAccount Select-AzSubscription -SubscriptionId <SubId> Get-AzLoadBalancer -Name "Existing-LoadBalancer1" -ResourceGroupName "Existing-RG"
Observera följande
Id
som du kommer att använda i nästa steg:{ ... "Id": "/subscriptions/<subscriptionId>/resourceGroups/Existing-RG/providers/Microsoft.Network/loadBalancers/Existing-LoadBalancer1" }
Kör följande PowerShell-kommando med huvud-ID, rolldefinitionsnamn från steg 2 och tilldelningsomfång
Id
som du precis fått:New-AzRoleAssignment -PrincipalId 00000000-0000-0000-0000-000000000000 -RoleDefinitionName "Network Contributor" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/loadBalancers/<LoadBalancerName>"
Eller så kan du lägga till rolltilldelningen med hjälp av en ARM-mall (Azure Resource Manager) som konfigurerats med rätt värden för
principalId
,roleDefinitionId
":"type": "Microsoft.Authorization/roleAssignments", "apiVersion": "2020-04-01-preview", "name": "[parameters('loadBalancerRoleAssignmentID')]", "scope": "[concat('Microsoft.Network/loadBalancers/', variables('lbName'))]", "dependsOn": [ "[concat('Microsoft.Network/loadBalancers/', variables('lbName'))]" ], "properties": { "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7')]", "principalId": "00000000-0000-0000-0000-000000000000" }
Kommentar
loadBalancerRoleAssignmentID måste vara ett GUID. Om du distribuerar en mall igen, inklusive den här rolltilldelningen, kontrollerar du att GUID:t är samma som det som användes ursprungligen. Vi föreslår att du kör den här isolerade resursen eller tar bort den här resursen från klustermallen efter distributionen eftersom den bara behöver skapas en gång.
Se den här exempelmallen för att skapa en offentlig lastbalanserare och tilldela en roll.
Konfigurera nödvändig utgående anslutning för nodtypen. Du måste konfigurera en offentlig lastbalanserare för att tillhandahålla utgående anslutning eller använda den offentliga standardlastbalanseraren.
Konfigurera
outboundRules
för att konfigurera en offentlig lastbalanserare för att tillhandahålla utgående anslutning Se mallen skapa lastbalanserare och tilldela rollexempel för Azure Resource Manager (ARM)ELLER
Konfigurera nodtypen så att den använder standardlastbalanseraren genom att ange följande i mallen:
- Den hanterade Service Fabric-klusterresursen apiVersion ska vara 2022-01-01 eller senare.
"resources": [ { "apiVersion": "[variables('sfApiVersion')]", "type": "Microsoft.ServiceFabric/managedclusters/nodetypes", "properties": { "isPrimary": false, "useDefaultPublicLoadBalancer": true } } ]
Du kan också konfigurera en inkommande programport och relaterad avsökning på din befintliga Azure Load Balancer. Se exempelmallen Bring Your Own Load Balancer Azure Resource Manager (ARM) för ett exempel
Du kan också konfigurera NSG-reglerna för det hanterade klustret som tillämpas på nodtypen för att tillåta all nödvändig trafik som du har konfigurerat på Azure Load Balancer eller så blockeras trafiken. Se exempelmallen Bring Your Own Load Balancer Azure Resource Manager (ARM) för ett exempel på konfiguration av inkommande NSG-regler. Leta efter egenskapen i mallen
networkSecurityRules
.Distribuera arm-mallen för det konfigurerade hanterade klustret För det här steget använder vi mallen Bring Your Own Load Balancer Sample Azure Resource Manager (ARM)
Följande skapar en resursgrupp med namnet
MyResourceGroup
iwestus
och distribuerar ett kluster med hjälp av en befintlig lastbalanserare.New-AzResourceGroup -Name MyResourceGroup -Location westus New-AzResourceGroupDeployment -Name deployment -ResourceGroupName MyResourceGroup -TemplateFile AzureDeploy.json
Efter distributionen konfigureras den sekundära nodtypen för att använda den angivna lastbalanseraren för inkommande och utgående trafik. Service Fabric-klientanslutningen och gatewayslutpunkterna pekar fortfarande på den offentliga DNS-adressen för det hanterade klustrets primära nodtyp statisk IP-adress.
Aktivera accelererat nätverk
Accelererat nätverk möjliggör enkel rot-I/O-virtualisering (SR-IOV) till en virtuell dators skalningsuppsättnings-VM som är den underliggande resursen för nodtyper. Den här sökvägen med höga prestanda kringgår värden från datasökvägen, vilket minskar svarstiden, jitter- och CPU-användningen för de mest krävande nätverksarbetsbelastningarna. Service Fabric-hanterade klusternodtyper kan etableras med accelererat nätverk på vm-SKU:er som stöds. Referera till dessa begränsningar och begränsningar för ytterligare överväganden.
- Observera att accelererat nätverk stöds i de flesta allmänna och beräkningsoptimerade instansstorlekar med 2 eller fler virtuella processorer. På instanser som stöder hypertrådning stöds accelererat nätverk på virtuella datorinstanser med 4 eller fler vCPU:er.
Aktivera accelererat nätverk genom att enableAcceleratedNetworking
deklarera egenskapen i Resource Manager-mallen på följande sätt:
- Den hanterade Service Fabric-klusterresursen apiVersion ska vara 2022-01-01 eller senare.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
...
"properties": {
...
"enableAcceleratedNetworking": true,
...
}
För att aktivera accelererat nätverk i ett befintligt Service Fabric-kluster måste du först skala ut ett Service Fabric-kluster genom att lägga till en ny nodtyp och utföra följande:
- Etablera en nodtyp med accelererat nätverk aktiverat
- Migrera dina tjänster och deras tillstånd till den etablerade nodtypen med accelererat nätverk aktiverat
Utskalning av infrastruktur krävs för att aktivera accelererat nätverk i ett befintligt kluster, eftersom aktivering av accelererat nätverk på plats skulle orsaka avbrott, eftersom det kräver att alla virtuella datorer i en tillgänglighetsuppsättning stoppas och frigörs innan accelererat nätverk aktiveras på ett befintligt nätverkskort.
Konfigurera extra undernät
Extra undernät ger möjlighet att skapa ytterligare hanterade undernät utan nodtyp för stödscenarier som Private Link Service och Bastion Hosts.
Konfigurera extra undernät genom att auxiliarySubnets
deklarera egenskapen och obligatoriska parametrar i Resource Manager-mallen på följande sätt:
- Den hanterade Service Fabric-klusterresursen apiVersion ska vara 2022-01-01 eller senare.
"resources": [
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters",
"properties": {
"auxiliarySubnets": [
{
"name" : "mysubnet",
"enableIpv6" : "true"
}
]
}
}
]
Se en fullständig lista över tillgängliga parametrar
Nästa steg
Översikt över Service Fabric-hanterade klusterkonfigurationsalternativför Service Fabric-hanterade kluster