Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 klar har du ett kluster som körs i molnet som du kan distribuera program till. Information om hur du skapar ett Windows-kluster med PowerShell finns i 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örbered för en distribution av produktionskluster.
Följande procedurer skapar ett Service Fabric-kluster med sju noder. Om du vill beräkna kostnaden för att köra ett Service Fabric-kluster i Azure använder du Priskalkylatorn för Azure.
Ladda ned och utforska mallen
Ladda ned följande Resource Manager-mallfiler:
För Ubuntu 18.04 LTS:
-
AzureDeploy.json
- vmImageSku-attributet är satt till "18.04-LTS"
- Resursen Microsoft.ServiceFabric/clusters
- apiVersion anges till "2019-03-01"
- vmImage-egenskapen är inställd på "Ubuntu18_04"
- AzureDeploy.Parameters.json
För Ubuntu 20.04 LTS:
-
AzureDeploy.json
- vmImageSku-attributet sätts till "20.04-LTS"
- Resursen Microsoft.ServiceFabric/clusters
- apiVersion anges till "2019-03-01"
- vmImage-egenskapen har satts 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änsten är aktiverad
- Hållbarhetsnivå för Brons (kan konfigureras i mallparametrarna)
- Tillförlitlighetsnivå för Silver (kan konfigureras i mallparametrarna)
- slutpunkt för klientanslutning: 19000 (kan konfigureras i mallparametrarna)
- HTTP-gatewayslutpunkt: 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:
- slutpunkt för klientanslutning: 19000
- HTTP-gatewayslutpunkt: 19080
- applikationsport: 80
- applikationsport: 443
Virtuellt nätverk och undernät
Namnen på det virtuella nätverket och undernätet deklareras i mallparametrarna. Adressutrymmen för det virtuella nätverket och undernätet deklareras också i mallparametrarna och konfigureras i resursen Microsoft.Network/virtualNetworks :
- virtuellt nätverksadressutrymme: 10.0.0.0/16
- Service Fabric-undernätsadressutrymme: 10.0.2.0/24
Om det behövs några andra programportar måste du justera resursen Microsoft.Network/loadBalancers för att tillåta trafik.
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äll in mallparametrar
Filen AzureDeploy.Parameters deklarerar många värden som används för att distribuera klustret och associerade resurser. Några av de parametrar som du kan behöva ändra för distributionen:
| Parameter | Exempelvärde | Noteringar |
|---|---|---|
| administratörsAnvändarnamn | vmadmin | Administratörsanvändarnamn för de virtuella klusterdatorerna. |
| administratörslösenord | Lösenord#1234 | Administratörslösenord för de virtuella klusterdatorerna. |
| klusternamn | mysfcluster123 | Namnet på klustret. |
| läge | southcentralus | Klustrets placering. |
| certificateThumbprint | Värdet bör vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare laddats upp till ett nyckelvalv fyller du i certifikatets SHA1-tumavtrycksvärde. Till exempel "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00". |
|
| certificateUrlValue | Värdet bör vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare laddats upp till ett nyckelvalv fyller du i certifikat-URL:en. Till exempel "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
| sourceVaultValue | Värdet bör vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare laddats upp till ett nyckelvalv fyller du i källvalvets värde. Till exempel "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT". |
Distribuera det virtuella nätverket och klustret
Konfigurera sedan nätverkstopologin och distribuera Service Fabric-klustret. Mallen AzureDeploy.json Resource Manager skapar ett virtuellt nätverk (VNET) och ett undernät för Service Fabric. Mallen distribuerar också ett kluster med certifikatsäkerhet aktiverat. För produktionskluster använder du ett certifikat från en certifikatutfärdare (CA) 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. Inga två certifikat kan ha samma tumavtryck, vilket gör certifikathanteringen svårare. Om du växlar ett distribuerat kluster från att använda tumavtryck för certifikat till att använda certifikatets vanliga namn blir certifikathanteringen mycket enklare. Om du vill lära dig hur du uppdaterar klustret för att använda vanliga certifikatnamn för certifikathantering läser du Ändra kluster till certifikatets vanliga namnhantering.
Skapa ett kluster med ett befintligt certifikat
Följande skript använder kommandot och mallen az sf cluster create för att distribuera ett nytt kluster som skyddas med ett befintligt certifikat. Kommandot skapar också ett nytt nyckelvalv i Azure och laddar upp ditt certifikat.
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 också 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 hjälp av Service Fabric CLI-kommandot sfctl cluster select med din nyckel. Obs! Använd endast 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 omedelbart går vidare till nästa artikel kanske du vill ta bort klustret för att undvika att debiteras.
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. Inga två certifikat kan ha samma tumavtryck, vilket gör certifikathanteringen svårare. Om du växlar ett distribuerat kluster från att använda tumavtryck för certifikat till att använda certifikatets vanliga namn blir certifikathanteringen mycket enklare. Om du vill lära dig hur du uppdaterar klustret för att använda vanliga certifikatnamn för certifikathantering läser du Ändra kluster till certifikatets vanliga namnhantering.