Compartilhar via


Tutorial: Atualizar o runtime de um cluster do Service Fabric no Azure

Este tutorial é a parte quatro de uma série e mostra como fazer upgrade do runtime do Service Fabric ou de um cluster do Azure Service Fabric. Esta parte do tutorial foi escrita para clusters do Service Fabric em execução no Azure e não se aplica a clusters autônomos do Service Fabric.

Aviso

Esta parte do tutorial requer o PowerShell. As ferramentas da CLI do Azure ainda não dão suporte ao upgrade do runtime do cluster. Como alternativa, pode ser feito o upgrade de um cluster no portal. Para saber mais, veja Upgrade de um cluster do Azure Service Fabric.

Se o cluster já estiver executando o runtime mais recente do Service Fabric, você não precisará executar esta etapa. No entanto, este artigo pode ser usado para instalar qualquer runtime com suporte em um cluster do Azure Service Fabric.

Neste tutorial, você aprenderá como:

  • Ler a versão do cluster
  • Definir a versão de cluster

Nesta série de tutoriais, você aprenderá a:

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Antes de começar este tutorial:

Entrar no Azure

Entre na sua conta do Azure e selecione sua assinatura antes de executar comandos do Azure.

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

Obter a versão de runtime

Depois de se conectar ao Azure e selecionar a assinatura que contém o cluster do Service Fabric, você poderá obter a versão de runtime do cluster.

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

Ou apenas obtenha uma lista de todos os clusters em sua assinatura com o seguinte exemplo:

Get-AzServiceFabricCluster | Select-Object Name, ClusterCodeVersion

Anote o valor de ClusterCodeVersion. Esse valor será usado na próxima seção.

Fazer upgrade do runtime

Use o valor de ClusterCodeVersion da seção anterior com o cmdlet Get-ServiceFabricRuntimeUpgradeVersion para descobrir para quais versões há upgrades disponíveis. Esse cmdlet só pode ser executado em um computador conectado à internet. Por exemplo, se quiser ver para quais versões de runtime você pode fazer upgrade da versão 5.7.198.9494, use o seguinte comando:

Get-ServiceFabricRuntimeUpgradeVersion -BaseVersion "5.7.198.9494"

Com uma lista de versões, você poderá fazer upgrade do cluster do Azure Service Fabric para um runtime mais recente. Por exemplo, se versão 6.0.219.9494 estiver disponível, use o seguinte comando para fazer upgrade do seu cluster.

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

Importante

O upgrade do runtime do cluster pode demorar muito para ser concluído. O PowerShell fica bloqueado durante a execução do upgrade. Você pode usar outra sessão do PowerShell para verificar o status do upgrade.

O status do upgrade pode ser monitorado com o PowerShell ou a CLI do Azure Service Fabric (sfctl).

Primeiro, conecte-se ao cluster com o certificado TLS/SSL criado na primeira parte do tutorial. Use o cmdlet Connect-ServiceFabricCluster ou 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

Em seguida, use Get-ServiceFabricClusterUpgrade ou sfctl cluster upgrade-status para exibir o status. Algo semelhante ao resultado a seguir é mostrado.

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"
}

Próximas etapas

Neste tutorial, você aprendeu a:

  • Obter a versão do runtime do cluster
  • Fazer upgrade do runtime do cluster
  • Monitorar o upgrade

Prosseguir para o próximo tutorial: