Aggiornare un cluster di Azure Service FabricUpgrade an Azure Service Fabric cluster

Per i sistemi attuali la progettazione a livello di aggiornamento è fondamentale per il successo a lungo termine di un prodotto.For any modern system, designing for upgradability is key to achieving long-term success of your product. Un cluster di Azure Service Fabric è una risorsa di proprietà dell'utente parzialmente gestita da Microsoft.An Azure Service Fabric cluster is a resource that you own, but is partly managed by Microsoft. Questo articolo descrive ciò che viene gestito automaticamente e ciò che è possibile configurare manualmente.This article describes what is managed automatically and what you can configure yourself.

Controllo della versione di Fabric eseguita nel clusterControlling the fabric version that runs on your Cluster

È possibile impostare il cluster per ricevere gli aggiornamenti automatici di Fabric quando vengono rilasciati da Microsoft oppure è possibile selezionare una versione di Fabric supportata da eseguire nel cluster.You can set your cluster to receive automatic fabric upgrades as they are released by Microsoft or you can select a supported fabric version you want your cluster to be on.

A questo scopo, impostare l'opzione di configurazione "upgradeMode" del cluster nel portale oppure usare Resource Manager al momento della creazione o successivamente in un cluster attivo.You do this by setting the "upgradeMode" cluster configuration on the portal or using Resource Manager at the time of creation or later on a live cluster

Nota

Verificare che il cluster esegua sempre una versione di Fabric supportata. Quando viene annunciato 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 da tale data. Le nuove versioni vengono annunciate nel blog del team di Service Fabric. A questo punto è possibile scegliere la nuova versione.

14 giorni prima della scadenza della versione in esecuzione nel cluster, viene generato un evento di integrità e il cluster passa a uno stato di avviso.14 days prior to the expiry of the release your cluster is running, a health event is generated that puts your cluster into a warning health state. Il cluster rimane in stato di avviso fino a quando non viene eseguito l'aggiornamento a una versione di Fabric supportata.The cluster remains in a warning state until you upgrade to a supported fabric version.

Impostazione della modalità di aggiornamento tramite il portaleSetting the upgrade mode via portal

È possibile impostare l'aggiornamento automatico o manuale durante la creazione del cluster.You can set the cluster to automatic or manual when you are creating the cluster.

Creazione - Modalità manuale

È possibile impostare l'aggiornamento automatico o manuale in un cluster attivo con l'esperienza di gestione.You can set the cluster to automatic or manual when on a live cluster, using the manage experience.

Aggiornamento a una nuova versione in un cluster impostato sulla modalità manuale tramite il portaleUpgrading to a new version on a cluster that is set to Manual mode via portal.

Per eseguire l'aggiornamento a una nuova versione, è sufficiente selezionare la versione disponibile nell'elenco a discesa e salvare.To upgrade to a new version, all you need to do is select the available version from the dropdown and save. L'aggiornamento di Fabric viene avviato automaticamente.The Fabric upgrade gets kicked off automatically. Durante l'aggiornamento vengono rispettati i criteri di integrità del cluster (una combinazione dell'integrità del nodo e dell'integrità di tutte le applicazioni in esecuzione nel cluster).The cluster health policies (a combination of node health and the health all the applications running in the cluster) are adhered to during the upgrade.

Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.If the cluster health policies are not met, the upgrade is rolled back. Per altre informazioni su come impostare questi criteri di integrità personalizzati, scorrere questo documento verso il basso.Scroll down this document to read more on how to set those custom health policies.

Dopo aver risolto i problemi che hanno determinato il rollback, è necessario avviare di nuovo l'aggiornamento, seguendo la stessa procedura precedente.Once you have fixed the issues that resulted in the rollback, you need to initiate the upgrade again, by following the same steps as before.

Gestione - Modalità automatica

Impostazione della modalità di aggiornamento tramite un modello di Resource ManagerSetting the upgrade mode via a Resource Manager template

Aggiungere l'opzione di configurazione "upgradeMode" alla definizione della risorsa Microsoft.ServiceFabric/clusters e impostare "clusterCodeVersion" su una delle versioni di Fabric supportate come illustrato di seguito, quindi distribuire il modello.Add the "upgradeMode" configuration to the Microsoft.ServiceFabric/clusters resource definition and set the "clusterCodeVersion" to one of the supported fabric versions as shown below and then deploy the template. I valori validi per "upgradeMode" sono "Manual" e "Automatic"The valid values for "upgradeMode" are "Manual" or "Automatic"

Modalità di aggiornamento tramite Azure Resource Manager

Aggiornamento a una nuova versione in un cluster impostato sulla modalità manuale tramite un modello di Resource ManagerUpgrading to a new version on a cluster that is set to Manual mode via a Resource Manager template.

Quando il cluster è in modalità manuale, per eseguire l'aggiornamento a una nuova versione modificare "clusterCodeVersion" impostando una versione supportata e quindi eseguire la distribuzione.When the cluster is in Manual mode, to upgrade to a new version, change the "clusterCodeVersion" to a supported version and deploy it. Con la distribuzione del modello, l'aggiornamento di Fabric viene avviato automaticamente.The deployment of the template, kicks of the Fabric upgrade gets kicked off automatically. Durante l'aggiornamento vengono rispettati i criteri di integrità del cluster (una combinazione dell'integrità del nodo e dell'integrità di tutte le applicazioni in esecuzione nel cluster).The cluster health policies (a combination of node health and the health all the applications running in the cluster) are adhered to during the upgrade.

Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.If the cluster health policies are not met, the upgrade is rolled back. Per altre informazioni su come impostare questi criteri di integrità personalizzati, scorrere questo documento verso il basso.Scroll down this document to read more on how to set those custom health policies.

Dopo aver risolto i problemi che hanno determinato il rollback, è necessario avviare di nuovo l'aggiornamento, seguendo la stessa procedura precedente.Once you have fixed the issues that resulted in the rollback, you need to initiate the upgrade again, by following the same steps as before.

Ottenere l'elenco di tutte le versioni disponibili per tutti gli ambienti per una determinata sottoscrizioneGet list of all available version for all environments for a given subscription

Eseguendo questo comando si otterrà un output simile al seguente.Run the following command, and you should get an output similar to this.

"supportExpiryUtc" indica la scadenza di una determinata versione."supportExpiryUtc" tells your when a given release is expiring or has expired. La versione più recente non ha una data valida, ma un valore "9999-12-31T23:59:59.9999999", che indica che la data di scadenza non è ancora stata impostata.The latest release does not have a valid date - it has a value of "9999-12-31T23:59:59.9999999", which just means that the expiry date is not yet set.

GET https://<endpoint>/subscriptions/{{subscriptionId}}/providers/Microsoft.ServiceFabric/locations/{{location}}/clusterVersions?api-version=2016-09-01

Example: https://management.azure.com/subscriptions/1857f442-3bce-4b96-ad95-627f76437a67/providers/Microsoft.ServiceFabric/locations/eastus/clusterVersions?api-version=2016-09-01

Output:
{
                  "value": [
                    {
                      "id": "subscriptions/35349203-a0b3-405e-8a23-9f1450984307/providers/Microsoft.ServiceFabric/environments/Windows/clusterVersions/5.0.1427.9490",
                      "name": "5.0.1427.9490",
                      "type": "Microsoft.ServiceFabric/environments/clusterVersions",
                      "properties": {
                        "codeVersion": "5.0.1427.9490",
                        "supportExpiryUtc": "2016-11-26T23:59:59.9999999",
                        "environment": "Windows"
                      }
                    },
                    {
                      "id": "subscriptions/35349203-a0b3-405e-8a23-9f1450984307/providers/Microsoft.ServiceFabric/environments/Windows/clusterVersions/4.0.1427.9490",
                      "name": "5.1.1427.9490",
                      "type": " Microsoft.ServiceFabric/environments/clusterVersions",
                      "properties": {
                        "codeVersion": "5.1.1427.9490",
                        "supportExpiryUtc": "9999-12-31T23:59:59.9999999",
                        "environment": "Windows"
                      }
                    },
                    {
                      "id": "subscriptions/35349203-a0b3-405e-8a23-9f1450984307/providers/Microsoft.ServiceFabric/environments/Windows/clusterVersions/4.4.1427.9490",
                      "name": "4.4.1427.9490",
                      "type": " Microsoft.ServiceFabric/environments/clusterVersions",
                      "properties": {
                        "codeVersion": "4.4.1427.9490",
                        "supportExpiryUtc": "9999-12-31T23:59:59.9999999",
                        "environment": "Linux"
                      }
                    }
                  ]
                }

Comportamento di aggiornamento di Fabric in caso di cluster con modalità automatica di aggiornamentoFabric upgrade behavior when the cluster Upgrade Mode is Automatic

Microsoft gestisce il codice dell'infrastruttura e la configurazione eseguita in un cluster di AzureMicrosoft maintains the fabric code and configuration that runs in an Azure cluster. e, in base alle esigenze, esegue aggiornamenti monitorati del software in modo automatico.We perform automatic monitored upgrades to the software on an as-needed basis. Gli aggiornamenti possono interessare il codice, la configurazione o entrambi.These upgrades could be code, configuration, or both. Per assicurarsi che gli aggiornamenti abbiano un impatto minimo o nullo sull'applicazione, vengono eseguiti nelle fasi descritte di seguito.To make sure that your application suffers no impact or minimal impact due to these upgrades, we perform the upgrades in the following phases:

Fase 1: Un aggiornamento viene eseguito usando tutti i criteri di integrità del clusterPhase 1: An upgrade is performed by using all cluster health policies

In questa fase gli aggiornamenti interessano un dominio di aggiornamento per volta e le applicazioni in esecuzione sul cluster non subiscono tempi di inattività.During this phase, the upgrades proceed one upgrade domain at a time, and the applications that were running in the cluster continue to run without any downtime. Durante l'aggiornamento vengono rispettati i criteri di integrità del cluster (una combinazione dell'integrità del nodo e dell'integrità di tutte le applicazioni in esecuzione nel cluster).The cluster health policies (a combination of node health and the health all the applications running in the cluster) are adhered to during the upgrade.

Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.If the cluster health policies are not met, the upgrade is rolled back. Al proprietario della sottoscrizione verrà quindi inviato un messaggio di posta elettronicaThen an email is sent to the owner of the subscription. contenente le informazioni seguenti:The email contains the following information:

  • Notifica che era necessario eseguire il rollback di un aggiornamento del cluster.Notification that we had to roll back a cluster upgrade.
  • Eventuali azioni correttive suggerite.Suggested remedial actions, if any.
  • Il numero di giorni (n) prima dell'avvio della fase 2.The number of days (n) until we execute Phase 2.

Si tenta di eseguire più volte lo stesso aggiornamento nel caso in cui non sia riuscito a causa di problemi di infrastruttura.We try to execute the same upgrade a few more times in case any upgrades failed for infrastructure reasons. Dopo che gli n giorni dalla data di invio del messaggio di posta elettronica sono trascorsi, si passa alla fase 2.After the n days from the date the email was sent, we proceed to Phase 2.

Se i criteri di integrità del cluster sono soddisfatti, l'aggiornamento si considera riuscito e viene contrassegnato come completato.If the cluster health policies are met, the upgrade is considered successful and marked complete. Questa situazione può verificarsi durante l'aggiornamento iniziale o in una delle repliche previste in questa fase.This can happen during the initial upgrade or any of the upgrade reruns in this phase. Non viene inviato alcun messaggio di posta elettronica di conferma in caso di esecuzione riuscita.There is no email confirmation of a successful run. in modo da evitare l'invio di troppi messaggi e per far sì che la ricezione di un messaggio rappresenti un'eccezione alla norma.This is to avoid sending you too many emails--receiving an email should be seen as an exception to normal. Si prevede che la maggior parte degli aggiornamenti del cluster abbia esito positivo, senza alcun impatto sulla disponibilità dell'applicazione.We expect most of the cluster upgrades to succeed without impacting your application availability.

Fase 2: Un aggiornamento viene eseguito usando solo i criteri di integrità predefinitiPhase 2: An upgrade is performed by using default health policies only

I criteri di integrità in questa fase vengono impostati in modo che il numero di applicazioni integre all'inizio dell'aggiornamento rimanga invariato per l'intera durata del processo di aggiornamento.The health policies in this phase are set in such a way that the number of applications that were healthy at the beginning of the upgrade remains the same for the duration of the upgrade process. Come nella fase 1, in questa fase gli aggiornamenti interessano un dominio di aggiornamento per volta e le applicazioni in esecuzione sul cluster non subiscono tempi di inattività.As in Phase 1, the Phase 2 upgrades proceed one upgrade domain at a time, and the applications that were running in the cluster continue to run without any downtime. I criteri di integrità del cluster (una combinazione dell'integrità del nodo e dell'integrità di tutte le applicazioni in esecuzione sul cluster) vengono rispettati per l'intera durata dell'aggiornamento.The cluster health policies (a combination of node health and the health all the applications running in the cluster) are adhered to for the duration of the upgrade.

Se i criteri di integrità del cluster in vigore non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.If the cluster health policies in effect are not met, the upgrade is rolled back. Al proprietario della sottoscrizione verrà quindi inviato un messaggio di posta elettronicaThen an email is sent to the owner of the subscription. contenente le informazioni seguenti:The email contains the following information:

  • Notifica che era necessario eseguire il rollback di un aggiornamento del cluster.Notification that we had to roll back a cluster upgrade.
  • Eventuali azioni correttive suggerite.Suggested remedial actions, if any.
  • Il numero di giorni (n) prima dell'avvio della fase 3.The number of days (n) until we execute Phase 3.

Si tenta di eseguire più volte lo stesso aggiornamento nel caso in cui non sia riuscito a causa di problemi di infrastruttura.We try to execute the same upgrade a few more times in case any upgrades failed for infrastructure reasons. Viene inviato un messaggio di sollecito alcuni giorni prima della scadenza degli n giorni.A reminder email is sent a couple of days before n days are up. Dopo che gli n giorni dalla data di invio del messaggio di posta elettronica sono trascorsi, si passa alla fase 3.After the n days from the date the email was sent, we proceed to Phase 3. I messaggi di posta elettronica inviati nella fase 2 devono essere tenuti in alta considerazione e devono essere intraprese azioni correttive.The emails we send you in Phase 2 must be taken seriously and remedial actions must be taken.

Se i criteri di integrità del cluster sono soddisfatti, l'aggiornamento si considera riuscito e viene contrassegnato come completato.If the cluster health policies are met, the upgrade is considered successful and marked complete. Questa situazione può verificarsi durante l'aggiornamento iniziale o in una delle repliche previste in questa fase.This can happen during the initial upgrade or any of the upgrade reruns in this phase. Non viene inviato alcun messaggio di posta elettronica di conferma in caso di esecuzione riuscita.There is no email confirmation of a successful run.

Fase 3: Un aggiornamento viene eseguito usando criteri di integrità aggressiviPhase 3: An upgrade is performed by using aggressive health policies

Tali criteri di integrità in questa fase sono pensati per il completamento dell'aggiornamento piuttosto che per l'integrità delle applicazioni.These health policies in this phase are geared towards completion of the upgrade rather than the health of the applications. In questa fase verranno completati pochi aggiornamenti del cluster.Very few cluster upgrades end up in this phase. Se il cluster giunge a questa fase, è molto probabile che l'applicazione divenga non integra e/o perda disponibilità.If your cluster gets to this phase, there is a good chance that your application becomes unhealthy and/or lose availability.

In modo analogo alle altre due fasi, gli aggiornamenti della fase 3 procedono in base a un dominio di aggiornamento alla volta.Similar to the other two phases, Phase 3 upgrades proceed one upgrade domain at a time.

Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.If the cluster health policies are not met, the upgrade is rolled back. Si tenta di eseguire più volte lo stesso aggiornamento nel caso in cui non sia riuscito a causa di problemi di infrastruttura.We try to execute the same upgrade a few more times in case any upgrades failed for infrastructure reasons. A questo punto, il cluster viene bloccato in modo che non riceva più supporto e/o aggiornamenti.After that, the cluster is pinned, so that it will no longer receive support and/or upgrades.

Al proprietario della sottoscrizione viene inviato un messaggio di posta elettronica contenente queste informazioni e le azioni correttive.An email with this information is sent to the subscription owner, along with the remedial actions. Se la fase 3 ha esito negativo, si prevede che il cluster non venga impostato su alcun tipo di stato.We do not expect any clusters to get into a state where Phase 3 has failed.

Se i criteri di integrità del cluster sono soddisfatti, l'aggiornamento si considera riuscito e viene contrassegnato come completato.If the cluster health policies are met, the upgrade is considered successful and marked complete. Questa situazione può verificarsi durante l'aggiornamento iniziale o in una delle repliche previste in questa fase.This can happen during the initial upgrade or any of the upgrade reruns in this phase. Non viene inviato alcun messaggio di posta elettronica di conferma in caso di esecuzione riuscita.There is no email confirmation of a successful run.

Configurazioni del cluster controllate manualmenteCluster configurations that you control

Oltre a poter impostare la modalità di aggiornamento del cluster, in un cluster attivo è possibile modificare le configurazioni riportate di seguito.In addition to the ability to set the cluster upgrade mode, Here are the configurations that you can change on a live cluster.

CertificatiCertificates

È facile aggiungere o eliminare i certificati di cluster e client tramite il portale.You can add new or delete certificates for the cluster and client via the portal easily. Fare riferimento a questo documento per altre informazioniRefer to this document for detailed instructions

Schermata che illustra le identificazioni personali del certificato nel portale di Azure.

Porte dell'applicazioneApplication ports

È possibile modificare le porte dell'applicazione modificando le proprietà della risorsa del servizio di bilanciamento del carico associate al tipo di nodo.You can change application ports by changing the Load Balancer resource properties that are associated with the node type. A questo scopo, è possibile usare il portale oppure direttamente PowerShell per Gestione risorse.You can use the portal, or you can use Resource Manager PowerShell directly.

Per aprire una nuova porta in tutte le VM di un tipo di nodo, seguire questa procedura.To open a new port on all VMs in a node type, do the following:

  1. Aggiungere un nuovo probe al servizio di bilanciamento del carico appropriato.Add a new probe to the appropriate load balancer.

    Se il cluster è stato distribuito tramite il portale, il bilanciamento del carico verrà denominato "LB-nome del gruppo di risorse-NodeTypename", uno per ogni tipo di nodo.If you deployed your cluster by using the portal, the load balancers are named "LB-name of the Resource group-NodeTypename", one for each node type. Poiché i nomi del servizio di bilanciamento del carico sono univoci solo nell'ambito di un gruppo di risorse, è consigliabile cercarli in uno specifico gruppo di risorse.Since the load balancer names are unique only within a resource group, it is best if you search for them under a specific resource group.

    Schermata che illustra l'aggiunta di un probe a un servizio di bilanciamento del carico nel portale.

  2. Aggiungere una nuova regola al servizio di bilanciamento del carico.Add a new rule to the load balancer.

    Aggiungere una nuova regola allo stesso servizio di bilanciamento del carico usando il probe creato nel passaggio precedente.Add a new rule to the same load balancer by using the probe that you created in the previous step.

    Aggiunta di una nuova regola a un servizio di bilanciamento del carico nel portale

Proprietà di posizionamentoPlacement properties

Per ogni tipo di nodo è possibile aggiungere proprietà di posizionamento personalizzate da usare nelle applicazioni.For each of the node types, you can add custom placement properties that you want to use in your applications. NodeType è una proprietà predefinita che è possibile usare senza aggiungerla in modo esplicito.NodeType is a default property that you can use without adding it explicitly.

Nota

Per informazioni dettagliate sull'uso dei vincoli di posizionamento, le proprietà dei nodi e le relative definizioni, vedere la sezione relativa ai vincoli di posizionamento e proprietà dei nodi nell'articolo di Gestione risorse del cluster di Service Fabric relativo alla descrizione del cluster.

Metriche della capacitàCapacity metrics

Per ogni tipo di nodo è possibile aggiungere metriche di capacità personalizzate da usare nelle applicazioni per creare report sul carico.For each of the node types, you can add custom capacity metrics that you want to use in your applications to report load. Per informazioni dettagliate sull'uso di metriche di capacità per la segnalazione del carico, vedere i documenti di Gestione risorse del cluster di Service Fabric relativi a descrizione del cluster e metriche e carico.For details on the use of capacity metrics to report load, refer to the Service Fabric Cluster Resource Manager Documents on Describing Your Cluster and Metrics and Load.

Impostazioni di aggiornamento di Fabric: criteri di integritàFabric upgrade settings - Health polices

È possibile specificare criteri di integrità personalizzati per l'aggiornamento di Fabric.You can specify custom health polices for fabric upgrade. Se nel cluster è stato impostato l'aggiornamento automatico di Fabric, questi criteri vengono applicati alla fase 1 degli aggiornamenti automatici di Fabric.If you have set your cluster to Automatic fabric upgrades, then these policies get applied to the Phase-1 of the automatic fabric upgrades. Se nel cluster è stato impostato l'aggiornamento manuale di Fabric, questi criteri vengono applicati ogni volta che si seleziona una nuova versione attivando nel sistema l'avvio dell'aggiornamento di Fabric nel cluster.If you have set your cluster for Manual fabric upgrades, then these policies get applied each time you select a new version triggering the system to kick off the fabric upgrade in your cluster. Se non si esegue l'override dei criteri, vengono usati quelli predefiniti.If you do not override the policies, the defaults are used.

È possibile specificare criteri di integrità personalizzati o esaminare le impostazioni correnti nel pannello relativo agli aggiornamenti di Fabric, selezionando le impostazioni di aggiornamento avanzate.You can specify the custom health policies or review the current settings under the "fabric upgrade" blade, by selecting the advanced upgrade settings. La figura seguente illustra questo passaggio.Review the following picture on how to.

Gestire criteri di integrità personalizzati

Personalizzare le impostazioni di Fabric per il clusterCustomize Fabric settings for your cluster

Per informazioni sulle impostazioni personalizzabili e su come possono essere personalizzate, vedere l'articolo relativo alle impostazioni dei cluster di Service Fabric .Refer to service fabric cluster fabric settings on what and how you can customize them.

Patch del sistema operativo nelle VM che costituiscono il clusterOS patches on the VMs that make up the cluster

Fare riferimento a Patch Orchestration Application che può essere distribuito nel cluster per installare le patch di Windows Update in modo orchestrato, mantenendo i servizi sempre disponibili.Refer to Patch Orchestration Application which can be deployed on your cluster to install patches from Windows Update in an orchestrated manner, keeping the services available all the time.

Aggiornamenti del sistema operativo nelle VM che costituiscono il clusterOS upgrades on the VMs that make up the cluster

Se è necessario aggiornare l'immagine del sistema operativo nelle macchine virtuali del cluster, eseguire questa operazione su una VM per volta.If you must upgrade the OS image on the virtual machines of the cluster, you must do it one VM at a time. L'esecuzione dell'aggiornamento è un'operazione manuale, non è attualmente disponibile alcun tipo di automazione.You are responsible for this upgrade--there is currently no automation for this.

Passaggi successiviNext steps