Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come distribuire un cluster Linux di Service Fabric in una rete virtuale di Azure usando l'interfaccia della riga di comando di Azure e un modello. Al termine, nel cloud è in esecuzione un cluster in cui è possibile distribuire le applicazioni. Per creare un cluster Windows con PowerShell, vedere Creare un cluster Windows sicuro in Azure.
Prerequisiti
Prima di iniziare:
- Se non hai un abbonamento Azure, crea un account gratuito
- Installare l'interfaccia della riga di comando di Service Fabric
- Installare l'interfaccia della riga di comando di Azure
- Per informazioni sui concetti chiave dei cluster, vedere Panoramica dei cluster di Azure
- Pianificare e preparare la distribuzione di un cluster di produzione.
Le procedure seguenti creano un cluster di Service Fabric a sette nodi. Per calcolare i costi sostenuti eseguendo un cluster di Service Fabric in Azure, usare il Calcolatore prezzi di Azure.
Scaricare ed esplorare il modello
Scaricare i file di modello di Resource Manager seguenti:
Per Ubuntu 18.04 LTS:
- AzureDeploy.json
- L'attributo vmImageSku è "18.04-LTS"
- Microsoft.ServiceFabric/della risorsa dei cluster
- apiVersion impostato su "2019-03-01"
- Proprietà vmImage impostata su "Ubuntu18_04"
- AzureDeploy.Parameters.json
Per Ubuntu 20.04 LTS:
- AzureDeploy.json
- L'attributo vmImageSku è "20.04-LTS"
- Microsoft.ServiceFabric/della risorsa dei cluster
- apiVersion impostato su "2019-03-01"
- Proprietà vmImage impostata su "Ubuntu20_04"
- AzureDeploy.Parameters.json
Questi modelli distribuiscono un cluster sicuro di sette macchine virtuali e tre tipi di nodo in una rete virtuale. Altri modelli di esempio sono disponibili in GitHub. Il AzureDeploy.json distribuisce una serie di risorse, tra cui le seguenti.
Cluster di Service Fabric
Nella risorsa Microsoft.ServiceFabric/clusters viene distribuito un cluster Linux con le caratteristiche seguenti:
- tre tipi di nodo
- cinque nodi nel tipo di nodo primario (configurabile nei parametri del modello), un nodo in ognuno degli altri tipi di nodo
- Sistema operativo: (Ubuntu 18.04 LTS / Ubuntu 20.04) (configurabile nei parametri del modello)
- certificato protetto (configurabile nei parametri del modello)
- Il servizio DNS è abilitato
- Livello di durabilità del Bronzo (configurabile attraverso i parametri del modello)
- Livello di affidabilità di Silver (configurabile nei parametri del modello)
- endpoint di connessione client: 19000 (configurabile nei parametri del modello)
- Endpoint del gateway HTTP: 19080 (configurabile nei parametri del modello)
Servizio di bilanciamento del carico di Azure
Nella risorsa Microsoft.Network/loadBalancers viene configurato un servizio di bilanciamento del carico e vengono configurate probe e regole per le porte seguenti:
- Endpoint di connessione client: 19000
- Endpoint del gateway HTTP: 19080
- porta dell'applicazione: 80
- porta dell'applicazione: 443
Rete virtuale e subnet
I nomi della rete virtuale e della subnet vengono dichiarati nei parametri del modello. Gli spazi indirizzi della rete virtuale e della subnet vengono dichiarati anche nei parametri del modello e configurati nella risorsa Microsoft.Network/virtualNetworks :
- spazio indirizzi della rete virtuale: 10.0.0.0/16
- Spazio indirizzi subnet di Service Fabric: 10.0.2.0/24
Se sono necessarie altre porte dell'applicazione, sarà necessario modificare la risorsa Microsoft.Network/loadBalancers per consentire il traffico in ingresso.
Estensione di Service Fabric
Nella risorsa Microsoft.Compute/virtualMachineScaleSets l'estensione Linux di Service Fabric è configurata. Questa estensione viene usata per avviare Service Fabric in macchine virtuali di Azure e configurare la sicurezza dei nodi.
Di seguito è riportato un frammento di modello per l'estensione Linux di Service Fabric:
"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"
}
},
Impostare i parametri del modello
Il file AzureDeploy.Parameters dichiara molti valori usati per distribuire il cluster e le risorse associate. Alcuni dei parametri che potrebbe essere necessario modificare per la distribuzione:
Parametro | Valore di esempio | Note |
---|---|---|
adminUserName | vmadmin | Nome utente amministratore per le macchine virtuali del cluster. |
adminPassword | Password#1234 | Password amministratore per le macchine virtuali del cluster. |
nome del cluster | mysfcluster123 | Nome del cluster. |
ubicazione | southcentralus | Località del cluster. |
certificateThumbprint | Il valore deve essere vuoto se si crea un certificato autofirmato o si specifica un file di certificato. Per usare un certificato esistente precedentemente caricato in un insieme di credenziali delle chiavi, immettere il valore di identificazione personale SHA1 del certificato, Ad esempio, "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00". |
|
certificateUrlValue | Il valore deve essere vuoto se si crea un certificato autofirmato o si specifica un file di certificato. Compilare l'URL del certificato per utilizzare un certificato esistente caricato in precedenza nel tuo key vault. Ad esempio, "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
sourceVaultValue | Il valore deve essere vuoto se si crea un certificato autofirmato o si specifica un file di certificato. Per usare un certificato esistente precedentemente caricato in un insieme di credenziali delle chiavi, immettere il valore dell'insieme di credenziali di origine, ad esempio "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT". |
Distribuire la rete virtuale e il cluster
Configurare quindi la topologia di rete e distribuire il cluster di Service Fabric. Il modelloAzureDeploy.json Resource Manager crea una rete virtuale e una subnet per Service Fabric. Il modello distribuisce anche un cluster con sicurezza dei certificati abilitata. Per i cluster di produzione, usare un certificato di un'autorità di certificazione (CA) come certificato del cluster. È possibile usare un certificato autofirmato per proteggere i cluster di test.
Il modello in questo articolo distribuisce un cluster che usa l'identificazione personale del certificato per identificare il certificato del cluster. Nessun certificato può avere la stessa impronta digitale, rendendo più difficile la gestione dei certificati. Il passaggio di un cluster distribuito dall'uso delle identificazioni personali del certificato all'uso dei nomi comuni dei certificati rende la gestione dei certificati molto più semplice. Per informazioni su come aggiornare il cluster per usare i nomi comuni dei certificati per la gestione dei certificati, leggere modificare il cluster in base alla gestione dei nomi comuni del certificato.
Creare un cluster usando un certificato esistente
Lo script seguente usa il comando az sf cluster create e il modello per distribuire un nuovo cluster protetto con un certificato esistente. Il comando crea anche un nuovo Key Vault in Azure e carica il certificato.
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
Creare un cluster usando un nuovo certificato autofirmato
Lo script seguente usa il comando az sf cluster create e un modello per distribuire un nuovo cluster in Azure. Il comando crea anche un nuovo insieme di credenziali delle chiavi in Azure, aggiunge un nuovo certificato autofirmato all'insieme di credenziali delle chiavi e scarica il file di certificato in locale.
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
Connettersi al cluster sicuro
Collegarsi al cluster usando il comando CLI sfctl cluster select
di Service Fabric, utilizzando la tua chiave. Si noti che usare solo l'opzione --no-verify per un certificato autofirmato.
sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify
Verificare di essere connessi e che il cluster sia integro usando il sfctl cluster health
comando .
sfctl cluster health
Pulire le risorse
Se non si passa immediatamente all'articolo successivo, è possibile eliminare il cluster per evitare addebiti.
Passaggi successivi
Informazioni su come ridimensionare un cluster.
Il modello in questo articolo distribuisce un cluster che usa l'identificazione personale del certificato per identificare il certificato del cluster. Due certificati non possono avere la stessa impronta digitale, il che rende più difficile la gestione dei certificati. Il passaggio di un cluster distribuito dall'uso delle identificazioni personali del certificato all'uso dei nomi comuni dei certificati rende la gestione dei certificati molto più semplice. Per informazioni su come aggiornare il cluster per usare i nomi comuni dei certificati per la gestione dei certificati, leggere modificare il cluster in base alla gestione dei nomi comuni del certificato.