Condividi tramite


Introduzione agli host dedicati nei cluster gestiti di Service Fabric

L'host dedicato di Azure è un servizio che offre server fisici, in grado di ospitare una o più macchine virtuali, dedicati a una sottoscrizione di Azure. Il server è dedicato all'organizzazione e ai carichi di lavoro e alla capacità non viene condiviso con altri utenti. Gli host dedicati sono gli stessi server fisici usati nei data center, inseriti come risorsa. È possibile effettuare il provisioning di host dedicati all'interno di un'area, di una zona di disponibilità e di un dominio di errore. Quindi, è possibile inserire le macchine virtuali direttamente negli host con provisioning, in base alla configurazione più adatta alle esigenze.

L'uso di host dedicati di Azure per i nodi con il cluster gestito di Service Fabric offre i vantaggi seguenti:

  • Isolamento hardware a livello di host a livello di server fisico. Nei tuoi host non verranno posizionate altre VM. Gli host dedicati vengono distribuiti negli stessi data center e condividono la stessa rete e la stessa infrastruttura di archiviazione sottostante di altri host non isolati.
  • Controllo sugli eventi di manutenzione avviati dalla piattaforma di Azure. Anche se la maggior parte degli eventi di manutenzione non ha alcun impatto sulle macchine virtuali, esistono alcuni carichi di lavoro sensibili in cui ogni secondo di sospensione può avere un impatto. Con gli host dedicati, è possibile acconsentire esplicitamente a una finestra di manutenzione per ridurre l'impatto sul servizio.

È possibile scegliere lo SKU per gli host dedicati Macchine virtuali in base ai requisiti del carico di lavoro. Per altre informazioni, vedere Macchine virtuali host dedicato.

La guida seguente illustra come aggiungere un host dedicato di Azure a un cluster gestito di Service Fabric con un modello di Azure Resource Manager.

Prerequisiti

Questa guida si basa sulla guida introduttiva al cluster gestito: Distribuire un cluster gestito di Service Fabric con Azure Resource Manager

Prima di iniziare:

Rivedere il modello

Il modello usato in questa guida proviene da Esempi di Azure - Modelli di cluster di Service Fabric.

Creare un certificato client

I cluster gestiti di Service Fabric usano un certificato client come chiave per il controllo di accesso. Se si ha già un certificato client che si vuole usare per il controllo di accesso al cluster, è possibile ignorare questo passaggio.

Se è necessario creare un nuovo certificato client, seguire la procedura descritta in Impostare e recuperare un certificato da Azure Key Vault. Prendere nota dell'identificazione personale del certificato perché sarà necessario per distribuire il modello nel passaggio successivo.

Distribuire risorse host dedicate e configurare l'accesso al provider di risorse di Service Fabric

Creare un gruppo host dedicato e aggiungere un'assegnazione di ruolo al gruppo host con l'applicazione Provider di risorse di Service Fabric seguendo questa procedura. Questa assegnazione di ruolo consente al provider di risorse di Service Fabric di distribuire macchine virtuali negli host dedicati all'interno del gruppo host nel set di scalabilità di macchine virtuali del cluster gestito. Questa assegnazione è un'azione una tantum.

  1. Ottenere l'ID provider SFRP e l'entità servizio per l'applicazione provider di risorse di Service Fabric.

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

    Nota

    Assicurarsi di essere nella sottoscrizione corretta, l'ID entità cambierà se la sottoscrizione si trova in un tenant diverso.

  2. Creare un gruppo host dedicato aggiunto a una zona di disponibilità e cinque domini di errore usando il modello di distribuzione arm di esempio fornito per il gruppo host dedicato. L'esempio garantisce che sia presente almeno un host dedicato per ogni dominio di errore.

    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
    

    Nota

    • Assicurarsi di scegliere la famiglia di SKU corretta per l'host dedicato corrispondente a quella che si intende usare per lo SKU della macchina virtuale del tipo di nodo sottostante. Per altre informazioni, vedere Macchine virtuali host dedicato.
    • Ogni dominio di errore deve essere inserito in un host dedicato e i cluster gestiti di Service Fabric richiedono cinque domini di errore. Pertanto, almeno cinque host dedicati devono essere presenti in ogni gruppo host dedicato.
  3. Il modello di distribuzione arm di esempio per il gruppo host dedicato usato nel passaggio precedente aggiunge anche un'assegnazione di ruolo al gruppo host con accesso collaboratore. Per altre informazioni sui ruoli di Azure, vedere Ruoli predefiniti di Azure - Controllo degli accessi in base al ruolo di Azure. Questa assegnazione di ruolo viene definita nella sezione risorse del modello con ID entità determinato dal primo passaggio e un ID definizione del ruolo.

       "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')]"  
                }  
              }
              ]
    

    oppure è anche possibile aggiungere un'assegnazione di ruolo tramite PowerShell usando l'ID entità determinato dal primo passaggio e dal nome della definizione del ruolo come "Collaboratore", se applicabile.

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

Distribuire un cluster gestito di Service Fabric

Creare un cluster gestito di Azure Service Fabric con i tipi di nodo configurati per fare riferimento al resourceId del gruppo host dedicato. Il tipo di nodo deve essere aggiunto alla stessa zona di disponibilità del gruppo host.

  1. Selezionare il modello dal modello di esempio di cluster di Service Fabric per Host dedicato, che include la specifica per il supporto host dedicato.

  2. Specificare i valori personalizzati per i parametri del modello seguenti:

    • Sottoscrizione: selezionare la stessa sottoscrizione di Azure della sottoscrizione del gruppo host.
    • Gruppo di risorse: selezionare Crea nuovo. Specificare un nome univoco per il gruppo di risorse, ad esempio myResourceGroup e quindi scegliere OK.
    • Località: selezionare la stessa posizione del gruppo host.
    • Nome del cluster: immettere un nome univoco per il cluster, ad esempio mysfcluster.
    • Nome utente amministratore: immettere un nome per l'amministratore da usare per RDP nelle macchine virtuali sottostanti nel cluster.
    • Password amministratore: immettere una password per l'amministratore da usare per RDP nelle macchine virtuali sottostanti del cluster.
    • Identificazione personale del certificato client: specificare l'identificazione personale del certificato client che si vuole usare per accedere al cluster. Se non si dispone di un certificato, seguire l'impostazione e il recupero di un certificato per creare un certificato autofirmato.
    • Nome tipo di nodo: immettere un nome univoco per il tipo di nodo, ad esempio nt1.
  3. Distribuire un modello di Resource Manager tramite uno dei metodi seguenti:

    • Esperienza modello personalizzato del portale di Azure Resource Manager: distribuzione personalizzata - Microsoft Azure. Selezionare l'immagine seguente per accedere ad Azure e specificare i propri valori per i parametri del modello, quindi distribuire il modello.

      Pulsante per distribuire il modello di Resource Manager in Azure.

    • Cmdlet di PowerShell arm: New-AzResourceGroupDeployment (Az.Resources). Archiviare i percorsi del modello di Resource Manager e dei file dei parametri in variabili, quindi distribuire il modello.

      $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
      

    Attendere il completamento della distribuzione.

Risoluzione dei problemi

  1. L'errore seguente viene generato quando SFRP non ha accesso al gruppo host. Esaminare i passaggi di assegnazione dei ruoli precedenti e assicurarsi che l'assegnazione venga eseguita correttamente.
         {  
                "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. Se il gruppo host si trova in una sottoscrizione diversa rispetto ai cluster, viene segnalato l'errore seguente. Assicurarsi che entrambi si trovino nella stessa sottoscrizione.
          {  
                "code": "BadRequest",  
                "message": "Entity subscriptionId in resource reference id /subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/[<HostGroup>] is invalid."  
              }
    
  3. Se quota per il gruppo host non è sufficiente, viene generato l'errore seguente:
          {  
                "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)” 
              }
    

Passaggi successivi