Création d’un modèle Service Fabric Cluster Resource Manager

Un cluster Azure Service Fabric est un ensemble de machines virtuelles connecté au réseau, sur lequel vos microservices sont déployés et gérés. Un cluster Service Fabric s’exécutant dans Azure est une ressource Azure, et il est déployé, géré et surveillé avec Resource Manager. Cet article décrit comment créer un modèle Resource Manager pour un cluster Service Fabric s’exécutant dans Azure. Quand le modèle est terminé, vous pouvez déployer le cluster sur Azure.

La sécurité du cluster est configurée lors de la première configuration du cluster et elle ne peut pas être modifiée ultérieurement. Avant de configurer un cluster, lisez les scénarios de sécurité du cluster Service Fabric. Dans Azure, Service Fabric utilise un certificat x509 pour sécuriser votre cluster et ses points de terminaison, authentifier les clients et chiffrer les données. Microsoft Entra ID est également recommandé pour sécuriser l’accès aux points de terminaison de gestion. Les locataires et les utilisateurs Microsoft Entra doivent être créés avant de créer le cluster. Pour plus d’informations, consultez Configurer Microsoft Entra ID pour authentifier des clients.

Avant de déployer un cluster de production pour exécuter des charges de travail de production, lisez bien la liste de vérification pour la préparation à la production.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Créer le modèle Resource Manager

Des exemples de modèles Resource Manager sont disponibles dans les exemples Azure sur GitHub. Ces modèles peuvent être utilisés comme point de départ pour votre modèle de cluster.

Cet article utilise l’exemple de modèle et les paramètres du modèle du cluster sécurisé à 5 nœuds. Téléchargez azuredeploy.json et azuredeploy.parameters.json sur votre ordinateur, et ouvrez les deux fichiers dans votre éditeur de texte préféré.

Notes

Pour les clouds nationaux (Azure Government, Microsoft Azure géré par 21Vianet, Azure Allemagne), vous devez également ajouter les fabricSettings suivants à votre modèle : AADLoginEndpoint, AADTokenEndpointFormat et AADCertEndpointFormat.

Ajout de certificats

Pour ajouter les certificats à un modèle Resource Manager de cluster, vous devez référencer le Key Vault qui contient les clés de certificat. Ajoutez ces paramètres et valeurs du coffre de clés dans un fichier de paramètres de modèle Resource Manager (azuredeploy.parameters.json).

Ajouter tous les certificats à l’osProfile du groupe de machines virtuelles identiques

Chaque certificat qui est installé dans le cluster doit être configuré dans la section osProfile de la ressource de groupe identique (Microsoft.Compute/virtualMachineScaleSets). Cela permet d’indiquer au fournisseur de ressources d’installer le certificat sur les machines virtuelles. Cette installation inclut le certificat de cluster et tous les certificats de sécurité d’application que vous projetez d’utiliser pour vos applications :

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

Configurer le certificat de cluster Service Fabric

Le certificat d’authentification de cluster doit être configuré à la fois dans la ressource de cluster Service Fabric (Microsoft.ServiceFabric/clusters) et dans l’extension de Service Fabric pour les groupes de machines virtuelles identiques dans la ressource associée à ces derniers. Cette disposition permet au fournisseur de ressources de Service Fabric de configurer le certificat pour l’authentification du cluster et l’authentification du serveur pour les points de terminaison de gestion.

Ajouter les informations de certificat à la ressource de groupe de machines virtuelles identiques

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

Ajouter les informations de certificat à la ressource de cluster Service Fabric

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

Ajouter la configuration Microsoft Entra pour utiliser l’ID Microsoft Entra pour l’accès client

Vous ajoutez la configuration Microsoft Entra à un modèle Resource Manager de cluster en référençant le coffre de clés qui contient les clés de certificat. Ajoutez ces paramètres et valeurs de Microsoft Entra dans un fichier de paramètres de modèle Resource Manager (azuredeploy.parameters.json).

Remarque

Sur Linux, les locataires et les utilisateurs Microsoft Entra doivent être créés avant de créer le cluster. Pour plus d’informations, consultez Configurer Microsoft Entra ID pour authentifier des 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')]"
    },
    ...
  }
}

Renseigner le fichier de paramètres avec les valeurs

Enfin, utilisez les valeurs de sortie des commandes PowerShell Azure AD et du coffre de clés pour renseigner le fichier de paramètres.

Si vous envisagez d’utiliser les modules PowerShell Azure Service Fabric RM, il est inutile de renseigner les informations de certificat de cluster. Si vous souhaitez que le système génère le certificat auto-signé pour la sécurité du cluster, il vous suffit de les conserver Null.

Notes

Pour que les modules RM récupèrent et renseignent des valeurs de paramètres vides, les noms des paramètres doivent correspondre à ceux indiqués ci-dessous.

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

Si vous utilisez des certificats d’application ou un cluster existant que vous avez chargé dans le coffre de clés, vous devez récupérer ces informations et les renseigner.

Les modules RM ne peuvent pas générer la configuration de Microsoft Entra pour vous, donc si vous envisagez d’utiliser Microsoft Entra ID pour l’accès client, vous devez le renseigner.

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

Tester votre modèle

Pour tester votre modèle Resource Manager avec un fichier de paramètres, utilisez la commande PowerShell suivante :

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

Si vous rencontrez des problèmes et obtenez des messages difficiles à déchiffrer, utilisez « -Debug » comme option.

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

Le diagramme suivant montre comment votre Key Vault et la configuration Microsoft Entra s’appliquent à votre modèle Resource Manager.

Resource Manager dependency map

Étapes suivantes

Maintenant que vous avez un modèle pour votre cluster, découvrez comment déployer le cluster sur Azure. Si vous ne l’avez pas déjà fait, lisez la liste de vérification de préparation à la production avant de déployer un cluster de production.

Pour en savoir plus sur la syntaxe JSON et les propriétés pour les ressources déployées dans cet article, consultez :