Tutorial: Atualizar o runtime de um cluster do Service Fabric no Azure
Este tutorial é a quarta parte de uma série e mostra-lhe como atualizar o runtime do Service Fabric num cluster do Azure Service Fabric. Esta parte do tutorial é 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 a executar o runtime mais recente do Service Fabric, não precisa de efetuar este passo. No entanto, este artigo pode ser utilizado para instalar qualquer runtime suportado num cluster do Azure Service Fabric.
Neste tutorial, ficará a saber como:
- 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 com um modelo
- Monitorizar um cluster
- Reduzir ou aumentar um cluster horizontalmente
- Atualizar o runtime de um cluster
- Eliminar um cluster
Nota
Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. 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 Azure PowerShell ou a CLI do Azure.
- Criar um cluster seguro do Windows no Azure
- Configurar um ambiente de desenvolvimento do Windows. Instale o Visual Studio 2019 e as cargas de trabalho de desenvolvimento em várias plataformas 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 ligar ao Azure, selecione a subscrição que contém o cluster do Service Fabric, pode obter a versão de runtime do cluster.
Get-AzServiceFabricCluster -ResourceGroupName SFCLUSTERTUTORIALGROUP -Name aztestcluster `
| Select-Object ClusterCodeVersion
Em alternativa, basta obter 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, ligue 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"
}
Passos seguintes
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: