Share via


Introdução aos hosts dedicados em clusters gerenciados do Service Fabric (Visualização)

O Azure Dedicated Host é um serviço que oferece servidores físicos, com capacidade para alojar uma ou mais máquinas virtuais – dedicados a uma subscrição do Azure. O servidor é dedicado à sua organização e as cargas de trabalho e a capacidade não são compartilhadas com mais ninguém. Os anfitriões dedicados são os mesmos servidores físicos utilizados nos nossos centros de dados, oferecidos como um recurso. Pode aprovisionar anfitriões dedicados numa região, zona de disponibilidade e domínio de avaria. Em seguida, pode colocar as VMs diretamente nos anfitriões aprovisionados, na configuração que melhor satisfaça as suas necessidades.

Usar os Hosts Dedicados do Azure para nós com seu cluster gerenciado do Service Fabric (SFMC) tem os seguintes benefícios:

  • Isolamento de hardware no nível do host no nível do servidor físico. Nenhuma outra VM será colocada nos seus anfitriões. Os hosts dedicados são implantados nos mesmos data centers e compartilham a mesma rede e a mesma infraestrutura de armazenamento subjacente que outros hosts não isolados.
  • Controlo sobre os eventos de manutenção iniciados pela plataforma do Azure. Embora a maioria dos eventos de manutenção tenha pouco ou nenhum impacto nas máquinas virtuais, existem algumas cargas de trabalho sensíveis em que cada segundo de pausa pode ter um impacto. Com hosts dedicados, você pode optar por uma janela de manutenção para reduzir o impacto no serviço.

Você pode escolher o SKU para Máquinas Virtuais de Hosts Dedicados com base em seus requisitos de carga de trabalho. Para obter mais informações, consulte Máquinas virtuais de host dedicado.

O guia a seguir mostrará você passo a passo sobre como adicionar um Host Dedicado do Azure a um cluster gerenciado do Service Fabric com um modelo do Azure Resource Manager.

Pré-requisitos

Este guia baseia-se no guia de início rápido do cluster gerenciado: Implantar um cluster gerenciado do Service Fabric usando o Azure Resource Manager

Antes de começar:

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita
  • Recupere um modelo ARM de cluster gerenciado. Os modelos do Gerenciador de Recursos de Exemplo estão disponíveis nos exemplos do Azure no GitHub. Esses modelos podem ser usados como um ponto de partida para seu modelo de cluster. Este guia mostra como implantar um cluster SKU padrão com dois tipos de nó e 12 nós.
  • O usuário precisa ter permissões Microsoft.Authorization/roleAssignments/write para o grupo de hosts, como Administrador de Acesso de Usuário ou Proprietário , para fazer atribuições de função em um grupo de hosts. Para obter mais informações, consulte Atribuir funções do Azure usando o portal do Azure - Azure RBAC.

Rever o modelo

O modelo usado neste guia é de Exemplos do Azure - modelos de cluster do Service Fabric.

Criar um certificado de cliente

Os clusters gerenciados do Service Fabric usam um certificado de cliente como chave para controle de acesso. Se você já tiver um certificado de cliente que gostaria de usar para controle de acesso ao cluster, poderá ignorar esta etapa.

Se você precisar criar um novo certificado de cliente, siga as etapas em definir e recuperar um certificado do Cofre de Chaves do Azure. Observe a impressão digital do certificado, pois será necessário implantar o modelo na próxima etapa.

Implantar recursos de Host Dedicado e configurar o acesso ao Provedor de Recursos do Service Fabric

Crie um grupo de hosts dedicado e adicione uma atribuição de função ao grupo de hosts com o aplicativo Provedor de Recursos do Service Fabric usando as etapas abaixo. Essa atribuição de função permite que o Provedor de Recursos do Service Fabric implante VMs nos Hosts Dedicados dentro do grupo de hosts no conjunto de dimensionamento de máquinas virtuais do cluster gerenciado. Esta atribuição é uma ação única.

  1. Obtenha a ID do provedor SFRP e a Entidade de Serviço para o aplicativo Provedor de Recursos do Service Fabric.

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

    Nota

    Verifique se você está na assinatura correta, a ID principal será alterada se a assinatura estiver em um locatário diferente.

  2. Crie um grupo de hosts dedicado fixado a uma zona de disponibilidade e cinco domínios de falha usando o modelo de implantação ARM de exemplo fornecido para Grupo de Host Dedicado. O exemplo garantirá que haja pelo menos um host dedicado por domínio de falha.

    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

    • Certifique-se de escolher a família SKU correta para o Host Dedicado que corresponda àquela que você usará para o tipo de nó subjacente VM SKU. Para obter mais informações, consulte Máquinas virtuais de host dedicado.
    • Cada domínio de falha precisa de um host dedicado para ser colocado nele e os clusters gerenciados pelo Service Fabric exigem cinco domínios de falha. Portanto, pelo menos cinco hosts dedicados devem estar presentes em cada grupo de hosts dedicados.
  3. O modelo de implantação ARM de exemplo para Grupo de Host Dedicado usado na etapa anterior também adiciona uma atribuição de função ao grupo de hosts com acesso de colaborador. Para obter mais informações sobre funções do Azure, consulte Azure built-in roles - Azure RBAC. Essa atribuição de função é definida na seção de recursos do modelo com ID Principal determinada desde a primeira etapa e uma ID de definição de função.

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

    ou você também pode adicionar atribuição de função via PowerShell usando a ID Principal determinada a partir da primeira etapa e o nome da definição de função como "Colaborador", quando aplicável.

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

Implantar cluster gerenciado do Service Fabric

Crie um cluster gerenciado do Azure Service Fabric com tipo(s) de nó(s) configurado(s) para fazer referência ao grupo de Host Dedicado ResourceId. O tipo de nó precisa ser fixado na mesma zona de disponibilidade que o grupo de hosts.

  1. Escolha o modelo do modelo de exemplo de cluster do Service Fabric para Host Dedicado, que inclui especificação para suporte a Host Dedicado.

  2. Forneça seus próprios valores para os seguintes parâmetros de modelo:

    • Assinatura: selecione a mesma assinatura do Azure que a assinatura do grupo de hosts.
    • Grupo de recursos: selecione Criar novo. Insira um nome exclusivo para o grupo de recursos, como myResourceGroup, e escolha OK.
    • Local: Selecione o mesmo local que o local do grupo de hosts.
    • Nome do cluster: insira um nome exclusivo para o cluster, como mysfcluster.
    • Nome de usuário do administrador: insira um nome para o administrador a ser usado para RDP nas VMs subjacentes no cluster.
    • Senha do administrador: insira uma senha para o administrador a ser usado para RDP nas VMs subjacentes no cluster.
    • Impressão digital do certificado do cliente: forneça a impressão digital do certificado do cliente que você gostaria de usar para acessar o cluster. Se você não tiver um certificado, siga definir e recuperar um certificado para criar um certificado autoassinado.
    • Nome do tipo de nó: insira um nome exclusivo para o tipo de nó, como nt1.
  3. Implante um modelo ARM por meio de um dos métodos abaixo:

    • Experiência de modelo personalizado do portal ARM: implantação personalizada - Microsoft Azure. Selecione a imagem a seguir para entrar no Azure e forneça seus próprios valores para os parâmetros do modelo e, em seguida, implante o modelo.

      Button to deploy the Resource Manager template to Azure.

    • Cmdlets do ARM PowerShell: New-AzResourceGroupDeployment (Az.Resources). Armazene os caminhos do modelo ARM e os arquivos de parâmetros em variáveis e, em seguida, implante o modelo.

      $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
      

    Aguarde até que a implantação seja concluída com êxito.

Resolução de Problemas

  1. O seguinte erro é gerado quando o SFRP não tem acesso ao grupo de hosts. Revise as etapas de atribuição de função acima e verifique se a atribuição foi feita corretamente.
         {  
                "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 o grupo de hosts estiver em uma assinatura diferente dos clusters, o seguinte erro será relatado. Certifique-se de que ambos estão na mesma assinatura.
          {  
                "code": "BadRequest",  
                "message": "Entity subscriptionId in resource reference id /subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/[<HostGroup>] is invalid."  
              }
    
  3. Se a Cota para Grupo de Hosts não for suficiente, o seguinte erro será lançado:
          {  
                "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)” 
              }
    

Próximos passos