Nasazení clusteru Linux Service Fabric do virtuální sítě Azure

V tomto článku se dozvíte, jak nasadit cluster Service Fabric s Linuxem do virtuální sítě Azure pomocí Azure CLI a šablony. Po dokončení budete mít v cloudu spuštěný cluster, do kterého budete moct nasazovat aplikace. Pokud chcete pomocí PowerShellu vytvořit cluster s Windows, přečtěte si článek Vytvoření zabezpečeného clusteru s Windows v Azure.

Požadavky

Než začnete:

Následující postupy vytvoří cluster Service Fabric se sedmi uzly. Pokud chcete vypočítat náklady vzniklé používáním clusteru Service Fabric v Azure, použijte cenovou kalkulačku funkcí Azure.

Stažení a prozkoumání šablony

Stáhněte si následující soubory šablon Resource Manageru:

Pro Ubuntu 18.04 LTS:

Pro Ubuntu 20.04 LTS:

Tyto šablony nasazují zabezpečený cluster sedmi virtuálních počítačů a tří typů uzlů do virtuální sítě. Další ukázkové šablony najdete na GitHubu. AzureDeploy.json nasadí řadu prostředků, včetně následujících.

Cluster Service Fabric

V prostředku Microsoft.ServiceFabric/clusters se nasazuje cluster s Linuxem s těmito charakteristikami:

  • tři typy uzlů
  • pět uzlů v primárním typu uzlu (konfigurovatelné v parametrech šablony), jeden uzel v každém z ostatních typů uzlů
  • Operační systém: (Ubuntu 18.04 LTS / Ubuntu 20.04) (konfigurovatelné v parametrech šablony)
  • zabezpečení pomocí certifikátu (možnost konfigurace v parametrech šablony)
  • služba DNS je povolena
  • bronzová úroveň odolnosti (možnost konfigurace v parametrech šablony)
  • stříbrná úroveň spolehlivosti (možnost konfigurace v parametrech šablony)
  • koncový bod připojení klienta: 19000 (možnost konfigurace v parametrech šablony)
  • koncový bod brány HTTP: 19080 (možnost konfigurace v parametrech šablony)

Nástroj pro vyrovnávání zatížení Azure

V prostředku Microsoft.Network/loadBalancers se konfiguruje nástroj pro vyrovnávání zatížení a nastaví sondy a pravidla pro následující porty:

  • koncový bod připojení klienta: 19000
  • koncový bod brány HTTP: 19080
  • port aplikací: 80
  • port aplikací: 443

Virtuální síť a podsíť

Názvy virtuální sítě a podsítě jsou deklarované v parametrech šablony. Adresní prostory virtuální sítě a podsítě se taky deklarují v parametrech šablony a konfigurují v prostředku Microsoft.Network/virtualNetworks:

  • adresní prostory virtuální sítě: 10.0.0.0/16
  • adresní prostor podsítě Service Fabric: 10.0.2.0/24

Pokud jsou potřebné další porty aplikací, je třeba upravit prostředek Microsoft.Network/loadBalancers, aby povoloval příchozí provoz.

Rozšíření Service Fabric

V prostředku Microsoft.Compute/virtualMachineScaleSets je nakonfigurované rozšíření Service Fabric Linux. Toto rozšíření se používá ke spuštění Service Fabric do služby Azure Virtual Machines a ke konfiguraci zabezpečení uzlů.

Následuje fragment kódu šablony pro rozšíření Service Fabric Pro Linux:

"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"
     }
   },

Nastavení parametrů šablony

Soubor AzureDeploy.Parameters deklaruje mnoho hodnot používaných k nasazení clusteru a přidružených prostředků. Některé parametry, které možná budete muset upravit pro své nasazení:

Parametr Příklad hodnoty Notes
adminUserName vmadmin Uživatelské jméno správce pro virtuální počítače clusteru.
adminPassword Password#1234 Heslo správce pro virtuální počítače clusteru.
clusterName mysfcluster123 Název clusteru.
location Střed USA – jih Umístění clusteru.
certificateThumbprint

Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná.

Pokud chcete použít existující certifikát, který se dříve odeslal do trezoru klíčů, vyplňte hodnotu kryptografického otisku certifikátu SHA1. Příklad: „6190390162C988701DB5676EB81083EA608DCCF3“.

certificateUrlValue

Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná.

Pokud chcete použít existující certifikát, který byl dříve odeslán do trezoru klíčů, vyplňte URL certifikátu. Například "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346".

sourceVaultValue

Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná.

Pokud chcete použít existující certifikát, který byl dříve odeslán do trezoru klíčů, vyplňte hodnotu zdrojového trezoru. Například: /subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT

Nasazení virtuální sítě a clusteru

Dále nastavte topologii sítě a nasaďte cluster Service Fabric. Šablona Resource Manageru AzureDeploy.json vytvoří virtuální síť a podsíť pro Service Fabric. Šablona také nasadí cluster s povoleným zabezpečením pomocí certifikátu. Pro produkční clustery používejte certifikát clusteru od certifikační autority (CA). K zabezpečení testovacích clusterů můžete použít certifikát podepsaný svým držitelem.

Šablona v tomto článku nasadí cluster, který k identifikaci certifikátu používá kryptografický otisk certifikátu. Žádné dva certifikáty nemohou mít stejný kryptografický otisk, což ztěžuje správu certifikátů. Přepnutí nasazeného clusteru z používání kryptografických otisků certifikátu na používání běžných názvů certifikátů výrazně zjednodušuje správu certifikátů. Informace o tom, jak aktualizovat cluster tak, aby používal běžné názvy certifikátů pro správu certifikátů, najdete v tématu Změna clusteru na správu běžných názvů certifikátů.

Vytvoření clusteru s použitím existujícího certifikátu

Následující skript pomocí příkazu az sf cluster create a šablony nasadí nový cluster zabezpečený pomocí existujícího certifikátu. Příkaz také vytvoří v Azure nový trezor klíčů a odešle váš certifikát.

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

Vytvoření clusteru s použitím nového certifikátu podepsaného svým držitelem

Následující skript pomocí příkazu az sf cluster create a šablony nasadí do Azure nový cluster. Příkaz také vytvoří nový trezor klíčů v Azure, přidá do trezoru klíčů nový certifikát podepsaný svým držitelem a stáhne soubor certifikátu místně.

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

Připojení k zabezpečenému clusteru

Připojte se ke clusteru pomocí příkazu rozhraní příkazového řádku Service Fabric sfctl cluster select a svého klíče. Volbu --no-verify použijte pouze v případě certifikátu podepsaného svým držitelem.

sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify

Pomocí příkazu sfctl cluster health zkontrolujte, že jste připojeni a cluster je v pořádku.

sfctl cluster health

Vyčištění prostředků

Pokud nechcete ihned pokračovat dalším článkem, můžete cluster odstranit, aby se vám neúčtovaly poplatky.

Další kroky

Zjistěte, jak škálovat cluster.

Šablona v tomto článku nasadí cluster, který k identifikaci certifikátu používá kryptografický otisk certifikátu. Žádné dva certifikáty nemohou mít stejný kryptografický otisk, což ztěžuje správu certifikátů. Přepnutí nasazeného clusteru z používání kryptografických otisků certifikátu na používání běžných názvů certifikátů výrazně zjednodušuje správu certifikátů. Informace o tom, jak aktualizovat cluster tak, aby používal běžné názvy certifikátů pro správu certifikátů, najdete v tématu Změna clusteru na správu běžných názvů certifikátů.