Condividi tramite


Esercitazione: Aggiornare il runtime di un cluster di Service Fabric in Azure

Questa esercitazione, che costituisce la quarta parte di una serie, illustra come aggiornare il runtime di Service Fabric in un cluster di Azure Service Fabric. Questa parte dell'esercitazione è scritta per cluster di Service Fabric in esecuzione in Azure e non si applica a cluster di Service Fabric autonomi.

Avviso

Questa parte dell'esercitazione richiede PowerShell. L'aggiornamento del runtime del cluster non è ancora supportato dagli strumenti dell'interfaccia della riga di comando di Azure. In alternativa, è possibile aggiornare un cluster nel portale. Per altre informazioni, vedere Aggiornare un cluster di Azure Service Fabric.

Se il cluster esegue già il runtime di Service Fabric più recente, non è necessario eseguire questo passaggio. Questo articolo può tuttavia essere usato per installare qualsiasi runtime supportato in un cluster di Azure Service Fabric.

In questa esercitazione apprenderai a:

  • Leggere la versione del cluster
  • Impostare la versione del cluster

In questa serie di esercitazioni si apprenderà come:

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Prerequisiti

Prima di iniziare questa esercitazione:

Accedere ad Azure

Accedere al proprio account di Azure e selezionare la sottoscrizione prima di eseguire i comandi di Azure.

Connect-AzAccount
Get-AzSubscription
Set-AzContext -SubscriptionId <guid>

Ottenere la versione del runtime

Dopo la connessione ad Azure e la selezione della sottoscrizione che contiene il cluster di Service Fabric, è possibile ottenere la versione del runtime del cluster.

Get-AzServiceFabricCluster -ResourceGroupName SFCLUSTERTUTORIALGROUP -Name aztestcluster `
    | Select-Object ClusterCodeVersion

In alternativa, è possibile ottenere l'elenco di tutti i cluster nella sottoscrizione con l'esempio seguente:

Get-AzServiceFabricCluster | Select-Object Name, ClusterCodeVersion

Si noti il valore ClusterCodeVersion. Questo valore verrà usato nella prossima sezione.

Aggiornare il runtime

Usare il valore di ClusterCodeVersion della sezione precedente con il cmdlet Get-ServiceFabricRuntimeUpgradeVersion per individuare le versioni disponibili a cui eseguire l'aggiornamento. Questo cmdlet può essere eseguito solo da un computer connesso a Internet. Se ad esempio si vogliono visualizzare le versioni del runtime a cui è possibile eseguire l'aggiornamento dalla versione 5.7.198.9494, usare il comando seguente:

Get-ServiceFabricRuntimeUpgradeVersion -BaseVersion "5.7.198.9494"

Con un elenco delle versioni, è possibile indicare al cluster di Azure Service Fabric di eseguire l'aggiornamento a un runtime più recente. Se ad esempio, è possibile eseguire l'aggiornamento alla versione 6.0.219.9494, per procedere usare il comando seguente.

Set-AzServiceFabricUpgradeType -ResourceGroupName SFCLUSTERTUTORIALGROUP `
                                    -Name aztestcluster `
                                    -UpgradeMode Manual `
                                    -Version "6.0.219.9494"

Importante

L'aggiornamento del runtime di un cluster può richiedere molto tempo. Durante l'esecuzione dell'aggiornamento PowerShell è bloccato. Per controllare lo stato dell'aggiornamento, è possibile usare un'altra sessione di PowerShell.

È possibile effettuare il monitoraggio dello stato dell'aggiornamento con PowerShell o con l'interfaccia della riga di comando di Azure Service Fabric (sfctl).

Prima connettersi al cluster con il certificato TLS/SSL creato nella prima parte dell'esercitazione. Usare il cmdlet Connect-ServiceFabricCluster o sfctl cluster upgrade-status.

$endpoint = "<mycluster>.southcentralus.cloudapp.azure.com:19000"
$thumbprint = "63EB5BA4BC2A3BADC42CA6F93D6F45E5AD98A1E4"

Connect-ServiceFabricCluster -ConnectionEndpoint $endpoint `
                             -KeepAliveIntervalInSec 10 `
                             -X509Credential -ServerCertThumbprint $thumbprint `
                             -FindType FindByThumbprint -FindValue $thumbprint `
                             -StoreLocation CurrentUser -StoreName My
sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify

Quindi usare Get-ServiceFabricClusterUpgrade o sfctl cluster upgrade-status per visualizzare lo stato. Il risultato visualizzato sarà simile al seguente.

Get-ServiceFabricClusterUpgrade

TargetCodeVersion                          : 6.0.219.9494
TargetConfigVersion                        : 3
StartTimestampUtc                          : 11/28/2017 3:09:48 AM
UpgradeState                               : RollingForwardPending
UpgradeDuration                            : 00:09:00
CurrentUpgradeDomainDuration               : 00:09:00
NextUpgradeDomain                          : 1
UpgradeDomainsStatus                       : { "0" = "Completed";
                                             "1" = "Pending";
                                             "2" = "Pending";
                                             "3" = "Pending";
                                             "4" = "Pending" }
UpgradeKind                                : Rolling
RollingUpgradeMode                         : Monitored
FailureAction                              : Rollback
ForceRestart                               : False
UpgradeReplicaSetCheckTimeout              : 37201.09:59:01
HealthCheckWaitDuration                    : 00:05:00
HealthCheckStableDuration                  : 00:05:00
HealthCheckRetryTimeout                    : 00:45:00
UpgradeDomainTimeout                       : 02:00:00
UpgradeTimeout                             : 12:00:00
ConsiderWarningAsError                     : False
MaxPercentUnhealthyApplications            : 0
MaxPercentUnhealthyNodes                   : 100
ApplicationTypeHealthPolicyMap             : {}
EnableDeltaHealthEvaluation                : True
MaxPercentDeltaUnhealthyNodes              : 0
MaxPercentUpgradeDomainDeltaUnhealthyNodes : 0
ApplicationHealthPolicyMap                 : {}
sfctl cluster upgrade-status

{
  "codeVersion": "6.0.219.9494",
  "configVersion": "3",

... item cut to save space ...

  },
  "upgradeDomains": [
    {
      "name": "0",
      "state": "Completed"
    },
    {
      "name": "1",
      "state": "Pending"
    },
    {
      "name": "2",
      "state": "Pending"
    },
    {
      "name": "3",
      "state": "Pending"
    },
    {
      "name": "4",
      "state": "Pending"
    }
  ],
  "upgradeDurationInMilliseconds": "PT1H2M4.63889S",
  "upgradeState": "RollingForwardPending"
}

Passaggi successivi

Questa esercitazione ha descritto come:

  • Ottenere la versione del runtime del cluster
  • Aggiornare il runtime del cluster
  • Effettuare il monitoraggio dell'aggiornamento

Passare all'esercitazione successiva: