Gestire gli aggiornamenti dei cluster di Service Fabric

Un cluster di Azure Service Fabric è una risorsa di proprietà dell'utente, ma parzialmente gestita da Microsoft. Ecco come gestire quando e come Microsoft aggiorna il cluster di Azure Service Fabric.

Per altre informazioni sui concetti e sui processi di aggiornamento del cluster, vedere Aggiornamento dei cluster di Azure Service Fabric.

Impostare la modalità di aggiornamento

È possibile impostare il cluster in modo che riceva gli aggiornamenti automatici di Service Fabric non appena vengono rilasciati da Microsoft oppure scegliere manualmente una delle versioni attualmente supportate in un elenco impostando la modalità di aggiornamento per il cluster. A questo scopo, è possibile usare il controllo della modalità di aggiornamento di Fabric nel portale di Azure oppure l'impostazione upgradeMode nel modello di distribuzione del cluster.

Azure portal

Usando il portale di Azure, è possibile scegliere tra aggiornamenti automatici o manuali durante la creazione di un nuovo cluster di Service Fabric.

Choose between automatic or manual upgrades when creating a new cluster in Azure portal from the 'Advanced' options

È anche possibile alternare tra aggiornamenti automatici o manuali nella sezione di aggiornamenti di Fabric di una risorsa cluster esistente.

Select Automatic or Manual upgrades in the 'Fabric upgrades' section of your cluster resource in Azure portal

Aggiornamenti manuali con il portale di Azure

Se si seleziona l'opzione di aggiornamento manuale, per avviare un aggiornamento è sufficiente effettuare una selezione nell'elenco a discesa delle versioni disponibili e quindi fare clic su Salva. A quel punto, l'aggiornamento del cluster viene avviato immediatamente.

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). Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.

Dopo aver risolto i problemi che hanno determinato il rollback, è necessario avviare di nuovo l'aggiornamento seguendo la stessa procedura precedente.

Modello di Resource Manager

Per cambiare la modalità di aggiornamento del cluster usando un modello di Resource Manager, specificare Automatic o Manual per la proprietà upgradeMode della definizione di risorsa Microsoft.ServiceFabric/clusters. Se si scelgono gli aggiornamenti manuali, impostare anche clusterCodeVersion su una versione di Fabric attualmente supportata.

Screenshot shows a template, which is plaintext indented to reflect structure. The 'clusterCodeVersion' and 'upgradeMode' properties are highlighted.

Al termine della corretta distribuzione del modello, le modifiche alla modalità di aggiornamento del cluster diventeranno effettive. Se il cluster è in modalità manuale, il relativo aggiornamento verrà avviato automaticamente.

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). Se i criteri di integrità del cluster non vengono soddisfatti, viene eseguito il rollback dell'aggiornamento.

Dopo aver risolto i problemi che hanno determinato il rollback, è necessario avviare di nuovo l'aggiornamento seguendo la stessa procedura precedente.

Distribuzione a onde per gli aggiornamenti automatici

Con la modalità di aggiornamento automatico, è possibile abilitare il cluster per la distribuzione a onde. Con questa distribuzione, è possibile creare una pipeline per aggiornare i cluster di test, staging e produzione in sequenza, con una 'fase di bake' predefinita per convalidare le versioni di Service Fabric in arrivo prima che vengano aggiornati i cluster di produzione.

Abilitare la distribuzione a onde

Nota

La distribuzione a onde richiede la versione 2020-12-01-preview (o successiva) dell'API per la risorsa Microsoft.ServiceFabric/clusters.

Per abilitare la distribuzione a onde per l'aggiornamento automatico, determinare prima di tutto quale onda assegnare il cluster:

  • Onda 0 (Wave0): i cluster vengono aggiornati non appena viene rilasciata una nuova build di Service Fabric. Opzione destinata ai cluster di test/sviluppo.
  • Onda 1 (Wave1): i cluster vengono aggiornati una settimana (sette giorni) dopo il rilascio di una nuova build. Opzione destinata ai cluster pre-produzione/staging.
  • Onda 2 (Wave2): i cluster vengono aggiornati due settimane (14 giorni) dopo il rilascio di una nuova build. Opzione destinata ai cluster di produzione.

Aggiungere quindi una proprietà upgradeWave al modello di risorsa cluster con uno dei valori di onda elencati in precedenza. Assicurarsi che la versione dell'API della risorsa cluster sia 2020-12-01-preview o successiva.

{
    "apiVersion": "2020-12-01-preview",
    "type": "Microsoft.ServiceFabric/clusters",
     ...
        "fabricSettings": [...],
        "managementEndpoint": ...,
        "nodeTypes": [...],
        "provisioningState": ...,
        "reliabilityLevel": ...,
        "upgradeMode": "Automatic",
        "upgradeWave": "Wave1",
       ...

Dopo aver distribuito il modello aggiornato, il cluster verrà registrato nell'onda specificata per il periodo di aggiornamento successivo e per quelli che seguono.

È possibile registrarsi per ricevere notifiche tramite posta elettronica con i collegamenti a ulteriore assistenza nel caso in cui un aggiornamento del cluster non riesca.

Registrazione per le notifiche

È possibile registrarsi per ricevere notifiche nel caso in cui un aggiornamento del cluster non riesca. Verrà inviato un messaggio di posta elettronica a uno o più indirizzi designati con ulteriori dettagli sull'errore di aggiornamento e i collegamenti a ulteriore assistenza.

Nota

La registrazione nella distribuzione a onde non è necessaria per ricevere notifiche per gli errori di aggiornamento.

Per registrarsi, aggiungere una sezione notifications al modello di risorsa cluster e designare uno o più indirizzi di posta elettronica (destinatari) in cui ricevere le notifiche:

    "apiVersion": "2020-12-01-preview",
    "type": "Microsoft.ServiceFabric/clusters",
     ...
        "upgradeMode": "Automatic",
        "upgradeWave": "Wave1",
        "notifications": [
        {
            "isEnabled": true,
            "notificationCategory": "WaveProgress",
            "notificationLevel": "Critical",
            "notificationTargets": [
            {
                "notificationChannel": "EmailUser",
                "receivers": [
                    "devops@contoso.com"
                ]
            }]
        }]

Dopo aver distribuito il modello aggiornato, si verrà registrati per ricevere notifiche in caso di errori di aggiornamento.

Criteri personalizzati per gli aggiornamenti manuali

È possibile specificare criteri di integrità personalizzati per gli aggiornamenti manuali del cluster. Questi criteri vengono applicati ogni volta che si seleziona una nuova versione del runtime, il che attiva il sistema per l'avvio dell'aggiornamento del cluster. Se non si esegue l'override dei criteri, vengono usati quelli predefiniti.

È possibile specificare i criteri di integrità personalizzati o esaminare le impostazioni correnti nella sezione di aggiornamenti di Fabric della risorsa cluster nel portale di Azure, selezionando l'opzionePersonalizzati per Criteri di aggiornamento.

Select the 'Custom' upgrade policy option in the 'Fabric upgrades' section of your cluster resource in Azure portal in order to set custom health policies during upgrade

Verificare la presenza di versioni del cluster supportate

Per ulteriori dettagli sulle versioni e sui sistemi operativi supportati, vedere Versioni di Service Fabric.

È anche possibile usare l'API REST di Azure per visualizzare un elenco di tutte le versioni del runtime di Service Fabric (clusterVersions) disponibili per la posizione e la sottoscrizione specificate.

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

"value": [
  {
    "id": "subscriptions/########-####-####-####-############/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/########-####-####-####-############/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/########-####-####-####-############/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"
    }
  }
]
}

Il parametro supportExpiryUtc nell'output segnala quando una data versione è in scadenza oppure è scaduta. Le versioni più recenti non avranno una data valida, ma piuttosto un valore 9999-12-31T23:59:59.9999999, che indica che la data di scadenza non è stata ancora impostata.

Verificare il percorso di aggiornamento supportato

Per informazioni sui percorsi di aggiornamento supportati e sulle versioni correlate, è possibile consultare la documentazione sulle versioni di Service Fabric.

Usando le informazioni sulle versioni di destinazione supportate, è possibile seguire la procedura di PowerShell seguente per convalidare il percorso di aggiornamento supportato.

  1. Accedere ad Azure

    Login-AzAccount
    
  2. Selezionare la sottoscrizione

    Set-AzContext -SubscriptionId <your-subscription>
    
  3. Richiamare l'API

    $params = @{ "TargetVersion" = "<target version>"}
    Invoke-AzResourceAction -ResourceId <cluster resource id> -Parameters $params -Action listUpgradableVersions -Force
    

    Esempio:

    $params = @{ "TargetVersion" = "8.1.335.9590"}
    Invoke-AzResourceAction -ResourceId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ServiceFabric/clusters/myCluster -Parameters $params -Action listUpgradableVersions -Force
    
    Output
    supportedPath
    -------------
    {8.1.329.9590, 8.1.335.9590}
    

Passaggi successivi