Dela via


Introduktion till dedikerade värdar i Service Fabric-hanterade kluster

Azure Dedicated Host är en tjänst som tillhandahåller fysiska servrar, som kan vara värdar för en eller flera virtuella datorer, som är dedikerade till en Azure-prenumeration. Servern är dedikerad till din organisation och arbetsbelastningar och kapaciteten delas inte med någon annan. Dedikerade värdar är samma fysiska servrar som används i våra datacenter och tillhandahålls som en resurs. Du kan etablera dedikerade värdar inom en region, tillgänglighetszon och feldomän. Sedan kan du placera virtuella datorer direkt på dina etablerade värdar, i valfri konfiguration som bäst tillgodoser dina behov.

Att använda Azure Dedicated Hosts för noder med ditt Service Fabric-hanterade kluster (SFMC) har följande fördelar:

  • Maskinvaruisolering på värdnivå på fysisk servernivå. Inga andra virtuella datorer kommer att placeras på dina värdar. Dedikerade värdar distribueras i samma datacenter och delar samma nätverk och underliggande lagringsinfrastruktur som andra, icke-isolerade värdar.
  • Kontroll över underhållshändelser som initierats av Azure-plattformen. Även om de flesta underhållshändelser har liten eller ingen inverkan på virtuella datorer, finns det vissa känsliga arbetsbelastningar där varje sekund av paus kan påverka. Med dedikerade värdar kan du välja ett underhållsperiod för att minska påverkan på tjänsten.

Du kan välja SKU för dedikerade värdar virtuella datorer baserat på dina arbetsbelastningskrav. Mer information finns i Dedikerade virtuella värddatorer.

Följande guide tar dig steg för steg för hur du lägger till en Dedikerad Azure-värd i ett Service Fabric-hanterat kluster med en Azure Resource Manager-mall.

Förutsättningar

Den här guiden bygger på snabbstartsguiden för det hanterade klustret: Distribuera ett Service Fabric-hanterat kluster med Azure Resource Manager

Innan du börjar:

Granska mallen

Mallen som används i den här guiden kommer från Azure Samples – Service Fabric-klustermallar.

Skapa ett klientcertifikat

Service Fabric-hanterade kluster använder ett klientcertifikat som en nyckel för åtkomstkontroll. Om du redan har ett klientcertifikat som du vill använda för åtkomstkontroll till klustret kan du hoppa över det här steget.

Om du behöver skapa ett nytt klientcertifikat följer du stegen i uppsättningen och hämtar ett certifikat från Azure Key Vault. Observera certifikatets tumavtryck eftersom det krävs för att distribuera mallen i nästa steg.

Distribuera dedikerade värdresurser och konfigurera åtkomst till Service Fabric-resursprovidern

Skapa en dedikerad värdgrupp och lägg till en rolltilldelning till värdgruppen med Service Fabric Resource Provider-programmet med hjälp av stegen nedan. Med den här rolltilldelningen kan Service Fabric-resursprovidern distribuera virtuella datorer på de dedikerade värdarna i värdgruppen till det hanterade klustrets VM-skalningsuppsättning. Den här tilldelningen är en engångsåtgärd.

  1. Hämta SFRP-provider-ID och tjänstens huvudnamn för Service Fabric-resursproviderprogrammet.

    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.

  2. Skapa en dedikerad värdgrupp som är fäst på en tillgänglighetszon och fem feldomäner med hjälp av den tillhandahållna ARM-exempeldistributionsmallen för dedikerad värdgrupp. Exemplet säkerställer att det finns minst en dedikerad värd per feldomän.

    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
    

    Kommentar

    • Se till att du väljer rätt SKU-familj för den dedikerade värden som matchar den som du ska använda för den underliggande nodtypen VM SKU. Mer information finns i Dedikerade virtuella värddatorer.
    • Varje feldomän behöver en dedikerad värd som ska placeras i den och Service Fabric-hanterade kluster kräver fem feldomäner. Därför bör minst fem dedikerade värdar finnas i varje dedikerad värdgrupp.
  3. Arm-exempeldistributionsmallen för dedikerad värdgrupp som användes i föregående steg lägger också till en rolltilldelning till värdgruppen med deltagaråtkomst. Mer information om Azure-roller finns i Inbyggda Azure-roller – Azure RBAC. Den här rolltilldelningen definieras i resursavsnittet i mallen med huvudnamns-ID som bestäms från det första steget och ett rolldefinitions-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')]"  
                }  
              }
              ]
    

    eller så kan du också lägga till rolltilldelning via PowerShell med hjälp av huvudnamns-ID som bestäms från det första steget och rolldefinitionsnamnet som "Deltagare" i förekommande fall.

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

Distribuera Service Fabric-hanterat kluster

Skapa ett Azure Service Fabric-hanterat kluster med nodtyper konfigurerade för att referera till den dedikerade värdgruppen ResourceId. Nodtypen måste fästas i samma tillgänglighetszon som värdgruppen.

  1. Välj mallen från Service Fabric-klusterexempelmallen för Dedikerad värd, som innehåller specifikation för stöd för dedikerad värd.

  2. Ange dina egna värden för följande mallparametrar:

    • Prenumeration: Välj samma Azure-prenumeration som värdgruppsprenumerationen.
    • Resursgrupp: Välj Skapa ny. Ange ett unikt namn för resursgruppen, till exempel myResourceGroup, och välj sedan OK.
    • Plats: Välj samma plats som värdgruppens plats.
    • Klusternamn: Ange ett unikt namn för klustret, till exempel mysfcluster.
    • Administratörsanvändarnamn: Ange ett namn för administratören som ska användas för RDP på de underliggande virtuella datorerna i klustret.
    • Administratörslösenord: Ange ett lösenord för administratören som ska användas för RDP på de underliggande virtuella datorerna i klustret.
    • Tumavtryck för klientcertifikat: Ange tumavtrycket för det klientcertifikat som du vill använda för att komma åt klustret. Om du inte har något certifikat följer du set och hämtar ett certifikat för att skapa ett självsignerat certifikat.
    • Namn på nodtyp: Ange ett unikt namn för din nodtyp, till exempel nt1.
  3. Distribuera en ARM-mall via någon av metoderna nedan:

    • Anpassad mallupplevelse för ARM-portalen: Anpassad distribution – Microsoft Azure. Välj följande bild för att logga in på Azure och ange dina egna värden för mallparametrarna och distribuera sedan mallen.

      Knapp för att distribuera Resource Manager-mallen till Azure.

    • ARM PowerShell-cmdletar: New-AzResourceGroupDeployment (Az.Resources). Lagra sökvägarna för ARM-mallen och parameterfilerna i variabler och distribuera sedan mallen.

      $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
      

    Vänta tills distributionen har slutförts.

Felsökning

  1. Följande fel utlöses när SFRP inte har åtkomst till värdgruppen. Granska rolltilldelningsstegen ovan och kontrollera att tilldelningen är korrekt utförd.
         {  
                "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. Om värdgruppen finns i en annan prenumeration än klustren rapporteras följande fel. Se till att båda finns i samma prenumeration.
          {  
                "code": "BadRequest",  
                "message": "Entity subscriptionId in resource reference id /subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/[<HostGroup>] is invalid."  
              }
    
  3. Om kvoten för värdgruppen inte räcker genereras följande fel:
          {  
                "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)” 
              }
    

Nästa steg