Share via


Criar um modelo do Resource Manager do cluster do Service Fabric

Um cluster do Azure Service Fabric é um conjunto conectado por rede de máquinas virtuais no qual os microsserviços são implantados e gerenciados. Um cluster do Service Fabric em execução no Azure é um recurso do Azure e é implantado, gerenciado e monitorado usando o Resource Manager. Este artigo descreve como criar um modelo do Resource Manager para um cluster do Service Fabric em execução no Azure. Quando o modelo estiver concluído, será possível implantar o cluster no Azure.

A segurança de cluster é configurada quando o cluster é configurado pela primeira vez e não poderá ser alterada posteriormente. Antes de configurar um cluster, leia Cenários de segurança de cluster do Service Fabric. No Azure, o Service Fabric usa o certificado x509 para proteger o cluster e os pontos de extremidade, autenticar clientes e criptografar dados. O Microsoft Entra ID também é recomendado para proteger o acesso aos pontos de extremidade de gerenciamento. Os locatários e usuários do Microsoft Entra devem ser criados antes de criar o cluster. Para saber mais, leia Configurar o Microsoft Entra ID para autenticar clientes.

Antes de implantar um cluster de produção para executar cargas de trabalho de produção, primeiro leia a Lista de verificação de preparação para produção.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Criar o modelo do Gerenciador de Recursos

Os exemplos de modelo do Resource Manager estão disponíveis nos Exemplos do Azure no GitHub. Esses modelos podem ser usados como ponto de partida para o modelo de cluster.

Este artigo usa o modelo de exemplo de cluster seguro de cinco nós e os parâmetros de modelo. Baixe azuredeploy.json e azuredeploy.parameters.json no computador e abra os dois arquivos no seu editor de texto favorito.

Observação

Para nuvens nacionais (Azure Governamental, Microsoft Azure operado pela 21Vianet, Azure Alemanha), você também deve adicionar o seguinte fabricSettings ao seu modelo: AADLoginEndpoint, AADTokenEndpointFormat e AADCertEndpointFormat.

Adicionar certificados

Os certificados são adicionados a um modelo do Resource Manager de cluster quando você faz a referência ao Key Vault que contém as chaves de certificado. Adicione esses parâmetros de cofre de chaves e valores em um arquivo de parâmetros de modelo do Resource Manager (azuredeploy.parameters.json).

Adicionar todos os certificados ao conjunto de dimensionamento de máquinas virtuais osProfile

Todos os certificados instalados no cluster devem ser configurados na seção osProfile do recurso de conjunto de dimensionamento (Microsoft.Compute/virtualMachineScaleSets). Essa ação instrui o provedor de recursos para instalar o certificado nas VMs. Essa instalação inclui o certificado do cluster e os certificados de segurança de aplicativo que você planeja usar para seus aplicativos:

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

Configurar o certificado do cluster do Service Fabric

O certificado de autenticação do cluster tem que ser configurado tanto no recurso de cluster do Service Fabric (Microsoft.ServiceFabric/clusters) quanto na extensão do Service Fabric para conjuntos de dimensionamento de máquinas virtuais no recurso de conjunto de dimensionamento de máquinas virtuais. Essa disposição permite que o provedor de recursos do Service Fabric o configure para autenticação do cluster e autenticação de servidor para pontos de extremidade de gerenciamento.

Adicionar as informações de certificado ao recurso de conjunto de dimensionamento de máquinas virtuais

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

Adicionar as informações de certificado ao recurso de cluster do 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')]"
    },
    ...
  }
}

Adicionar a configuração do Microsoft Entra para usar a ID do Microsoft Entra para acesso ao cliente

Adicione a configuração do Microsoft Entra a um modelo do Resource Manager de cluster fazendo referência ao cofre de chaves que contém as chaves de certificado. Adicione esses parâmetros e valores do Microsoft Entra em um arquivo de parâmetros de modelo do Resource Manager (azuredeploy.parameters.json).

Observação

No Linux, é necessário criar locatários e usuários do Microsoft Entra antes de criar o cluster. Para saber mais, leia Configurar o Microsoft Entra ID para autenticar clientes.

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

Preencha o arquivo de parâmetro com os valores

Por fim, use os valores de saída dos comandos do cofre de chaves e do PowerShell do Azure AD para preencher o arquivo de parâmetros.

Se você planeja usar os módulos do PowerShell do Azure service fabric RM, não é necessário preencher as informações de certificado de cluster. Se você deseja que o sistema para gerar o autoatendimento assinado certificado de segurança de cluster, apenas mantê-los como null.

Observação

Para que os módulos do RM peguem e preencham esses valores de parâmetros vazia, os nomes de parâmetros devem corresponder aos nomes abaixo

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

Se você estiver usando certificados de aplicativo ou estiver usando um cluster existente que você carregou no cofre da chave, será necessário obter essas informações e preenchê-las.

Os módulos do RM não têm a capacidade de gerar a configuração do Microsoft Entra para você, portanto, se você pretende usar o Microsoft Entra ID para acesso de cliente, precisará preenchê-lo.

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

Testar o modelo

Use o seguinte comando do PowerShell para testar o modelo do Resource Manager com um arquivo de parâmetros:

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

Caso você se depare com problemas e receba mensagens criptografadas, use "-Debug" como uma opção.

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

O diagrama a seguir ilustra onde a configuração do cofre de chaves e do Microsoft Entra se encaixa em seu modelo do Resource Manager.

Resource Manager dependency map

Próximas etapas

Agora que você tem um modelo para o cluster, saiba como implantar o cluster no Azure. Se você ainda não tiver feito isso, leia a Lista de verificação de preparação para produção antes de implantar um cluster de produção.

Para saber mais sobre as propriedades e a sintaxe JSON dos recursos implantados neste artigo, consulte: