Distribuera ett Service Fabric-kluster i Linux till ett virtuellt Azure-nätverk
I den här artikeln får du lära dig hur du distribuerar ett Linux Service Fabric-kluster till ett virtuellt Azure-nätverk (VNET) med hjälp av Azure CLI och en mall. När du är färdig körs ett kluster i molnet som du kan distribuera program till. Om du vill skapa ett Windows-kluster med PowerShell läser du informationen om att skapa ett säkert Windows-kluster i Azure.
Förutsättningar
Innan du börjar:
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto
- Installera Service Fabric CLI
- Installera Azure CLI
- Mer information om viktiga begrepp i kluster finns i Översikt över Azure-kluster
- Planera och förbereda för en distribution av produktionskluster.
Följande procedurer skapar ett Service Fabric-kluster med sju noder. Du kan beräkna kostnaden för att köra ett Service Fabric-kluster i Azure med Azures prissättningsberäknare.
Ladda ned och titta närmare på mallen
Ladda ned följande mallfiler för Resource Manager:
För Ubuntu 18.04 LTS:
- AzureDeploy.json
- vmImageSku-attributet är till "18.04-LTS"
- Resursen Microsoft.ServiceFabric/clusters
- apiVersion anges till "2019-03-01"
- vmImage-egenskapen anges till "Ubuntu18_04"
- AzureDeploy.Parameters.json
För Ubuntu 20.04 LTS:
- AzureDeploy.json
- vmImageSku-attributet är till "20.04-LTS"
- Resursen Microsoft.ServiceFabric/clusters
- apiVersion anges till "2019-03-01"
- vmImage-egenskapen anges till "Ubuntu20_04"
- AzureDeploy.Parameters.json
Dessa mallar distribuerar ett säkert kluster med sju virtuella datorer och tre nodtyper till ett virtuellt nätverk. Andra exempelmallar finns på GitHub. AzureDeploy.json distribuerar ett antal resurser, inklusive följande.
Service Fabric-kluster
I resursen Microsoft.ServiceFabric/clusters distribueras ett Linux-kluster med följande egenskaper:
- tre nodtyper
- fem noder i den primära nodtypen (kan konfigureras i mallparametrarna), en nod i var och en av de andra nodtyperna
- OPERATIVSYSTEM: (Ubuntu 18.04 LTS/Ubuntu 20.04) (kan konfigureras i mallparametrarna)
- skyddat certifikat (kan konfigureras i mallparametrarna)
- DNS-tjänst är aktiverad
- Hållbarhetsnivå Brons (kan konfigureras i mallparametrarna)
- Tillförlitlighetsnivå Silver (kan konfigureras i mallparametrarna)
- slutpunkt för klientanslutning: 19000 (kan konfigureras i mallparametrarna)
- slutpunkt för HTTP-gateway: 19080 (kan konfigureras i mallparametrarna)
Azure-lastbalanserare
I resursen Microsoft.Network/loadBalancers konfigureras en lastbalanserare och avsökningar och regler konfigureras för följande portar:
- klientanslutningsslutpunkt: 19000
- HTTP-gatewayslutpunkt: 19080
- programport: 80
- programport: 443
Virtuellt nätverk och undernät
Namnen på det virtuella nätverket och undernätet deklareras också i mallparametrarna. Adressutrymmen i det virtuella nätverket och undernätet deklareras också i mallparametrarna och konfigureras i resursen Microsoft.Network/virtualNetworks:
- det virtuella nätverkets adressutrymme: 10.0.0.0/16
- Service Fabric-undernätsadressutrymme: 10.0.2.0/24
Om du behöver andra programportar måste du justera resursen Microsoft.Network/loadBalancers för att låta trafiken komma in.
Service Fabric-tillägg
I resursen Microsoft.Compute/virtualMachineScaleSets konfigureras Service Fabric Linux-tillägget. Det här tillägget används för att starta Service Fabric till virtuella Azure-datorer och konfigurera Node Security.
Följande är ett mallfragment för Service Fabric Linux-tillägget:
"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"
}
},
Ställa in mallparametrar
Filen AzureDeploy.Parameters deklarerar många värden som används för att distribuera klustret och associerade resurser. Här är några av parametrarna du kan behöva ändra för distributionen:
Parameter | Exempelvärde | Kommentar |
---|---|---|
adminUserName | vmadmin | Administratörsnamn för virtuella datorer i klustret. |
adminPassword | Password#1234 | Administratörslösenord för virtuella datorer i klustret. |
clusterName | mysfcluster123 | Namnet på klustret. |
plats | USA, södra centrala | Klustrets placering. |
certificateThumbprint | Värdet ska vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare har laddats upp till ett nyckelvalv fyller du i certifikatets SHA1-tumavtrycksvärde. Till exempel ”6190390162C988701DB5676EB81083EA608DCCF3”. |
|
certificateUrlValue | Värdet ska vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare har laddats upp till ett nyckelvalv fyller du i certifikatets webbadress. Till exempel "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
sourceVaultValue | Värdet ska vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare har laddats upp till ett nyckelvalv fyller du i källans nyckelvärde. Till exempel ”/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT”. |
Distribuera det virtuella nätverket och klustret
Konfigurera därefter nätverkstopologi och distribuera Service Fabric-klustret. Resource Manager-mallen AzureDeploy.json skapar ett virtuellt nätverk (VNET) och ett undernät för Service Fabric. Mallen distribuerar också ett kluster med certifikatsäkerhet aktiverad. För produktionskluster ska du använda ett certifikat från en certifikatutfärdare som klustercertifikat. Ett självsignerat certifikat kan användas för att skydda testkluster.
Mallen i den här artikeln distribuerar ett kluster som använder certifikatets tumavtryck för att identifiera klustercertifikatet. Två certifikat kan inte ha samma tumavtryck, vilket gör certifikathantering svårare. Om ett distribuerat kluster växlas från att använda certifikattumavtryck till att använda vanliga certifikatnamn blir certifikathanteringen mycket enklare. Du kan lära dig att uppdatera klustret till att använda vanliga certifikatnamn för certifikathantering genom att läsa avsnittet om att ändra kluster till vanligt certifikatnamn för hantering.
Skapa ett kluster med ett befintligt certifikat
Följande skript använder kommandot az sf cluster create och mallen för att distribuera ett nytt kluster som skyddas med ett befintligt certifikat. Kommandot skapar även ett nytt nyckelvalv i Azure och laddar upp certifikatet.
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
Skapa ett kluster med ett nytt, självsignerat certifikat
Följande skript använder kommandot az sf cluster create och en mall för att distribuera ett nytt kluster i Azure. Kommandot skapar även ett nytt nyckelvalv i Azure, lägger till ett nytt självsignerat certifikat i nyckelvalvet och laddar ned certifikatfilen lokalt.
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
Ansluta till det säkra klustret
Anslut till klustret med Service Fabric CLI sfctl cluster select
-kommandot med din nyckel. Använd enbart alternativet --no-verify för ett självsignerat certifikat.
sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify
Kontrollera att du är ansluten och att klustret är felfritt med kommandot sfctl cluster health
.
sfctl cluster health
Rensa resurser
Om du inte genast fortsätter till nästa artikel kanske du vill ta bort klustret för att undvika kostnader.
Nästa steg
Lär dig hur du skalar ett kluster.
Mallen i den här artikeln distribuerar ett kluster som använder certifikatets tumavtryck för att identifiera klustercertifikatet. Två certifikat kan inte ha samma tumavtryck, vilket gör certifikathantering svårare. Om ett distribuerat kluster växlas från att använda certifikattumavtryck till att använda vanliga certifikatnamn blir certifikathanteringen mycket enklare. Du kan lära dig att uppdatera klustret till att använda vanliga certifikatnamn för certifikathantering genom att läsa avsnittet om att ändra kluster till vanligt certifikatnamn för hantering.