Erstellen einer Resource Manager-Vorlage für Service Fabric-Cluster

Ein Azure Service Fabric-Cluster ist eine vernetzte Gruppe von virtuellen Computern, auf denen Ihre Microservices bereitgestellt und verwaltet werden. Bei einem Service Fabric-Cluster, der in Azure ausgeführt wird, handelt es sich um eine Azure-Ressource, und er wird mithilfe des Ressourcen-Managers bereitgestellt, verwaltet und überwacht. In diesem Artikel wird beschrieben, wie eine Resource Manager-Vorlage für einen Service Fabric-Cluster, der in Azure ausgeführt wird, erstellt wird. Wenn die Vorlage vollständig ist, können Sie den Cluster in Azure bereitstellen.

Die Clustersicherheit wird konfiguriert, sobald der Cluster zum ersten Mal eingerichtet wird. Diese kann später nicht geändert werden. Lesen Sie vor dem Einrichten eines Clusters den Artikel Szenarien für die Clustersicherheit in Service Fabric. In Azure verwendet Service Fabric das X.509-Zertifikat zum Schützen Ihres Clusters und seiner Endpunkte sowie zum Authentifizieren von Clients und Verschlüsseln von Daten. Microsoft Entra ID wird auch empfohlen, um den Zugriff auf Verwaltungsendpunkte zu sichern. Microsoft Entra-Mandanten und -Benutzer*innen müssen vor der Erstellung des Clusters erstellt werden. Weitere Informationen finden Sie unter Einrichten von Microsoft Entra ID zum Authentifizieren von Clients.

Bevor Sie einen Produktionscluster für die Ausführung von Produktionsworkloads bereitstellen, lesen Sie zuerst die Prüfliste für die Produktionsbereitschaft.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Erstellen der Resource Manager-Vorlage

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.

In diesem Artikel werden die Beispielvorlage für einen Sicherheitscluster mit fünf Knoten und die zugehörigen Vorlagenparameter verwendet. Laden Sie azuredeploy.json und azuredeploy.parameters.json auf Ihren Computer herunter, und öffnen Sie beide Dateien in Ihrem bevorzugten Text-Editor.

Hinweis

Für nationale Clouds (Azure Government, Microsoft Azure, betrieben von 21Vianet, Azure Deutschland) sollten Sie auch die folgenden fabricSettings Ihrer Vorlage hinzufügen: AADLoginEndpoint, AADTokenEndpointFormat und AADCertEndpointFormat.

Hinzufügen von Zertifikaten

Um Zertifikate einer Resource Manager-Vorlage für einen Cluster hinzuzufügen, verweisen Sie auf den Schlüsseltresor mit den Zertifikatschlüsseln. Fügen Sie die Schlüsseltresorparameter und -werte zu einer Resource Manager-Vorlagenparameterdatei (azuredeploy.parameters.json) hinzu.

Hinzufügen aller Zertifikate zur VM-Skalierungsgruppe „osProfile“

Jedes im Cluster installierte Zertifikat muss im osProfile-Abschnitt der Skalierungsgruppenressource (Microsoft.Compute/virtualMachineScaleSets) konfiguriert werden. Dadurch wird der Ressourcenanbieter angewiesen, das Zertifikat auf den virtuellen Computern zu installieren. Die Installation umfasst sowohl das Clusterzertifikat als auch sämtliche Anwendungssicherheitszertifikate, die Sie für Ihre Anwendungen verwenden möchten:

{
  "apiVersion": "[variables('vmssApiVersion')]",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "osProfile": {
      ...
      "secrets": [
        {
          "sourceVault": {
            "id": "[parameters('sourceVaultValue')]"
          },
          "vaultCertificates": [
            {
              "certificateStore": "[parameters('clusterCertificateStorevalue')]",
              "certificateUrl": "[parameters('clusterCertificateUrlValue')]"
            },
            {
              "certificateStore": "[parameters('applicationCertificateStorevalue')",
              "certificateUrl": "[parameters('applicationCertificateUrlValue')]"
            },
            ...
          ]
        }
      ]
    }
  }
}

Konfigurieren des Service Fabric-Clusterzertifikats

Das Zertifikat für die Clusterauthentifizierung muss sowohl in der Service Fabric-Clusterressource (Microsoft.ServiceFabric/clusters) als auch in der Service Fabric-Erweiterung für VM-Skalierungsgruppen in der VM-Skalierungsgruppenressource konfiguriert werden. Dadurch kann der Service Fabric-Ressourcenanbieter das Zertifikat für die Clusterauthentifizierung und die Serverauthentifizierung für Verwaltungsendpunkte konfigurieren.

Hinzufügen der Zertifikatinformationen in der VM-Skalierungsgruppenressource

{
  "apiVersion": "[variables('vmssApiVersion')]",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "virtualMachineProfile": {
      "extensionProfile": {
        "extensions": [
          {
            "name": "[concat('ServiceFabricNodeVmExt_',variables('vmNodeType0Name'))]",
            "properties": {
              ...
              "settings": {
                ...
                "certificate": {
                  "commonNames": ["[parameters('certificateCommonName')]"],
                  "x509StoreName": "[parameters('clusterCertificateStoreValue')]"
                },
                ...
              }
            }
          }
        ]
      }
    }
  }
}

Hinzufügen der Zertifikatinformationen zur Service Fabric-Clusterressource

{
  "apiVersion": "2018-02-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
    "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]"
  ],
  "properties": {
    "certificateCommonNames": {
        "commonNames": [
        {
            "certificateCommonName": "[parameters('certificateCommonName')]",
            "certificateIssuerThumbprint": ""
        }
        ],
        "x509StoreName": "[parameters('certificateStoreValue')]"
    },
    ...
  }
}

Hinzufügen der Microsoft Entra-Konfiguration zur Verwendung von Microsoft Entra ID für den Clientzugriff

Fügen Sie die Microsoft Entra-Konfiguration einer Resource Manager-Vorlage für einen Cluster hinzu, indem Sie auf den Schlüsseltresor mit den Zertifikatschlüsseln verweisen. Fügen Sie die Microsoft Entra-Paramter und -Werte einer Resource Manager-Vorlagenparameterdatei (azuredeploy.parameters.json) hinzu.

Hinweis

Unter Linux müssen Microsoft Entra-Mandanten und -Benutzer*innen vor der Erstellung des Clusters erstellt werden. Weitere Informationen finden Sie unter Einrichten von Microsoft Entra ID zum Authentifizieren von Clients.

{
  "apiVersion": "2018-02-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  ...
  "properties": {
    "certificateCommonNames": {
        "commonNames": [
        {
            "certificateCommonName": "[parameters('certificateCommonName')]",
            "certificateIssuerThumbprint": ""
        }
        ],
        "x509StoreName": "[parameters('certificateStoreValue')]"
    },
    ...
    "azureActiveDirectory": {
      "tenantId": "[parameters('aadTenantId')]",
      "clusterApplication": "[parameters('aadClusterApplicationId')]",
      "clientApplication": "[parameters('aadClientApplicationId')]"
    },
    ...
  }
}

Füllen Sie die Parameterdatei mit den Werten auf.

Füllen Sie die Parameterdatei abschließend mit den Ausgabewerten aus den Schlüsseltresor- und Azure AD-PowerShell-Befehlen auf.

Wenn Sie die Azure Service Fabric-RM-PowerShell-Module verwenden möchten, müssen Sie die Clusterzertifikatinformationen nicht ausfüllen. Wenn das System das selbstsignierte Zertifikat für die Clustersicherheit generieren soll, belassen Sie sie bei NULL.

Hinweis

Für die RM-Module, die diese leeren Parameterwerte übernehmen und auffüllen sollen, müssen die Parameternamen mit den folgenden Namen übereinstimmen.

"clusterCertificateThumbprint": {
    "value": ""
},
"certificateCommonName": {
    "value": ""
},
"clusterCertificateUrlValue": {
    "value": ""
},
"sourceVaultvalue": {
    "value": ""
},

Wenn Sie Anwendungszertifikate oder einen vorhandenen Cluster verwenden, den Sie in den Schlüsseltresor hochgeladen haben, rufen Sie diese Informationen ab, und füllen Sie sie auf.

Die RM-Module können die Microsoft Entra-Konfiguration nicht für Sie generieren. Wenn Sie Microsoft Entra ID für den Clientzugriff verwenden möchten, müssen Sie sie eintragen.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        ...
        "clusterCertificateStoreValue": {
            "value": "My"
        },
        "clusterCertificateThumbprint": {
            "value": "<thumbprint>"
        },
        "clusterCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myclustercert/4d087088df974e869f1c0978cb100e47"
        },
        "applicationCertificateStorevalue": {
            "value": "My"
        },
        "applicationCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myapplicationcert/2e035058ae274f869c4d0348ca100f08"
        },
        "sourceVaultvalue": {
            "value": "/subscriptions/<guid>/resourceGroups/mycluster-keyvault/providers/Microsoft.KeyVault/vaults/myvault"
        },
        "aadTenantId": {
            "value": "<guid>"
        },
        "aadClusterApplicationId": {
            "value": "<guid>"
        },
        "aadClientApplicationId": {
            "value": "<guid>"
        },
        ...
    }
}

Testen der Vorlage

Verwenden Sie den folgenden PowerShell-Befehl, um Ihre Resource Manager-Vorlage mit einer Parameterdatei zu testen:

Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json

Falls Probleme auftreten und Sie kryptische Nachrichten erhalten, verwenden Sie „-Debug“ als Option.

Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug

Das folgende Diagramm veranschaulicht die Platzierung der Schlüsseltresor- und Microsoft Entra-Konfiguration in der Resource Manager-Vorlage.

Resource Manager dependency map

Nächste Schritte

Da Sie nun eine Vorlage für Ihren Cluster besitzen, lernen Sie, wie Sie den Cluster in Azure bereitstellen. Wenn Sie die Prüfliste für die Produktionsbereitschaft noch nicht gelesen haben, holen Sie dies nach, bevor Sie einen Produktionscluster bereitstellen.

Informationen zur JSON-Syntax und zu den Eigenschaften für die in diesem Artikel bereitgestellten Ressourcen finden Sie unter: