Een Linux Service Fabric-cluster implementeren in een virtueel Azure-netwerk
In dit artikel leert u hoe u een Linux Service Fabric-cluster implementeert in een virtueel Azure-netwerk (VNET) met behulp van Azure CLI en een sjabloon. Wanneer u klaar bent, wordt er in de cloud een cluster uitgevoerd waarin u toepassingen kunt implementeren. Als u met behulp van PowerShell een Windows-cluster wilt maken, raadpleegt u Een Service Fabric Windows-cluster in een Azure-netwerk implementeren.
Vereisten
Voordat u begint:
- Als u nog geen Azure-abonnement hebt, maakt u een gratis account
- Installeer de Service Fabric CLI
- Installeer de Azure CLI
- Lees overzicht van Azure-clusters voor meer informatie over de belangrijkste concepten van clusters
- Een implementatie van een productiecluster plannen en voorbereiden.
Met de volgende procedures wordt er een Service Fabric-cluster met zeven knooppunten gemaakt. Gebruik de Azure-prijscalculator om de kosten te berekenen voor het uitvoeren van een Service Fabric-cluster in Azure.
De sjabloon downloaden en verkennen
Download de volgende Resource Manager-sjabloonbestanden:
Voor Ubuntu 18.04 LTS:
- AzureDeploy.json
- het kenmerk vmImageSku is van 18.04-LTS
- Resource van Microsoft.ServiceFabric/clusters
- apiVersion wordt ingesteld op '2019-03-01'
- vmImage-eigenschap die wordt ingesteld op 'Ubuntu18_04'
- AzureDeploy.Parameters.json
Voor Ubuntu 20.04 LTS:
- AzureDeploy.json
- het kenmerk vmImageSku is van 20.04-LTS
- Resource van Microsoft.ServiceFabric/clusters
- apiVersion wordt ingesteld op '2019-03-01'
- vmImage-eigenschap die wordt ingesteld op 'Ubuntu20_04'
- AzureDeploy.Parameters.json
Met deze sjablonen wordt een beveiligd cluster van zeven virtuele machines en drie knooppunttypen geïmplementeerd in een virtueel netwerk. Andere voorbeeldsjablonen zijn te vinden op GitHub. De AzureDeploy.json implementeert een aantal resources, waaronder de volgende.
Service Fabric-cluster
In de resource Microsoft.ServiceFabric/clusters wordt een Linux-cluster geïmplementeerd met de volgende kenmerken:
- drie knooppunttypen
- vijf knooppunten in het primaire knooppunttype (configureerbaar in de sjabloonparameters), één knooppunt in elk van de andere knooppunttypen
- Besturingssysteem: (Ubuntu 18.04 LTS / Ubuntu 20.04) (configureerbaar in de sjabloonparameters)
- een beveiligd certificaat (configureerbaar in de sjabloonparameters)
- een ingeschakelde DNS-service
- een bronzen duurzaamheidsniveau (configureerbaar in de sjabloonparameters)
- een zilveren betrouwbaarheidsniveau (configureerbaar in de sjabloonparameters)
- eindpunt van de clientverbinding: 19000 (configureerbaar in de sjabloonparameters)
- eindpunt van de HTTP-gateway: 19080 (configureerbaar in de sjabloonparameters)
Azure load balancer
In de resource Microsoft.Network/loadBalancers wordt een load balancer geconfigureerd en worden tests en regels ingesteld voor de volgende poorten:
- het eindpunt van de clientverbinding: 19000
- het eindpunt van de HTTP-gateway: 19080
- toepassingspoort: 80
- toepassingspoort: 443
Virtueel netwerk en subnet
De namen van het virtuele netwerk en het subnet worden gedeclareerd in de sjabloonparameters. Adresruimten van het virtuele netwerk en subnet worden ook gedeclareerd in de sjabloonparameters en geconfigureerd in de resource Microsoft.Network/virtualNetworks:
- virtuele netwerkadresruimte: 10.0.0.0/16
- Service Fabric-subnetadresruimte: 10.0.2.0/24
Als er andere toepassingspoorten nodig zijn, moet u de resource Microsoft.Network/loadBalancers zo wijzigen dat verkeer kan binnenkomen.
Service Fabric-extensie
In de resource Microsoft.Compute/virtualMachineScaleSets is de Service Fabric Linux-extensie geconfigureerd. Deze extensie wordt gebruikt om Service Fabric te bootstrapen naar virtuele Azure-machines en knooppuntbeveiliging te configureren.
Hier volgt een sjabloonfragment voor de Service Fabric Linux-extensie:
"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"
}
},
De sjabloonparameters instellen
Het bestand AzureDeploy.Parameters declareert veel waarden die worden gebruikt voor het implementeren van het cluster en de bijbehorende resources. Enkele van de parameters die u mogelijk moet wijzigen voor uw implementatie:
Parameter | Voorbeeldwaarde | Opmerkingen |
---|---|---|
adminUserName | vmadmin | De gebruikersnaam van de beheerder van de cluster-VM's. |
adminPassword | Password#1234 | Het wachtwoord van de beheerder van de cluster-VM's. |
clusterName | mysfcluster123 | De naam van het cluster. |
locatie | US - zuid-centraal | De locatie van het cluster. |
certificateThumbprint | De waarde moet leeg zijn als u een zelfondertekend certificaat maakt of als u een certificaatbestand opgeeft. Als u een bestaand certificaat wilt gebruiken dat u eerder hebt geüpload naar een sleutelkluis, vult u de SHA1-waarde van de certificaatvingerafdruk in. Bijvoorbeeld 6190390162C988701DB5676EB81083EA608DCCF3. |
|
certificateUrlValue | De waarde moet leeg zijn als u een zelfondertekend certificaat maakt of als u een certificaatbestand opgeeft. Als u een bestaand certificaat wilt gebruiken dat u eerder hebt geüpload naar een sleutelkluis, vult u de URL van het certificaat in. Bijvoorbeeld "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
sourceVaultValue | De waarde moet leeg zijn als u een zelfondertekend certificaat maakt of als u een certificaatbestand opgeeft. Als u een bestaand certificaat wilt gebruiken dat u eerder hebt geüpload naar een sleutelkluis, vult u de waarde van de bronkluis in. Bijvoorbeeld /subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT. |
Het virtuele netwerk en het cluster implementeren
Stel vervolgens de netwerktopologie in en implementeer het Service Fabric-cluster. De Resource Manager-sjabloon AzureDeploy.json maakt een virtueel netwerk (VNET) en een subnet voor Service Fabric. De sjabloon implementeert ook een cluster met certificaatbeveiliging ingeschakeld. Gebruik voor productieclusters een certificaat van een certificeringsinstantie (CA) als clustercertificaat. Een zelfondertekend certificaat kan worden gebruikt om testclusters te beveiligen.
De sjabloon in dit artikel implementeert een cluster dat gebruik maakt van de certificaatvingerafdruk voor het identificeren van het clustercertificaat. Geen twee certificaten kunnen dezelfde vingerafdruk hebben, waardoor certificaatbeheer moeilijker wordt. Schakelen tussen een geïmplementeerd cluster vanuit vingerafdrukken voor certificaten naar het gebruik van gewone namen voor certificaten maakt het beheer van certificaten veel eenvoudiger. Lees Cluster wijzigen naar certificaatbeheer met gewone namen voor informatie over het bijwerken van het cluster voor het gebruik van gewone namen voor certificaten voor het beheren van certificaten.
Een cluster maken met behulp van een bestaand certificaat
Het volgende script maakt gebruik van de opdracht en de sjabloon az sf cluster create om een nieuw cluster te implementeren dat met een bestaand certificaat is beveiligd. De opdracht maakt ook een nieuwe sleutelkluis in Azure en uploadt uw certificaat.
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
Een cluster met een nieuw, zelfondertekend certificaat maken
Het volgende script maakt gebruik van de opdracht az sf cluster create en een sjabloon om een nieuw cluster te implementeren in Azure. Met de opdracht wordt ook een nieuwe sleutelkluis in Azure gemaakt, een nieuw zelfondertekend certificaat toegevoegd aan de sleutelkluis en het certificaatbestand lokaal gedownload.
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
Verbinding maken met het beveiligde cluster
Maak verbinding met het cluster met behulp van de Service Fabric CLI-opdracht sfctl cluster select
en uw sleutel. Opmerking: gebruik voor een zelfondertekend certificaat alleen de optie --no-verify.
sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify
Controleer of u bent verbonden en of het cluster goed werkt door de opdracht sfctl cluster health
uit te voeren.
sfctl cluster health
Resources opschonen
Als u niet meteen verdergaat met het volgende artikel, is het wellicht een goed idee om het cluster te verwijderen. U bespaart dan kosten.
Volgende stappen
Meer informatie over het schalen van een cluster.
De sjabloon in dit artikel implementeert een cluster dat gebruik maakt van de certificaatvingerafdruk voor het identificeren van het clustercertificaat. Geen twee certificaten kunnen dezelfde vingerafdruk hebben, waardoor certificaatbeheer moeilijker wordt. Schakelen tussen een geïmplementeerd cluster vanuit vingerafdrukken voor certificaten naar het gebruik van gewone namen voor certificaten maakt het beheer van certificaten veel eenvoudiger. Lees Cluster wijzigen naar certificaatbeheer met gewone namen voor informatie over het bijwerken van het cluster voor het gebruik van gewone namen voor certificaten voor het beheren van certificaten.