Vytvoření šablony Resource Manageru clusteru Service Fabric

Cluster Azure Service Fabric je sada virtuálních počítačů připojených k síti, do kterých se nasazují a spravují vaše mikroslužby. Cluster Service Fabric spuštěný v Azure je prostředek Azure, který se nasazuje, spravuje a monitoruje pomocí Resource Manageru. Tento článek popisuje, jak vytvořit šablonu Resource Manageru pro cluster Service Fabric běžící v Azure. Po dokončení šablony můžete cluster nasadit v Azure.

Zabezpečení clusteru je nakonfigurováno při prvním nastavení clusteru a nelze ho později změnit. Před nastavením clusteru si přečtěte scénáře zabezpečení clusteru Service Fabric. Service Fabric v Azure používá certifikát x509 k zabezpečení clusteru a jeho koncových bodů, ověřování klientů a šifrování dat. K zabezpečení přístupu ke koncovým bodům správy se doporučuje také ID Microsoft Entra. Před vytvořením clusteru je nutné vytvořit tenanty a uživatele Microsoft Entra. Další informace najdete v tématu Nastavení ID Microsoft Entra pro ověřování klientů.

Před nasazením produkčního clusteru pro spouštění produkčních úloh nezapomeňte nejprve přečíst kontrolní seznam připravenosti pro produkční prostředí.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Vytvoření šablony Resource Manageru

Ukázkové šablony Resource Manageru jsou k dispozici v ukázkách Azure na GitHubu. Tyto šablony je možné použít jako výchozí bod pro vaši šablonu clusteru.

Tento článek používá ukázkovou šablonu a parametry šablony zabezpečeného clusteru s pěti uzly. Stáhněte si soubor azuredeploy.json a azuredeploy.parameters.json do počítače a otevřete oba soubory v oblíbeném textovém editoru.

Poznámka:

V případě národních cloudů (Azure Government, Microsoft Azure provozovaný společností 21Vianet, Azure Germany) byste také měli do šablony přidat následující fabricSettings položky: AADLoginEndpointAADTokenEndpointFormat a AADCertEndpointFormat.

Přidání certifikátů

Certifikáty přidáte do šablony Resource Manageru clusteru odkazováním na trezor klíčů, který obsahuje klíče certifikátu. Přidejte tyto parametry a hodnoty trezoru klíčů do souboru parametrů šablony Resource Manageru (azuredeploy.parameters.json).

Přidání všech certifikátů do škálovací sady virtuálních počítačů osProfile

Každý certifikát nainstalovaný v clusteru musí být nakonfigurovaný v části osProfile prostředku škálovací sady (Microsoft.Compute/virtualMachineScaleSets). Tato akce dává poskytovateli prostředků pokyn, aby na virtuální počítače nainstaloval certifikát. Tato instalace zahrnuje certifikát clusteru i všechny certifikáty zabezpečení aplikací, které plánujete použít pro vaše aplikace:

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

Konfigurace certifikátu clusteru Service Fabric

Ověřovací certifikát clusteru musí být nakonfigurovaný v prostředku clusteru Service Fabric (Microsoft.ServiceFabric/clusters) i v rozšíření Service Fabric pro škálovací sady virtuálních počítačů v prostředku škálovací sady virtuálních počítačů. Toto uspořádání umožňuje poskytovateli prostředků Service Fabric nakonfigurovat ho pro použití pro ověřování clusteru a ověřování serveru pro koncové body správy.

Přidání informací o certifikátu prostředku škálovací sady virtuálních počítačů

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

Přidání informací o certifikátu do prostředku clusteru 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')]"
    },
    ...
  }
}

Přidání konfigurace Microsoft Entra pro použití ID Microsoft Entra pro klientský přístup

Konfiguraci Microsoft Entra přidáte do šablony Resource Manageru clusteru odkazováním na trezor klíčů, který obsahuje klíče certifikátu. Přidejte tyto parametry a hodnoty Microsoft Entra do souboru parametrů šablony Resource Manageru (azuredeploy.parameters.json).

Poznámka:

V Linuxu je potřeba vytvořit tenanty a uživatele Microsoft Entra před vytvořením clusteru. Další informace najdete v tématu Nastavení ID Microsoft Entra pro ověřování klientů.

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

Naplnění souboru parametrů hodnotami

Nakonec použijte výstupní hodnoty z trezoru klíčů a příkazů Azure AD PowerShellu k naplnění souboru parametrů.

Pokud plánujete používat moduly Azure Service Fabric RM PowerShellu, nemusíte naplnit informace o certifikátu clusteru. Pokud chcete, aby systém vygeneroval certifikát podepsaný svým držitelem pro zabezpečení clusteru, ponechejte ho jako null.

Poznámka:

Aby moduly RM vyzvedly a naplnily tyto prázdné hodnoty parametrů, názvy parametrů odpovídají následujícím názvům.

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

Pokud používáte certifikáty aplikací nebo používáte existující cluster, který jste nahráli do trezoru klíčů, musíte tyto informace získat a naplnit je.

Moduly RM nemají možnost vygenerovat pro vás konfiguraci Microsoft Entra, takže pokud plánujete používat ID Microsoft Entra pro klientský přístup, musíte ho naplnit.

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

Otestování šablony

K otestování šablony Resource Manageru se souborem parametrů použijte následující příkaz PowerShellu:

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

Pokud narazíte na problémy a získáte kryptografické zprávy, použijte jako možnost možnost "-Debug".

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

Následující diagram znázorňuje umístění trezoru klíčů a konfigurace Microsoft Entra do šablony Resource Manageru.

Resource Manager dependency map

Další kroky

Teď, když máte šablonu pro cluster, se dozvíte, jak cluster nasadit do Azure. Pokud jste to ještě neudělali, přečtěte si kontrolní seznam provozní připravenosti před nasazením produkčního clusteru.

Další informace o syntaxi a vlastnostech JSON pro prostředky nasazené v tomto článku najdete tady: