Share via


Gerenciar atualizações de cluster do Service Fabric

Um cluster do Azure Service Fabric é um recurso cujo proprietário é você, mas que é parcialmente gerenciado pela Microsoft. Aprenda a gerenciar quando e como a Microsoft atualiza o cluster do Azure Service Fabric.

Para obter mais informações sobre os conceitos e processos de atualização de cluster, confira como Atualizar clusters do Azure Service Fabric.

Definir modo de atualização

Você pode definir seu cluster para receber atualizações automáticas do Service Fabric à medida que elas são lançadas pela Microsoft ou pode escolher manualmente em uma lista de versões compatíveis no momento, definindo o modo de atualização para o cluster. Isso pode ser feito por meio do controle do modo de atualização do Fabric no portal do Azure ou da configuração upgradeMode no modelo de implantação de cluster.

Portal do Azure

Usando o portal do Azure, você escolherá entre atualizações automáticas ou manuais ao criar um cluster do Service Fabric.

Escolha entre atualizações automáticas ou manuais ao criar um cluster no portal do Azure por meio das opções 'Avançadas'

Você também pode alternar entre atualizações automáticas ou manuais da seção Atualizações da malha de um recurso de cluster existente.

Selecionar atualizações automáticas ou manuais na seção

Atualizações manuais com o portal do Azure

Quando você seleciona a opção de atualização manual, basta selecionar uma opção na lista suspensa de versões disponíveis e selecionar Salvar para iniciar uma atualização. Desse ponto em diante, a atualização do cluster é inicializada imediatamente.

As políticas de integridade do cluster (uma combinação de integridade do nó e da integridade de todos os aplicativos executados no cluster) são atendidas durante a atualização. Se as políticas de integridade do cluster não forem atendidas, a atualização será revertida.

Depois de corrigir os problemas que resultaram na reversão, você precisará iniciar a atualização novamente, seguindo as mesmas etapas de antes.

Modelo do Resource Manager

Para alterar o modo de atualização de cluster usando um modelo do Resource Manager, especifique Automático ou Manual para a propriedade upgradeMode da definição de recurso Microsoft.ServiceFabric/clusters. Se você escolher atualizações manuais, defina também o clusterCodeVersion para uma versão de malha compatível no momento.

A captura de tela mostra um modelo em texto não criptografado recuado de modo a refletir a estrutura. As propriedades 'clusterCodeVersion' e 'upgradeMode' são realçadas.

Após a implantação bem-sucedida do modelo, as alterações no modo de atualização do cluster serão aplicadas. Se o cluster estiver no modo manual, a atualização do cluster será iniciada automaticamente.

As políticas de integridade do cluster (uma combinação de integridade do nó e da integridade de todos os aplicativos executados no cluster) são atendidas durante a atualização. Se as políticas de integridade do cluster não forem atendidas, a atualização será revertida.

Depois de corrigir os problemas que resultaram na reversão, você precisará iniciar a atualização novamente, seguindo as mesmas etapas de antes.

Implantação de onda para atualizações automáticas

Com o modo de atualização automática, você tem a opção de habilitar o cluster para a implantação de onda. Com a implantação de onda, você pode criar um pipeline para atualizar seus clusters de teste, preparo e produção em sequência, separados pelo "tempo de preparação" interno para validar versões futuras do Service Fabric antes da atualização dos clusters de produção.

Habilitar a implantação de onda

Observação

A implantação de onda requer a versão de API 2020-12-01-preview (ou posterior) para o recurso Microsoft.ServiceFabric/clusters.

Para habilitar a implantação de onda para atualização automática, primeiro determine qual onda atribuir ao cluster:

  • Onda 0 (Wave0): os clusters são atualizados assim que um novo build do Service Fabric é liberado. Destinado a clusters de desenvolvimento/teste.
  • Onda 1 (Wave1): os clusters são atualizados uma semana (sete dias) após o lançamento de um novo build. Destinado a clusters de pré-produção/preparo.
  • Onda 2 (Wave2): os clusters são atualizados duas semanas (14 dias) após o lançamento de um novo build. Destinado a clusters de produção.

Em seguida, basta adicionar uma propriedade upgradeWave ao modelo de recurso de cluster com um dos valores de onda listados acima. Verifique se a versão da API do recurso de cluster é 2020-12-01-preview ou posterior.

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

Depois de implantar o modelo atualizado, o cluster será registrado na onda especificada para o período de atualização seguinte e depois disso.

Você pode se registrar para receber notificações por email com links para obter mais ajuda se houver falha na atualização do cluster.

Registrar-se para receber notificações

Você pode se registrar para receber notificações quando uma atualização de cluster falhar. Um email será enviado para seus endereços de email designados com mais detalhes sobre a falha de atualização e links para que você possa obter mais ajuda.

Observação

O registro na implantação de onda não é necessário para receber notificações de falhas de atualização.

Para se registrar em notificações, adicione uma seção notifications ao modelo de recurso de cluster e atribua um ou mais endereços de email (destinatários) para recebimento de notificações:

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

Depois de implantar o modelo atualizado, você será registrado para notificações de falha de atualização.

Políticas personalizadas para atualizações manuais

Você pode especificar políticas de integridade personalizadas para atualizações manuais do cluster. Essas políticas são aplicadas cada vez que você seleciona uma nova versão de runtime, o que dispara o início da atualização do cluster no sistema. Se você não substituir as políticas, os padrões serão usados.

Você pode especificar as políticas de integridade personalizadas ou examinar as configurações atuais na seção Atualizações de malha do recurso de cluster no portal do Azure selecionando a opção Personalizada para a Política de atualização.

Selecione a opção de política de atualização 'Personalizada' na seção 'Atualizações de malha' do recurso de cluster no portal do Azure para definir políticas de integridade personalizadas durante a atualização

Verificar se há versões de cluster compatíveis

Você pode consultar as versões do Service Fabric para obter mais detalhes sobre versões e sistemas operacionais compatíveis.

Você também pode usar a API REST do Azure para listar todas as versões de runtime do Service Fabric (clusterVersions) disponíveis para o local especificado e a sua assinatura.

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

O supportExpiryUtc na saída relata quando uma determinada versão está expirando ou expirou. A versão mais recente não tem uma data válida, ela tem um valor de 9999-12-31T23:59:59.9999999, que significa apenas que a data de vencimento ainda não foi definida.

Verificar o caminho de atualização com suporte

Você pode consultar a documentação de versões do Service Fabric para obter caminhos de atualização com suporte e informações relacionadas às versões.

Usando informações de versão de destino compatíveis, você pode usar as etapas do PowerShell a seguir para validar o caminho de atualização com suporte.

  1. Fazer logon no Azure

    Login-AzAccount
    
  2. Selecionar a assinatura

    Set-AzContext -SubscriptionId <your-subscription>
    
  3. Invocar a API

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

    Exemplo:

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

Próximas etapas