Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo você aprenderá como implantar um cluster Linux do Service Fabric em uma VNET (rede virtual) do Azure usando a CLI do Azure e um modelo. Ao terminar, você terá um cluster em execução na nuvem no qual você poderá implantar aplicativos. Para criar um cluster do Windows usando o PowerShell, consulte Create a secure Windows cluster on Azure (Criar um cluster seguro do Windows no Azure).
Pré-requisitos
Antes de começar:
- Se você não tem uma assinatura do Azure, crie uma conta gratuita
- Instalar a CLI do Service Fabric
- Instale a CLI do Azure
- Para saber os principais conceitos sobre clusters, leia Visão geral dos clusters do Azure
- Planejar e preparar para uma implantação de cluster de produção.
Os procedimentos a seguir criam um cluster de sete nós do Service Fabric. Para calcular o custo incorrido ao executar um cluster do Service Fabric no Azure, use a Calculadora de Preços do Azure.
Baixar e explorar o modelo
Baixe os seguintes arquivos do modelo do Resource Manager:
Para Ubuntu 18.04 LTS:
- 
              AzureDeploy.json
- O atributo vmImageSku é "18.04-LTS"
- Microsoft.ServiceFabric/recursos de clusters - apiVersion sendo definido como "2019-03-01"
- propriedade vmImage sendo definida como "Ubuntu18_04"
 
 
- AzureDeploy.Parameters.json
Para Ubuntu 20.04 LTS:
- 
              AzureDeploy.json
- O atributo vmImageSku é "20.04-LTS"
- Microsoft.ServiceFabric/recursos de clusters - apiVersion sendo definido como "2019-03-01"
- A propriedade vmImage sendo definida como "Ubuntu20_04"
 
 
- AzureDeploy.Parameters.json
Esses modelos implantam um cluster seguro de sete máquinas virtuais e três tipos de nó em uma rede virtual. Outros modelos de exemplo podem ser encontrados no GitHub. O AzureDeploy.json implanta uma série de recursos, incluindo os seguintes.
Cluster do Service Fabric
No recurso Microsoft.ServiceFabric/clusters, um cluster do Linux é implantado com as seguintes características:
- três tipos de nó
- cinco nós no tipo de nó primário (configurável nos parâmetros de modelo), um nó em cada um dos outros tipos de nó
- SO: (Ubuntu 18.04 LTS / Ubuntu 20.04) (configurável nos parâmetros do modelo)
- certificado protegidos (configurável nos parâmetros de modelo)
- Serviço DNS está habilitado
- Nível de durabilidade de Bronze (configurável nos parâmetros de modelo)
- Nível de confiabilidade de Prata (configurável nos parâmetros de modelo)
- ponto de extremidade de conexão de cliente: 19000 (configurável nos parâmetros de modelo)
- Ponto de extremidade de conexão de cliente: 19080 (configurável nos parâmetros de modelo)
Azure Load Balancer
No recurso Microsoft.Network/loadBalancers, um balanceador de carga é configurado e investigações e regras são configuradas para as seguintes portas:
- ponto de extremidade de conexão do cliente: 19000
- ponto de extremidade de gateway HTTP: 19080
- porta do aplicativo: 80
- porta do aplicativo: 443
Rede virtual e sub-rede
Os nomes da rede virtual e da sub-rede são declarados nos parâmetros de modelo. Espaços de endereço de rede virtual e sub-rede também são declarados nos parâmetros de modelo e configurados no recurso Microsoft.Network/virtualNetworks:
- espaço de endereço da rede virtual: 10.0.0.0/16
- espaço de endereço de sub-rede do Service Fabric: 10.0.2.0/24
Se forem necessárias outras portas de aplicativo, você precisará ajustar o recurso Microsoft.Network/loadBalancers para permitir o tráfego de entrada.
Extensão do Service Fabric
No recurso Microsoft.Compute/virtualMachineScaleSets, a extensão Linux do Service Fabric está configurada. Essa extensão é usada para inicializar o Service Fabric em Máquinas Virtuais do Azure e configurar a Segurança do Nó.
A seguir, um trecho de código de modelo para a extensão Linux do Service Fabric:
"extensions": [
  {
    "name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
    "properties": {
      "type": "ServiceFabricLinuxNode",
      "autoUpgradeMinorVersion": true,
      "enableAutomaticUpgrade": true,
      "protectedSettings": {
        "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('supportLogStorageAccountName')),'2015-05-01-preview').key1]",
       },
       "publisher": "Microsoft.Azure.ServiceFabric",
       "settings": {
         "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
         "nodeTypeRef": "[variables('vmNodeType0Name')]",
         "durabilityLevel": "Silver",
         "enableParallelJobs": true,
         "nicPrefixOverride": "[variables('subnet0Prefix')]",
         "certificate": {
           "commonNames": [
             "[parameters('certificateCommonName')]"
           ],
           "x509StoreName": "[parameters('certificateStoreValue')]"
         }
       },
       "typeHandlerVersion": "2.0"
     }
   },
Definir os parâmetros do modelo
O arquivo AzureDeploy.Parameters declara muitos valores usados para implantar o cluster e os recursos associados. Alguns dos parâmetros que você talvez precise modificar para sua implantação:
| Parâmetro | Valor de exemplo | Observações | 
|---|---|---|
| NomeDeUsuárioAdmin | vmadmin | Um nome de usuário de administrador para as VMs do cluster. | 
| adminPassword | Senha#1234 | Uma senha de administrador para as VMs do cluster. | 
| nome do cluster | mysfcluster123 | Nome do cluster. | 
| local | southcentralus | Localização do cluster. | 
| certificateThumbprint | O valor deve estar vazio se for criado um certificado auto-assinado ou for fornecido um arquivo de certificado. Para usar um certificado existente que já foi carregado em um cofre de chaves, preencha o valor da impressão digital SHA1 do certificado. Por exemplo, "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00". | |
| certificateUrlValue | O valor deve estar vazio se for criado um certificado auto-assinado ou for fornecido um arquivo de certificado. Para usar um certificado existente que foi previamente carregado para um cofre de chaves, preencha a URL do certificado. Por exemplo, "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". | |
| sourceVaultValue | O valor deve estar vazio se for criado um certificado auto-assinado ou for fornecido um arquivo de certificado. Para usar um certificado existente que foi previamente carregado para um cofre de chaves, preencha o valor do cofre de origem. Por exemplo, "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT". | 
Implantar a rede virtual e o cluster
Em seguida, configure a topologia de rede e implante o cluster do Service Fabric. O modelo do Resource Manager AzureDeploy.json cria uma VNET (rede virtual) e uma sub-rede para o Service Fabric. O modelo também implanta um cluster com a segurança de certificado habilitada. Para clusters de produção, use um certificado de uma autoridade de certificação (CA) como o certificado de cluster. Um certificado autoassinado pode ser usado para proteger clusters de teste.
O modelo deste artigo implanta um cluster que usa a impressão digital do certificado para identificar o certificado de cluster. Dois certificados não podem ter a mesma impressão digital, o que dificulta o gerenciamento de certificados. Alternar um cluster implantado do uso de impressões digitais de certificado para o uso de nomes comuns do certificado simplifica muito o gerenciamento de certificados. Para saber como atualizar o cluster para que ele use nomes comuns de certificado para o gerenciamento de certificados, leia Alterar o cluster para o gerenciamento de nomes comuns de certificado.
Criar um cluster usando um certificado existente
O script a seguir usa o comando az sf cluster create e o modelo para implantar um novo cluster protegido por um certificado existente. O comando também cria um novo cofre de chaves no Azure e carrega o certificado.
ResourceGroupName="sflinuxclustergroup"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates\MyCertificate.pem"
# sign in to your Azure account and select your subscription
az login
az account set --subscription <guid>
# Create a new resource group for your deployment and give it a name and a ___location.
az group create --name $ResourceGroupName --___location $Location
# Create the Service Fabric cluster.
az sf cluster create --resource-group $ResourceGroupName --___location $Location \
   --certificate-password $Password --certificate-file $CertPath \
   --vault-name $VaultName --vault-resource-group $ResourceGroupName  \
   --template-file AzureDeploy.json --parameter-file AzureDeploy.Parameters.json
Criar um cluster usando um novo certificado autoassinado
O script a seguir usa o comando az sf cluster create e um modelo para implantar um novo cluster no Azure. O comando também cria um cofre de chaves no Azure, adiciona um certificado autoassinado a ele e baixa o arquivo de certificado localmente.
ResourceGroupName="sflinuxclustergroup"
ClusterName="sflinuxcluster"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates"
az sf cluster create --resource-group $ResourceGroupName --___location $Location \
   --cluster-name $ClusterName --template-file C:\temp\cluster\AzureDeploy.json \
   --parameter-file C:\temp\cluster\AzureDeploy.Parameters.json --certificate-password $Password \
   --certificate-output-folder $CertPath --certificate-subject-name $ClusterName.$Location.cloudapp.azure.com \
   --vault-name $VaultName --vault-resource-group $ResourceGroupName
Conectar-se ao cluster seguro
Conecte-se ao cluster usando o comando sfctl cluster select da CLI do Service Fabric com a sua chave.  Observação: use apenas a opção --no-verify para um certificado autoassinado.
sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify
Verifique se você está conectado e se o cluster está íntegro usando o comando sfctl cluster health.
sfctl cluster health
Limpar os recursos
Se você não for imediatamente para o próximo artigo, exclua o cluster para evitar a cobrança de encargos.
Próximas etapas
Saiba como dimensionar um cluster.
O modelo deste artigo implanta um cluster que usa a impressão digital do certificado para identificar o certificado de cluster. Dois certificados não podem ter a mesma impressão digital, o que dificulta o gerenciamento de certificados. Alternar um cluster implantado do uso de impressões digitais de certificado para o uso de nomes comuns do certificado simplifica muito o gerenciamento de certificados. Para saber como atualizar o cluster para que ele use nomes comuns de certificado para o gerenciamento de certificados, leia Alterar o cluster para o gerenciamento de nomes comuns de certificado.