Tutorial: Atualizar o runtime de um cluster do Service Fabric no Azure
Este tutorial é a quarta parte de uma série e mostra como atualizar o tempo de execução do Service Fabric em 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 de CLI do Azure ainda não suportam a atualização do runtime do cluster. Em alternativa, um cluster pode ser atualizado no portal. Para obter mais informações, veja Atualizar um cluster do Azure Service Fabric.
Se o cluster já estiver executando o tempo de execução mais recente do Service Fabric, não será necessário executar esta etapa. No entanto, este artigo pode ser utilizado para instalar qualquer runtime suportado num cluster do Azure Service Fabric.
Neste tutorial, irá aprender a:
- Ler a versão do cluster
- Definir a versão do cluster
Nesta série de tutoriais, ficará a saber como:
- Criar um cluster seguro do Windows no Azure usando um modelo
- Monitorar um cluster
- Reduzir ou aumentar um cluster horizontalmente
- Atualizar o tempo de execução de um cluster
- Eliminar um cluster
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Pré-requisitos
Antes de começar este tutorial:
- Se não tiver uma subscrição do Azure, crie uma conta gratuita
- Instale o Azure PowerShell ou a CLI do Azure.
- Criar um cluster seguro do Windows no Azure
- Configure um ambiente de desenvolvimento do Windows. Instale o Visual Studio 2019 e as cargas de trabalho de desenvolvimento de plataforma cruzada do Azure, desenvolvimento ASP.NET e Web e .NET Core. Em seguida, configure um ambiente de desenvolvimento .NET.
Iniciar sessão no Azure
Inicie sessão na sua conta do Azure, selecione a sua subscrição antes de executar os comandos do Azure.
Connect-AzAccount
Get-AzSubscription
Set-AzContext -SubscriptionId <guid>
Obter a versão de runtime
Depois de se conectar ao Azure, selecionar a assinatura que contém o cluster do Service Fabric, você pode obter a versão de tempo de execução do cluster.
Get-AzServiceFabricCluster -ResourceGroupName SFCLUSTERTUTORIALGROUP -Name aztestcluster `
| Select-Object ClusterCodeVersion
Ou obtenha uma lista de todos os clusters na sua subscrição com o seguinte exemplo:
Get-AzServiceFabricCluster | Select-Object Name, ClusterCodeVersion
Tome nota do valor de ClusterCodeVersion. Este valor vai ser utilizado na secção seguinte.
Atualizar o runtime
Utilize o valor de ClusterCodeVersion da secção anterior com o cmdlet Get-ServiceFabricRuntimeUpgradeVersion
para descobrir que versões estão disponíveis para efetuar a atualização. Este cmdlet só pode ser executado a partir de um computador ligado à Internet. Por exemplo, se quiser ver para que versões de runtime pode atualizar a partir da versão 5.7.198.9494
, utilize o seguinte comando:
Get-ServiceFabricRuntimeUpgradeVersion -BaseVersion "5.7.198.9494"
Com uma lista de versões, pode dizer ao cluster do Azure Service Fabric para atualizar para um runtime mais recente. Por exemplo, se versão 6.0.219.9494
estiver disponível para atualizar para a mesma, utilize o seguinte comando para atualizar o cluster.
Set-AzServiceFabricUpgradeType -ResourceGroupName SFCLUSTERTUTORIALGROUP `
-Name aztestcluster `
-UpgradeMode Manual `
-Version "6.0.219.9494"
Importante
A atualização do runtime do cluster pode demorar muito tempo a concluir. O PowerShell está bloqueado enquanto a atualização está em execução. Pode utilizar outra sessão do PowerShell para verificar o estado da atualização.
O estado da atualização pode ser monitorizado 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. Utilize 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, utilize Get-ServiceFabricClusterUpgrade
ou sfctl cluster upgrade-status
para apresentar o estado. É apresentado algo semelhante ao resultado seguinte.
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óximos passos
Neste tutorial, ficou a saber como:
- Obter a versão do runtime do cluster
- Atualizar o runtime do cluster
- Monitorizar a atualização
Avance para o tutorial seguinte: