Een Service Fabric-cluster maken met Resource Manager-sjabloon

Een Azure Service Fabric-cluster is een met het netwerk verbonden set virtuele machines waarin uw microservices worden geïmplementeerd en beheerd. Een Service Fabric-cluster dat wordt uitgevoerd in Azure is een Azure-resource en wordt geïmplementeerd, beheerd en bewaakt met behulp van Resource Manager. In dit artikel wordt beschreven hoe u een Resource Manager-sjabloon maakt voor een Service Fabric-cluster dat wordt uitgevoerd in Azure. Wanneer de sjabloon is voltooid, kunt u het cluster implementeren in Azure.

Clusterbeveiliging wordt geconfigureerd wanneer het cluster voor het eerst wordt ingesteld en kan later niet meer worden gewijzigd. Lees beveiligingsscenario's voor Service Fabric-clusters voordat u een cluster instelt. In Azure gebruikt Service Fabric x509-certificaat om uw cluster en de eindpunten ervan te beveiligen, clients te verifiëren en gegevens te versleutelen. Microsoft Entra-id wordt ook aanbevolen om de toegang tot beheereindpunten te beveiligen. Microsoft Entra-tenants en -gebruikers moeten worden gemaakt voordat u het cluster maakt. Lees Microsoft Entra-id instellen voor het verifiëren van clients voor meer informatie.

Voordat u een productiecluster implementeert om productieworkloads uit te voeren, moet u eerst de controlelijst productiegereedheid lezen.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Het Resource Manager-sjabloon maken

Voorbeeldsjablonen van Resource Manager zijn beschikbaar in de Azure-voorbeelden op GitHub. Deze sjablonen kunnen worden gebruikt als uitgangspunt voor uw clustersjabloon.

In dit artikel worden de voorbeeldsjabloon en sjabloonparameters voor een beveiligd cluster met vijf knooppunten gebruikt. Download azuredeploy.json en azuredeploy.parameters.json naar uw computer en open beide bestanden in uw favoriete teksteditor.

Notitie

Voor nationale clouds (Azure Government, Microsoft Azure beheerd door 21Vianet, Azure Duitsland), moet u ook het volgende fabricSettings toevoegen aan uw sjabloon: AADLoginEndpoint, AADTokenEndpointFormat en AADCertEndpointFormat.

Certificaten toevoegen

U voegt certificaten toe aan een Resource Manager-clustersjabloon door te verwijzen naar de sleutelkluis die de certificaatsleutels bevat. Voeg deze sleutelkluisparameters en -waarden toe in een Resource Manager-sjabloonparametersbestand (azuredeploy.parameters.json).

Alle certificaten toevoegen aan de virtuele-machineschaalset osProfile

Elk certificaat dat in het cluster is geïnstalleerd, moet worden geconfigureerd in de sectie osProfile van de schaalsetresource (Microsoft.Compute/virtualMachineScaleSets). Met deze actie wordt de resourceprovider geïnstrueerd om het certificaat op de VM's te installeren. Deze installatie omvat zowel het clustercertificaat als eventuele toepassingsbeveiligingscertificaten die u voor uw toepassingen wilt gebruiken:

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

Het Service Fabric-clustercertificaat configureren

Het certificaat voor clusterverificatie moet worden geconfigureerd in zowel de Service Fabric-clusterresource (Microsoft.ServiceFabric/clusters) als de Service Fabric-extensie voor virtuele-machineschaalsets in de resource van de virtuele-machineschaalset. Met deze rangschikking kan de Service Fabric-resourceprovider deze configureren voor gebruik voor clusterverificatie en serververificatie voor beheereindpunten.

Voeg de certificaatgegevens toe aan de virtuele-machineschaalsetresource

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

De certificaatgegevens toevoegen aan de Service Fabric-clusterresource

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

Microsoft Entra-configuratie toevoegen voor het gebruik van Microsoft Entra-id voor clienttoegang

U voegt de Microsoft Entra-configuratie toe aan een Resource Manager-clustersjabloon door te verwijzen naar de sleutelkluis die de certificaatsleutels bevat. Voeg deze Microsoft Entra-parameters en -waarden toe in een Resource Manager-sjabloonparametersbestand (azuredeploy.parameters.json).

Notitie

Op Linux moeten Microsoft Entra-tenants en -gebruikers worden gemaakt voordat u het cluster maakt. Lees Microsoft Entra-id instellen voor het verifiëren van clients voor meer informatie.

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

Vul het parameterbestand in met de waarden

Gebruik ten slotte de uitvoerwaarden uit de sleutelkluis en Azure AD PowerShell-opdrachten om het parameterbestand te vullen.

Als u van plan bent om de Azure Service Fabric RM PowerShell-modules te gebruiken, hoeft u de clustercertificaatgegevens niet in te vullen. Als u wilt dat het systeem het zelfondertekende certificaat genereert voor clusterbeveiliging, houdt u deze gewoon als null.

Notitie

Voordat de RM-modules deze lege parameterwaarden kunnen ophalen en vullen, komen de parameters veel overeen met de onderstaande namen

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

Als u toepassingscertificaten gebruikt of een bestaand cluster gebruikt dat u hebt geüpload naar de sleutelkluis, moet u deze informatie ophalen en invullen.

De RM-modules hebben niet de mogelijkheid om de Microsoft Entra-configuratie voor u te genereren, dus als u van plan bent om de Microsoft Entra-id voor clienttoegang te gebruiken, moet u deze invullen.

{
    "$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>"
        },
        ...
    }
}

Uw sjabloon testen

Gebruik de volgende PowerShell-opdracht om uw Resource Manager-sjabloon te testen met een parameterbestand:

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

Als u problemen ondervindt en cryptische berichten krijgt, gebruikt u '-Debug' als optie.

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

In het volgende diagram ziet u waar uw sleutelkluis en de Configuratie van Microsoft Entra in uw Resource Manager-sjabloon passen.

Resource Manager dependency map

Volgende stappen

Nu u een sjabloon voor uw cluster hebt, leert u hoe u het cluster implementeert in Azure. Als u dat nog niet hebt gedaan, leest u de controlelijst productiegereedheid voordat u een productiecluster implementeert.

Zie voor meer informatie over de JSON-syntaxis en eigenschappen voor de resources die in dit artikel zijn geïmplementeerd: