Руководство по Обновление среды выполнения кластера Service Fabric в Azure

Это руководство является четвертой частью цикла. В нем показано, как обновить среду выполнения Service Fabric в кластере Azure Service Fabric. Эта часть руководства предназначена для кластеров Service Fabric, работающих в Azure, и не относится к изолированным кластерам Service Fabric.

Предупреждение

Для изучения этой части руководства требуется PowerShell. Обновление среды выполнения кластера еще не поддерживается инструментами Azure CLI. Кроме того, кластер можно обновить на портале. Дополнительные сведения см. в статье Обновление кластера Azure Service Fabric.

Если в кластере уже выполняется последняя версия среды выполнения Service Fabric, выполнять этот шаг не требуется. Однако эту статью можно использовать для установки любой поддерживаемой среды выполнения в кластере Azure Service Fabric.

В этом руководстве описано следующее:

  • Чтение версии кластера.
  • Настройка версии кластера.

Из этого цикла руководств вы узнаете, как выполнять следующие задачи:

Примечание

Для взаимодействия с Azure рекомендуется использовать модуль Azure Az PowerShell. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Предварительные требования

Перед началом работы с этим руководством выполните следующие действия:

Вход в Azure

Войдите в учетную запись Azure и выберите подписку, прежде чем выполнять команды Azure.

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

Получение версии среды выполнения

После подключения к Azure и выбора подписки, содержащей кластер Service Fabric, можно узнать версию среды выполнения кластера.

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

Можно также просто получить список всех кластеров в подписке с помощью следующего примера.

Get-AzServiceFabricCluster | Select-Object Name, ClusterCodeVersion

Обратите внимание на значение ClusterCodeVersion. Оно будут использовано в следующем разделе.

Обновление среды выполнения

Используйте значение ClusterCodeVersion из предыдущего раздела в командлете Get-ServiceFabricRuntimeUpgradeVersion, чтобы выяснить, какие целевые версии доступны для обновления. Этот командлет может быть выполнен только на компьютере, подключенном к Интернету. Например, если нужно узнать, до каких версий среды выполнения можно обновить версию 5.7.198.9494, используйте следующую команду.

Get-ServiceFabricRuntimeUpgradeVersion -BaseVersion "5.7.198.9494"

Имея список версий, можно указать кластеру Azure Service Fabric обновить среду выполнения. Например, если версия 6.0.219.9494 доступна для обновления, выполните следующую команду, чтобы обновить кластер.

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

Важно!

Обновление среды выполнения кластера может занять длительное время. PowerShell блокируется, пока выполняется обновление. Можно использовать другой сеанс PowerShell, чтобы проверить состояние обновления.

Состояние обновления можно отслеживать с помощью PowerShell или командной строки Azure Service Fabric (sfctl).

Сначала подключитесь к кластеру с помощью TLS/SSL-сертификата, созданного по инструкциями из первой части этого руководства. Используйте командлет Connect-ServiceFabricCluster или 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

Затем используйте командлет Get-ServiceFabricClusterUpgrade или sfctl cluster upgrade-status для отображения состояния. Ниже приведен примерный вид результата.

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

Дальнейшие действия

В этом руководстве вы узнали, как выполнять следующие задачи:

  • Получение версии среды выполнения кластера.
  • Обновление среды выполнения кластера.
  • Отслеживание обновления.

Перейдите к следующему руководству: