Aggiornare il cluster autonomo di Azure Service Fabric in Windows ServerUpgrade your standalone Azure Service Fabric cluster on Windows Server

La possibilità di aggiornare un sistema moderno è fondamentale per il successo a lungo termine del prodotto.For any modern system, the ability to upgrade is key to the long-term success of your product. Un cluster di Azure Service Fabric è una risorsa di cui si è proprietari.An Azure Service Fabric cluster is a resource that you own. Questo articolo descrive in che modo è possibile verificare che il cluster esegua sempre versioni supportate del codice e delle configurazioni di Service Fabric.This article describes how you can make sure that the cluster always runs supported versions of Service Fabric code and configurations.

Controllare la versione di Service Fabric eseguita nel clusterControl the Service Fabric version that runs on your cluster

Per impostare il cluster per il download di aggiornamenti di Service Fabric quando Microsoft rilascia una nuova versione, impostare la configurazione cluster fabricClusterAutoupgradeEnabled su true.To set your cluster to download updates of Service Fabric when Microsoft releases a new version, set the fabricClusterAutoupgradeEnabled cluster configuration to true. Per selezionare una versione supportata di Service Fabric per il cluster, impostare la configurazione cluster fabricClusterAutoupgradeEnabled su false.To select a supported version of Service Fabric that you want your cluster to be on, set the fabricClusterAutoupgradeEnabled cluster configuration to false.

Nota

Verificare che il cluster esegua sempre una versione di Service Fabric supportata.Make sure that your cluster always runs a supported Service Fabric version. Quando Microsoft annuncia il rilascio di una nuova versione di Service Fabric, viene segnalato il termine del periodo di supporto per la versione precedente dopo un minimo di 60 giorni dalla data dell'annuncio.When Microsoft announces the release of a new version of Service Fabric, the previous version is marked for end of support after a minimum of 60 days from the date of the announcement. Le nuove versioni vengono annunciate nel blog del team di Service Fabric.New releases are announced on the Service Fabric team blog. A questo punto è possibile scegliere la nuova versione.The new release is available to choose at that point.

È possibile aggiornare il cluster alla nuova versione solo se si usa una configurazione del nodo di tipo produzione, in cui ogni nodo di Service Fabric viene allocato in una macchina virtuale o fisica separata.You can upgrade your cluster to the new version only if you're using a production-style node configuration, where each Service Fabric node is allocated on a separate physical or virtual machine. Se si usa un cluster di sviluppo in cui sono presenti più nodi di Service Fabric in un'unica macchina virtuale o computer fisico, è necessario creare di nuovo il cluster con la nuova versione.If you have a development cluster, where more than one Service Fabric node is on a single physical or virtual machine, you must re-create the cluster with the new version.

Due flussi di lavoro distinti possono aggiornare il cluster alla versione di Service Fabric più recente o a una versione supportata.Two distinct workflows can upgrade your cluster to the latest version or a supported Service Fabric version. Un flusso di lavoro è per i cluster con connettività che scaricano automaticamente la versione più recente.One workflow is for clusters that have connectivity to download the latest version automatically. L'altro flusso di lavoro è per i cluster senza connettività che quindi non scaricano la versione più recente di Service Fabric.The other workflow is for clusters that don't have connectivity to download the latest Service Fabric version.

Aggiornare i cluster con la connettività per scaricare il codice e la configurazione più recentiUpgrade clusters that have connectivity to download the latest code and configuration

Seguire questa procedura per aggiornare il cluster a una versione supportata, se i nodi del cluster hanno la connettività Internet all'Area download Microsoft.Use these steps to upgrade your cluster to a supported version if your cluster nodes have internet connectivity to the Microsoft Download Center.

Per i cluster che hanno la connettività all'Area download Microsoft, viene periodicamente verificata la disponibilità di nuove versioni di Service Fabric.For clusters that have connectivity to the Microsoft Download Center, Microsoft periodically checks for the availability of new Service Fabric versions.

Quando è disponibile una nuova versione di Service Fabric, il pacchetto viene scaricato localmente nel cluster e ne viene eseguito il provisioning per l'aggiornamento.When a new Service Fabric version is available, the package is downloaded locally to the cluster and provisioned for upgrade. Inoltre, per informare il cliente di questa nuova versione, il sistema visualizza un avviso esplicito di integrità del cluster simile al seguente:Additionally, to inform the customer of this new version, the system shows an explicit cluster health warning that's similar to the following:

"Il supporto per la versione corrente del cluster [numero versione] termina il [data].""The current cluster version [version #] support ends [date]."

Quando il cluster inizia a eseguire la versione più recente, l'avviso non viene più visualizzato.After the cluster is running the latest version, the warning goes away.

Flusso di lavoro per l'aggiornamento del clusterCluster upgrade workflow

Quando viene visualizzato l'avviso di integrità del cluster, seguire questa procedura:When you see the cluster health warning, do the following:

  1. Connettersi al cluster da qualsiasi macchina con accesso amministrativo a tutte le macchine elencate come nodi nel cluster.Connect to the cluster from any machine that has administrator access to all the machines that are listed as nodes in the cluster. Il computer in cui viene eseguito lo script non deve necessariamente far parte del cluster.The machine that this script is run on doesn't have to be part of the cluster.

    
    ###### connect to the secure cluster using certs
    $ClusterName= "mysecurecluster.something.com:19000"
    $CertThumbprint= "70EF5E22ADB649799DA3C8B6A6BF7FG2D630F8F3"
    Connect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 `
        -X509Credential `
        -ServerCertThumbprint $CertThumbprint  `
        -FindType FindByThumbprint `
        -FindValue $CertThumbprint `
        -StoreLocation CurrentUser `
        -StoreName My
    
  2. Ottenere l'elenco delle versioni di Service Fabric a cui è possibile eseguire l'aggiornamento.Get the list of Service Fabric versions that you can upgrade to.

    
    ###### Get the list of available Service Fabric versions
    Get-ServiceFabricRegisteredClusterCodeVersion
    

    L'output dovrebbe essere simile al seguente:You should get an output similar to this:

    Ottenere le versioni di Service Fabric

  3. Avviare un aggiornamento del cluster a una versione disponibile usando il comando Start-ServiceFabricClusterUpgrade di Windows PowerShell.Start a cluster upgrade to an available version by using the Start-ServiceFabricClusterUpgrade Windows PowerShell command.

    
    Start-ServiceFabricClusterUpgrade -Code -CodePackageVersion <codeversion#> -Monitored -FailureAction Rollback
    
    ###### Here is a filled-out example
    
    Start-ServiceFabricClusterUpgrade -Code -CodePackageVersion 5.3.301.9590 -Monitored -FailureAction Rollback
    

    Per monitorare lo stato di avanzamento dell'aggiornamento, è possibile usare Service Fabric Explorer o eseguire il comando di PowerShell seguente:To monitor the progress of the upgrade, you can use Service Fabric Explorer or run the following PowerShell command:

    
    Get-ServiceFabricClusterUpgrade
    

    Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.If the cluster health policies aren't met, the upgrade is rolled back. Per specificare criteri di integrità personalizzati per il comando Start-ServiceFabricClusterUpgrade, vedere la documentazione relativa a Start-ServiceFabricClusterUpgrade.To specify custom health policies for the Start-ServiceFabricClusterUpgrade command, see documentation for Start-ServiceFabricClusterUpgrade.

Dopo aver risolto i problemi che hanno determinato il ripristino dello stato precedente, avviare di nuovo l'aggiornamento ripetendo la procedura descritta prima.After you fix the issues that resulted in the rollback, initiate the upgrade again by following the same steps as previously described.

Aggiornare i cluster senza la connettività per scaricare il codice e la configurazione più recentiUpgrade clusters that have no connectivity to download the latest code and configuration

Seguire questa procedura per aggiornare il cluster a una versione supportata, se i nodi del cluster non hanno la connettività Internet all'Area download Microsoft.Use these steps to upgrade your cluster to a supported version if your cluster nodes don't have internet connectivity to the Microsoft Download Center.

Nota

Se si esegue un cluster non connesso a Internet, è necessario monitorare il blog del team di Service Fabric per informazioni sulla nuova versione.If you're running a cluster that isn't connected to the internet, you have to monitor the Service Fabric team blog to learn about new releases. Il sistema non visualizza alcun avviso di integrità del cluster per informare l'utente di una nuova versione.The system doesn't show a cluster health warning to alert you of new releases.

Confronto tra provisioning automatico e provisioning manualeAuto provisioning vs. manual provisioning

Per consentire il download e la registrazione automatici per la versione più recente del codice, impostare il servizio di aggiornamento di Service Fabric.To enable automatic downloading and registration for the latest code version, set up the Service Fabric Update Service. Per istruzioni, vedere Tools\ServiceFabricUpdateService.zip\Readme_InstructionsAndHowTos.txt nel pacchetto autonomo.For instructions, see Tools\ServiceFabricUpdateService.zip\Readme_InstructionsAndHowTos.txt inside the standalone package. Per il processo manuale, seguire le istruzioni riportate di seguito.For the manual process, follow these instructions.

Modificare la configurazione del cluster per impostare la proprietà seguente su false prima di avviare un aggiornamento della configurazione:Modify your cluster configuration to set the following property to false before you start a configuration upgrade:

    "fabricClusterAutoupgradeEnabled": false,

Per informazioni dettagliate sull'utilizzo, vedere il comando di PowerShell Start-ServiceFabricClusterConfigurationUpgrade.For usage details, see the Start-ServiceFabricClusterConfigurationUpgrade PowerShell command. Prima di avviare l'aggiornamento della configurazione, verificare di aggiornare "clusterConfigurationVersion" nel file JSON.Make sure to update 'clusterConfigurationVersion' in your JSON before you start the configuration upgrade.


    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>

Flusso di lavoro per l'aggiornamento del clusterCluster upgrade workflow

  1. Eseguire Get-ServiceFabricClusterUpgrade da uno dei nodi del cluster e annotare il valore di TargetCodeVersion.Run Get-ServiceFabricClusterUpgrade from one of the nodes in the cluster, and note the TargetCodeVersion.

  2. Eseguire il comando seguente da un computer connesso a Internet per elencare tutte le versioni compatibili di l'aggiornamento con la versione corrente e scaricare il pacchetto corrispondente dai collegamenti di download associati:Run the following from an internet-connected machine to list all upgrade-compatible versions with the current version and download the corresponding package from the associated download links:

    
    ###### Get list of all upgrade compatible packages  
    Get-ServiceFabricRuntimeUpgradeVersion -BaseVersion <TargetCodeVersion as noted in Step 1> 
    
  3. Connettersi al cluster da qualsiasi macchina con accesso amministrativo a tutte le macchine elencate come nodi nel cluster.Connect to the cluster from any machine that has administrator access to all the machines that are listed as nodes in the cluster. Il computer in cui viene eseguito lo script non deve necessariamente far parte del cluster.The machine that this script is run on doesn't have to be part of the cluster.

    
    ###### Get the list of available Service Fabric versions
    Copy-ServiceFabricClusterPackage -Code -CodePackagePath <name of the .cab file including the path to it> -ImageStoreConnectionString "fabric:ImageStore"
    
    ###### Here is a filled-out example
    Copy-ServiceFabricClusterPackage -Code -CodePackagePath .\MicrosoftAzureServiceFabric.5.3.301.9590.cab -ImageStoreConnectionString "fabric:ImageStore"
    
  4. Copiare il pacchetto scaricato nell'archivio immagini del cluster.Copy the downloaded package into the cluster image store.

  5. Registrare il pacchetto copiato.Register the copied package.

    
    ###### Get the list of available Service Fabric versions
    Register-ServiceFabricClusterPackage -Code -CodePackagePath <name of the .cab file>
    
    ###### Here is a filled-out example
    Register-ServiceFabricClusterPackage -Code -CodePackagePath MicrosoftAzureServiceFabric.5.3.301.9590.cab
    
  6. Avviare un aggiornamento del cluster a una versione disponibile.Start a cluster upgrade to an available version.

    
    Start-ServiceFabricClusterUpgrade -Code -CodePackageVersion <codeversion#> -Monitored -FailureAction Rollback
    
    ###### Here is a filled-out example
    Start-ServiceFabricClusterUpgrade -Code -CodePackageVersion 5.3.301.9590 -Monitored -FailureAction Rollback
    

    È possibile monitorare lo stato di avanzamento dell'aggiornamento in Service Fabric Explorer oppure è possibile eseguire questo comando di PowerShell:You can monitor the progress of the upgrade on Service Fabric Explorer, or you can run the following PowerShell command:

    
    Get-ServiceFabricClusterUpgrade
    

    Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.If the cluster health policies aren't met, the upgrade is rolled back. Per specificare criteri di integrità personalizzati per il comando Start-ServiceFabricClusterUpgrade, vedere la documentazione relativa a Start-ServiceFabricClusterUpgrade.To specify custom health policies for the Start-ServiceFabricClusterUpgrade command, see the documentation for Start-ServiceFabricClusterUpgrade.

Dopo aver risolto i problemi che hanno determinato il ripristino dello stato precedente, avviare di nuovo l'aggiornamento ripetendo la procedura descritta prima.After you fix the issues that resulted in the rollback, initiate the upgrade again by following the same steps as previously described.

Aggiornare la configurazione del clusterUpgrade the cluster configuration

Prima di avviare l'aggiornamento della configurazione, è possibile testare il nuovo file JSON di configurazione cluster eseguendo lo script di PowerShell seguente nel pacchetto autonomo:Before you initiate the configuration upgrade, you can test your new cluster configuration JSON by running the following PowerShell script in the standalone package:


    TestConfiguration.ps1 -ClusterConfigFilePath <Path to the new Configuration File> -OldClusterConfigFilePath <Path to the old Configuration File>

Oppure, usare questo script:Or use this script:


    TestConfiguration.ps1 -ClusterConfigFilePath <Path to the new Configuration File> -OldClusterConfigFilePath <Path to the old Configuration File> -FabricRuntimePackagePath <Path to the .cab file which you want to test the configuration against>

Alcune configurazioni non possono essere aggiornate, ad esempio gli endpoint, il nome del cluster, l'IP del nodo e così via. Il nuovo file JSON di configurazione cluster verrà testato confrontandolo con quello precedente e, in caso di problemi, verranno generati errori nella finestra di PowerShell.Some configurations can't be upgraded, such as endpoints, cluster name, node IP, etc. The new cluster configuration JSON is tested against the old one and throws errors in the PowerShell window if there's an issue.

Per aggiornare la configurazione del cluster, eseguire Start-ServiceFabricClusterConfigurationUpgrade.To upgrade the cluster configuration upgrade, run Start-ServiceFabricClusterConfigurationUpgrade. L'aggiornamento della configurazione viene eseguito per dominio di aggiornamento.The configuration upgrade is processed upgrade domain by upgrade domain.


    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>

Aggiornamento della configurazione del certificato del clusterCluster certificate config upgrade

Per l'autenticazione tra i nodi del cluster viene usato un certificato del cluster.A cluster certificate is used for authentication between cluster nodes. Il rollover del certificato deve essere eseguito con particolare attenzione perché un errore può bloccare le comunicazioni tra i nodi del cluster.The certificate rollover should be performed with extra caution because failure blocks the communication among cluster nodes.

Tecnicamente, sono supportate quattro opzioni:Technically, four options are supported:

  • Aggiornamento certificato singolo: il percorso di aggiornamento è "Certificato (primario)-> Certificato B (primario)-> Certificato C (primario)->...".Single certificate upgrade: The upgrade path is Certificate A (Primary) -> Certificate B (Primary) -> Certificate C (Primary) ->....

  • Aggiornamento certificato doppio: il percorso di aggiornamento è "Certificato A (primario) -> Certificato A (primario) e B (secondario) -> Certificato B (primario) -> Certificato B (primario) e C (secondario) -> Certificato C (primario) ->...".Double certificate upgrade: The upgrade path is Certificate A (Primary) -> Certificate A (Primary) and B (Secondary) -> Certificate B (Primary) -> Certificate B (Primary) and C (Secondary) -> Certificate C (Primary) ->....

  • Aggiornamento del tipo di certificato: configurazione dei certificati basati su identificazione personale <-> configurazione dei certificati basati su CommonName.Certificate type upgrade: Thumbprint-based certificate configuration <-> CommonName-based certificate configuration. Ad esempio, identificazione personale del certificato A (primario) e identificazione personale B (secondario) -> CommonName del certificato C.For example, Certificate Thumbprint A (Primary) and Thumbprint B (Secondary) -> Certificate CommonName C.

  • Aggiornamento dell'identificazione personale dell'autorità di certificazione: il percorso di aggiornamento è "Certificato CN=A,IssuerThumbprint=IT1 (primario) -> Certificato CN=A,IssuerThumbprint=IT1,IT2 (primario) -> Certificato CN=A,IssuerThumbprint=IT2 (primario)".Certificate issuer thumbprint upgrade: The upgrade path is Certificate CN=A,IssuerThumbprint=IT1 (Primary) -> Certificate CN=A,IssuerThumbprint=IT1,IT2 (Primary) -> Certificate CN=A,IssuerThumbprint=IT2 (Primary).

Passaggi successiviNext steps