Share via


Einführung in Dedicated Host in verwalteten Service Fabric-Clustern (Vorschau)

Azure Dedicated Host ist ein Dienst zum Bereitstellen physischer Server, die virtuelle Computer hosten können und ausschließlich für ein Azure-Abonnement reserviert sind. Der Server ist exklusiv für Ihre Organisation und Workloads vorgesehen, und die Kapazität wird nicht mit anderen Organisationen geteilt. Dedizierte Hosts sind die in unseren Rechenzentren verwendeten physischen Server, die als Ressource bereitgestellt werden. Sie können dedizierte Hosts in einer Region, in einer Verfügbarkeitszone und in einer Fehlerdomäne bereitstellen. Anschließend können Sie VMs direkt in Ihren bereitgestellten Hosts platzieren, und zwar in einer beliebigen Konfiguration, die Ihren Anforderungen am besten entspricht.

Die Verwendung von Azure Dedicated Hosts für Knoten mit Ihrem verwalteten Service Fabric-Cluster (Service Fabric Managed Cluster, SFMC) bietet die folgenden Vorteile:

  • Hardware-Isolation auf Ebene des physischen Hostservers. Es werden keine anderen virtuellen Computer auf Ihren Hosts platziert. Dedizierte Hosts werden in denselben Rechenzentren bereitgestellt und nutzen dasselbe Netzwerk und dieselbe zugrunde liegende Speicherinfrastruktur wie andere, nicht isolierte Hosts.
  • Kontrolle über Wartungsereignisse, die von der Azure-Plattform initiiert werden. Die meisten Wartungsereignisse haben nur geringfügige oder gar keine Auswirkungen auf virtuelle Computer, es gibt jedoch einige empfindliche Workloads, die durch jede Sekunde Pause beeinträchtigt werden können. Mit Dedicated Hosts können Sie sich für ein Wartungsfenster entscheiden, um die Auswirkungen auf Ihren Dienst zu verringern.

Sie können die SKU für Dedicated Hosts-VMs basierend auf Ihren Workloadanforderungen auswählen. Weitere Informationen finden Sie unter Dedicated Host-VMs.

Der folgende Leitfaden führt Sie Schritt für Schritt durch das Hinzufügen eines Azure Dedicated Host zu einem verwalteten Service Fabric-Cluster mit einer Azure Resource Manager-Vorlage.

Voraussetzungen

Dieser Leitfaden baut auf der Schnellstartanleitung für verwaltete Cluster auf: Bereitstellen eines von Service Fabric verwalteten Clusters mithilfe von Azure Resource Manager

Vorbereitungen

  • Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto.
  • Rufen Sie eine ARM-Vorlage für verwaltete Cluster ab. Resource Manager-Beispielvorlagen stehen in den Azure-Beispielen auf GitHub zur Verfügung. Diese Vorlagen können als Ausgangspunkt für Ihre Clustervorlage verwendet werden. Dieser Leitfaden zeigt, wie Sie einen Standard-SKU-Cluster mit zwei Knotentypen und 12 Knoten bereitstellen.
  • Der Benutzer muss über die Berechtigungen „Microsoft.Authorization/roleAssignments/write“ für die Hostgruppe verfügen, z. B. Benutzerzugriffsadministrator oder Besitzer, um Rollenzuweisungen in einer Hostgruppe auszuführen. Weitere Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal – Azure-RBAC.

Überprüfen der Vorlage

Die in dieser Anleitung verwendete Vorlage stammt aus Azure-Beispiele: Service Fabric-Clustervorlagen.

Erstellen eines Clientzertifikats

Für verwaltete Service Fabric-Cluster wird ein Clientzertifikat als Schlüssel für die Zugriffssteuerung verwendet. Wenn Sie bereits über ein Clientzertifikat verfügen, das Sie für die Zugriffssteuerung für Ihren Cluster verwenden möchten, können Sie diesen Schritt überspringen.

Befolgen Sie die Schritte unter Festlegen und Abrufen eines Zertifikats aus Azure Key Vault, falls Sie ein neues Clientzertifikat erstellen müssen. Notieren Sie sich den Zertifikatfingerabdruck, da Sie ihn im nächsten Schritt zum Bereitstellen der Vorlage benötigen.

Bereitstellen von Dedicated Host-Ressourcen und Konfigurieren des Zugriffs auf den Service Fabric-Ressourcenanbieter

Führen Sie die folgenden Schritte aus, um eine dedizierte Hostgruppe zu erstellen und dieser mit der Service Fabric Resource Provider-Anwendung eine Rollenzuweisung hinzuzufügen. Diese Rollenzuweisung ermöglicht Service Fabric Resource Provider die Bereitstellung von VMs auf den Dedicated Host-Instanzen innerhalb der Hostgruppe für die VM-Skalierungsgruppe des verwalteten Clusters. Diese Zuweisung muss nur einmal ausgeführt werden.

  1. Rufen Sie die SFRP-Anbieter-ID und den Dienstprinzipal für die Service Fabric Resource Provider-Anwendung ab.

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

    Hinweis

    Stellen Sie sicher, dass Sie sich im richtigen Abonnement befinden. Die Prinzipal-ID ändert sich, wenn sich das Abonnement in einem anderen Mandanten befindet.

  2. Erstellen Sie eine dedizierte Hostgruppe, die an eine Verfügbarkeitszone und fünf Fehlerdomänen angeheftet ist, indem Sie die bereitgestellte ARM-Bereitstellungsvorlage für dedizierte Hostgruppenverwenden. Das Beispiel stellt sicher, dass mindestens ein dedizierter Host pro Fehlerdomäne vorhanden ist.

    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
    

    Hinweis

    • Stellen Sie sicher, dass Sie die richtige SKU-Familie für den dedizierten Host auswählen, die der Familie entspricht, die Sie für die zugrundeliegende VM-SKU für den Knotentyp verwenden möchten. Weitere Informationen finden Sie unter Dedicated Host-VMs.
    • In jeder Fehlerdomäne muss ein dedizierter Host platziert werden, und verwaltete Service Fabric-Cluster erfordern fünf Fehlerdomänen. Daher müssen in jeder dedizierten Hostgruppe mindestens fünf dedizierte Hosts vorhanden sein.
  3. Die ARM-Bereitstellungsvorlage für dedizierte Hostgruppen, die im vorherigen Schritt verwendet wurde, fügt außerdem eine Rollenzuweisung zur Hostgruppe mit Zugriff als Mitwirkender hinzu. Weitere Informationen zu Azure-Rollen finden Sie unter Integrierte Azure-Rollen – Azure RBAC. Diese Rollenzuweisung ist im Abschnitt „Ressourcen“ der Vorlage mit der im ersten Schritt ermittelten Prinzipal-ID und einer Rollendefinitions-ID definiert.

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

    Sie können die Rollenzuweisung auch über PowerShell mit der im ersten Schritt ermittelten Prinzipal-ID und dem Rollendefinitionsnamen „Mitwirkender“ hinzufügen (sofern zutreffend).

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

Bereitstellen eines verwalteten Service Fabric-Clusters

Erstellen Sie einen verwalteten Azure Service Fabric-Cluster, dessen Knotentypen so konfiguriert sind, dass sie auf die Ressourcen-ID der dedizierten Hostgruppe verweisen. Der Knotentyp muss an die gleiche Verfügbarkeitszone wie die Hostgruppe angeheftet werden.

  1. Wählen Sie die Beispielvorlage für Service Fabric-Cluster für Dedicated Host aus, die die Spezifikation für den Dedicated Host-Support enthält.

  2. Geben Sie Ihre eigenen Werte für die folgenden Vorlagenparameter an:

    • Abonnement: Wählen Sie dasselbe Azure-Abonnement aus, in dem sich auch die Hostgruppe befindet.
    • Ressourcengruppe: Wählen Sie Neu erstellen. Geben Sie einen eindeutigen Namen für die Ressourcengruppe an, z. B. myResourceGroup, und wählen Sie dann OK aus.
    • Speicherort: Wählen Sie denselben Speicherort aus, an dem sich auch die Hostgruppe befindet.
    • Clustername: Geben Sie einen eindeutigen Namen für Ihren Cluster ein, z. B. mysfcluster.
    • Administratorbenutzername: Geben Sie einen Administratornamen ein, der auf den zugrunde liegenden VMs des Clusters für RDP verwendet werden soll.
    • Administratorkennwort: Geben Sie ein Administratorkennwort ein, das auf den zugrunde liegenden VMs des Clusters für RDP verwendet werden soll.
    • Clientzertifikat-Fingerabdruck: Geben Sie den Fingerabdruck des Clientzertifikats an, das Sie für den Zugriff auf Ihren Cluster verwenden möchten. Falls Sie nicht über ein Zertifikat verfügen, befolgen Sie die Anleitungen unter Festlegen und Abrufen eines Zertifikats, um ein selbstsigniertes Zertifikat zu erstellen.
    • Name des Knotentyps: Geben Sie einen eindeutigen Namen für Ihren Knotentyp ein, z. B. nt1.
  3. Stellen Sie über eine der folgenden Methoden eine ARM-Vorlage bereit:

    • Portalumgebung für benutzerdefinierte ARM-Vorlage: Benutzerdefinierte Bereitstellung – Microsoft Azure. Wählen Sie die nachstehende Schaltfläche aus, um sich bei Azure anzumelden, und geben Sie Ihre eigenen Werte für die Parameter der Vorlage an. Stellen Sie dann die Vorlage bereit.

      Button to deploy the Resource Manager template to Azure.

    • PowerShell-Cmdlets für ARM: New-AzResourceGroupDeployment (Az.Resources). Speichern Sie die Pfade Ihrer ARM-Vorlagen- und Parameterdateien in Variablen, und stellen Sie anschließend die Vorlage bereit.

      $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
      

    Warten Sie, bis die Bereitstellung erfolgreich abgeschlossen ist.

Problembehandlung

  1. Der folgende Fehler wird ausgegeben, wenn SFRP keinen Zugriff auf die Hostgruppe hat. Sehen Sie sich die oben beschriebenen Rollenzuweisungsschritte noch einmal an, und stellen Sie sicher, dass die Zuordnung ordnungsgemäß ausgeführt wurde.
         {  
                "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. Wenn sich die Hostgruppe in einem anderen Abonnement befindet als die Cluster, wird der folgende Fehler gemeldet. Stellen Sie sicher, dass beide im gleichen Abonnement sind.
          {  
                "code": "BadRequest",  
                "message": "Entity subscriptionId in resource reference id /subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/[<HostGroup>] is invalid."  
              }
    
  3. Wenn das Kontingent für die Hostgruppe nicht ausreichend ist, wird der folgende Fehler ausgegeben:
          {  
                "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ächste Schritte