Share via


Inleiding tot toegewezen hosts in beheerde Service Fabric-clusters

Azure Dedicated Host is een service die fysieke servers biedt waarop een of meer virtuele machines kunnen worden gehost, die zijn toegewezen aan één Azure-abonnement. De server is toegewezen aan uw organisatie en workloads en capaciteit wordt niet gedeeld met iemand anders. Toegewezen hosts zijn dezelfde fysieke servers als de servers die in onze datacentrums worden gebruikt als resource. U kunt toegewezen hosts inrichten in een regio, beschikbaarheidszone en foutdomein. Vervolgens kunt u rechtstreeks VM's aan uw ingerichte hosts toevoegen, in de configuratie die het beste voldoet aan uw behoeften.

Het gebruik van Azure Dedicated Hosts voor knooppunten met uw beheerde Service Fabric-cluster (SFMC) heeft de volgende voordelen:

  • Hardware-isolatie op hostniveau op fysieke serverniveau. Er worden geen andere VM's op je hosts geplaatst. Toegewezen hosts worden geïmplementeerd in dezelfde datacenters en delen dezelfde netwerk- en onderliggende opslaginfrastructuur als andere, niet-geïsoleerde hosts.
  • Controle over onderhoudsgebeurtenissen die worden geïnitieerd door het Azure-platform. Hoewel de meeste onderhoudsevenementen weinig tot geen invloed hebben op virtuele machines, zijn er enkele gevoelige werkbelastingen waarbij elke seconde van de pauze invloed kan hebben. Met toegewezen hosts kunt u kiezen voor een onderhoudsvenster om de impact op de service te verminderen.

U kunt de SKU voor virtuele machines met toegewezen hosts kiezen op basis van uw workloadvereisten. Zie Dedicated Host Virtual Machines voor meer informatie.

In de volgende handleiding wordt stapsgewijs uitgelegd hoe u een Azure Dedicated Host toevoegt aan een beheerd Service Fabric-cluster met een Azure Resource Manager-sjabloon.

Vereisten

Deze handleiding bouwt voort op de snelstartgids voor beheerde clusters: Een beheerd Service Fabric-cluster implementeren met behulp van Azure Resource Manager

Voordat u begint:

  • Als u nog geen Azure-abonnement hebt, maakt u een gratis account
  • Haal een ARM-sjabloon voor een beheerd cluster op. Voorbeeldsjablonen van Resource Manager zijn beschikbaar in de Azure-voorbeelden op GitHub. Deze sjablonen kunnen worden gebruikt als uitgangspunt voor uw clustersjabloon. Deze handleiding laat zien hoe u een Standard SKU-cluster implementeert met twee knooppunttypen en 12 knooppunten.
  • De gebruiker moet beschikken over machtigingen voor Microsoft.Authorization/roleAssignments/write voor de hostgroep, zoals Beheerder voor gebruikerstoegang of Eigenaar om roltoewijzingen in een hostgroep uit te voeren. Zie Azure-rollen toewijzen met behulp van Azure Portal - Azure RBAC voor meer informatie.

De sjabloon controleren

De sjabloon die in deze handleiding wordt gebruikt, is afkomstig van Azure Samples - Service Fabric-clustersjablonen.

Een clientcertificaat maken

Beheerde Service Fabric-clusters gebruiken een clientcertificaat als sleutel voor toegangsbeheer. Als u al een clientcertificaat hebt dat u wilt gebruiken voor toegangsbeheer voor uw cluster, dan kunt u deze stap overslaan.

Als u een nieuw clientcertificaat wilt maken, volg dan de stappen in Een certificaat instellen en ophalen vanuit Azure Key Vault. Noteer de vingerafdruk van het certificaat omdat deze nodig is om de sjabloon in de volgende stap te implementeren.

Toegewezen hostresources implementeren en toegang tot Service Fabric-resourceprovider configureren

Maak een toegewezen hostgroep en voeg een roltoewijzing toe aan de hostgroep met de Service Fabric Resource Provider-toepassing met behulp van de onderstaande stappen. Met deze roltoewijzing kan Service Fabric Resource Provider VM's implementeren op de toegewezen hosts in de hostgroep naar de virtuele-machineschaalset van het beheerde cluster. Deze toewijzing is een eenmalige actie.

  1. Haal de SFRP-provider-id en service-principal op voor de service fabric-resourceprovidertoepassing.

    Login-AzAccount  
    Select-AzSubscription -SubscriptionId <SubId>  
    Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
    

    Notitie

    Zorg ervoor dat u zich in het juiste abonnement bevindt. De principal-id wordt gewijzigd als het abonnement zich in een andere tenant bevindt.

  2. Maak een toegewezen hostgroep die is vastgemaakt aan één beschikbaarheidszone en vijf foutdomeinen met behulp van de meegeleverde ARM-implementatiesjabloon voor toegewezen hostgroep. Het voorbeeld zorgt ervoor dat er ten minste één toegewezen host per foutdomein is.

    New-AzResourceGroup -Name $ResourceGroupName -Location $location
    New-AzResourceGroupDeployment -Name "hostgroup-deployment" -ResourceGroupName $ResourceGroupName -TemplateFile ".\HostGroup-And-RoleAssignment.json" -TemplateParameterFile ".\HostGroup-And-RoleAssignment.parameters.json" -Debug -Verbose
    

    Notitie

    • Zorg ervoor dat u de juiste SKU-familie kiest voor de toegewezen host die overeenkomt met de host die u gaat gebruiken voor de onderliggende VM-SKU van het knooppunttype. Zie Dedicated Host Virtual Machines voor meer informatie.
    • Voor elk foutdomein moet een toegewezen host worden geplaatst en voor beheerde Service Fabric-clusters zijn vijf foutdomeinen vereist. Daarom moeten er ten minste vijf toegewezen hosts aanwezig zijn in elke toegewezen hostgroep.
  3. Met de voorbeeld-ARM-implementatiesjabloon voor toegewezen hostgroep die in de vorige stap is gebruikt, wordt ook een roltoewijzing toegevoegd aan de hostgroep met toegang tot inzenders. Zie Ingebouwde Azure-rollen - Azure RBAC voor meer informatie over Azure-rollen. Deze roltoewijzing wordt gedefinieerd in de sectie resources van de sjabloon met principal-id die is bepaald uit de eerste stap en een roldefinitie-id.

       "variables": {  
            "authorizationApiVersion": "2018-01-01-preview",
            "contributorRoleId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
            "SFRPAadServicePrincipalId": " <Service Fabric Resource Provider ID> -"
          },
       "resources": [
       {  
                "apiVersion": "[variables('authorizationApiVersion')]",  
                "type": "Microsoft.Compute/Hostgroups/providers/roleAssignments",  
                "name": "[concat(concat(parameters('dhgNamePrefix'), '0'), '/Microsoft.Authorization/', parameters('hostGroupRoleAssignmentId'))]",  
                "dependsOn": [  
                    "[resourceId('Microsoft.Compute/hostGroups', concat(parameters('dhgNamePrefix'), '0'))]"  
                ],  
                "properties": {  
                    "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', variables('contributorRoleId'))]",  
                    "principalId": "[variables('SFRPAadServicePrincipalId')]"  
                }  
              }
              ]
    

    of u kunt ook roltoewijzing toevoegen via PowerShell met behulp van principal-id die is bepaald uit de eerste stap en de naam van de roldefinitie als 'Inzender' indien van toepassing.

    New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Contributor" -Scope "<Host Group Id>"  
    

Beheerd Service Fabric-cluster implementeren

Maak een beheerd Azure Service Fabric-cluster met knooppunttypen die zijn geconfigureerd om te verwijzen naar de ResourceId van de toegewezen hostgroep. Het knooppunttype moet worden vastgemaakt aan dezelfde beschikbaarheidszone als de hostgroep.

  1. Kies de sjabloon uit de voorbeeldsjabloon van het Service Fabric-cluster voor Dedicated Host, die specificatie bevat voor ondersteuning voor toegewezen hosts.

  2. Geef uw eigen waarden op voor de volgende sjabloonparameters:

    • Abonnement: Selecteer hetzelfde Azure-abonnement als het hostgroepabonnement.
    • Resourcegroep: Selecteer Nieuwe maken. Voer een unieke naam in voor de resourcegroep, zoals myResourceGroup, en kies vervolgens OK.
    • Locatie: Selecteer dezelfde locatie als de locatie van de hostgroep.
    • Clusternaam: Voer een unieke naam in voor uw cluster, zoals mysfcluster.
    • Gebruikersnaam van beheerder: voer een naam in voor de beheerder die moet worden gebruikt voor RDP op de onderliggende VM's in het cluster.
    • Beheerderswachtwoord: voer een wachtwoord in voor de beheerder die moet worden gebruikt voor RDP op de onderliggende VM's in het cluster.
    • Vingerafdruk van clientcertificaat: geef de vingerafdruk op van het clientcertificaat dat u wilt gebruiken voor toegang tot uw cluster. Als u geen certificaat hebt, volgt u de set en haalt u een certificaat op om een zelfondertekend certificaat te maken.
    • Naam van knooppunttype: voer een unieke naam in voor uw knooppunttype, zoals nt1.
  3. Implementeer een ARM-sjabloon via een van de onderstaande methoden:

    • Aangepaste sjabloonervaring voor ARM Portal: Aangepaste implementatie - Microsoft Azure. Selecteer de volgende afbeelding om u aan te melden bij Azure en geef uw eigen waarden op voor de sjabloonparameters en implementeer vervolgens de sjabloon.

      Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

    • ARM PowerShell-cmdlets: New-AzResourceGroupDeployment (Az.Resources). Sla de paden van uw ARM-sjabloon en parameterbestanden op in variabelen en implementeer vervolgens de sjabloon.

      $templateFilePath = "<full path to azuredeploy.json>" 
      $parameterFilePath = "<full path to azuredeploy.parameters.json>"
      $pass = (ConvertTo-SecureString -AsPlainText -Force "<adminPassword>")
      
      New-AzResourceGroupDeployment ` 
         -Name $DeploymentName ` 
         -ResourceGroupName $resourceGroupName ` 
         -TemplateFile $templateFilePath ` 
         -TemplateParameterFile $parameterFilePath `
         -adminPassword $pass `
         -Debug -Verbose
      

    Wacht totdat de implementatie is voltooid.

Probleemoplossing

  1. De volgende fout wordt gegenereerd wanneer SFRP geen toegang heeft tot de hostgroep. Controleer de bovenstaande stappen voor roltoewijzing en zorg ervoor dat de toewijzing correct wordt uitgevoerd.
         {  
                "code": "LinkedAuthorizationFailed",  
                "message": "The client '[<clientId>]' with object id '[<objectId>]' has permission to perform action 'Microsoft.Compute/virtualMachineScaleSets/write' on scope '/subscriptions/[<Subs-Id>]/resourcegroups/[<ResGrp-Id>]/providers/Microsoft.Compute/virtualMachineScaleSets/pnt'; however, it does not have permission to perform action 'write' on the linked scope(s) '/subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/HostGroupscu0' or the linked scope(s) are invalid."
             }
    
  2. Als de hostgroep zich in een ander abonnement bevindt dan de clusters, wordt de volgende fout gerapporteerd. Zorg ervoor dat beide zich in hetzelfde abonnement bevinden.
          {  
                "code": "BadRequest",  
                "message": "Entity subscriptionId in resource reference id /subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/[<HostGroup>] is invalid."  
              }
    
  3. Als quotum voor hostgroep niet voldoende is, wordt de volgende fout gegenereerd:
          {  
                "code": "QuotaExceeded",  
                "message": "Operation could not be completed as it results in exceeding approved standardDSv3Family Cores quota.  
          Additional Required: 320, (Minimum) New Limit Required: 320. Submit a request for Quota increase [here](https://aka.ms/ProdportalCRP/#blade/Microsoft_Azure_Capacity/UsageAndQuota.ReactView/Parameters/). Please read more about quota limits [here](/azure/azure-supportability/per-vm-quota-requests)” 
              }
    

Volgende stappen