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:
- Pokud ještě předplatné Azure nemáte, vytvořte si bezplatný účet.
- Nainstalujte si rozhraní příkazového řádku Service Fabric.
- Instalace rozhraní příkazového řádku Azure CLI
- Informace o klíčových konceptech clusterů najdete v přehledu clusterů Azure.
- Naplánujte nasazení produkčního clusteru a připravte se na nasazení produkčního clusteru.
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:
- AzureDeploy.json
- Atribut vmImageSku je 18.04-LTS.
- Prostředek Microsoft.ServiceFabric/clusters
- ApiVersion je nastaven na "2019-03-01"
- Vlastnost vmImage nastavená na "Ubuntu18_04"
- AzureDeploy.Parameters.json
Pro Ubuntu 20.04 LTS:
- AzureDeploy.json
- Atribut vmImageSku je "20.04-LTS"
- Prostředek Microsoft.ServiceFabric/clusters
- ApiVersion je nastaven na "2019-03-01"
- vlastnost vmImage nastavená na "Ubuntu20_04"
- AzureDeploy.Parameters.json
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ů.