管理 Service Fabric 托管群集升级

Azure Service Fabric 群集是你拥有的但部分由 Azure 管理的资源。 下面介绍如何管理 Azure 更新 Azure Service Fabric 托管群集运行时的时间和方式。

设置升级模式

默认情况下,Azure Service Fabric 托管群集设置为接收自动 Service Fabric 升级,因为它们是由 Azure 使用波形部署策略发布的。 也可以设置手动模式升级,以便从当前支持的版本的列表中进行选择。 你可通过 Microsoft Azure 门户中的结构升级空间或群集部署模板中的 ClusterUpgradeMode 设置来完成。

自动升级的波形部署

使用波形部署,可以创建一个用于按顺序升级测试、阶段和生产群集的管道,并通过内置的“烘焙时间”进行分隔,以便在更新生产群集之前验证即将发布的 Service Fabric 版本。

注意

默认情况下,群集将设置为波形 0。

要为自动升级启用波形部署,首先请确定要为群集分配的波形:

  • 波形 0 (Wave0):发布新的 Service Fabric 版本后,立即更新群集。
  • 波形 1 (Wave1):当波形 0 可用于生产群集后,群集更新。 波形 1 在波形 0 后至少 7 天后出现。
  • 波形 2Wave2 ():最后更新群集以允许进一步生产群集。 波形 2 在波形 0 后至少 14 天后出现。

为群集设置波形

通过 Microsoft Azure 门户中的结构升级控件或群集部署模板中的 ClusterUpgradeMode 设置,您可将群集设置为可用波形之一。

Azure 门户

使用 Microsoft Azure 门户,你可以在新建 Service Fabric 群集时选择自动升级或手动升级。

Choose between different available waves when creating a new cluster in Azure portal from the 'Advanced' options

还可以通过现有群集资源的结构升级部分在可用自动波形间切换。

Select between different Automatic waves in the 'Fabric upgrades' section of your cluster resource in Azure portal

资源管理器模板

若要使用资源管理器模板更改群集升级模式,需要为 Microsoft.ServiceFabric/clusters 资源定义的 ClusterUpgradeMode 属性指定“自动”或“手动”。 如果选择手动升级,还需将 clusterCodeVersion 设置为当前支持的结构版本

手动升级

{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.ServiceFabric/managedClusters",
  "properties": {
    "clusterUpgradeMode": "Manual",
    "clusterCodeVersion": "8.0.514.9590"
  }
}

成功部署模板后,将应用对群集升级模式所做的更改。 如果群集处于手动模式,将自动开始进行群集升级。

在升级期间,将遵守群集运行状况策略(节点运行状况和群集中运行的所有应用程序的运行状况的组合)。 如果不符合现行的群集运行状况策略,则回滚升级。

如果发生回退,则需要修复导致回退的问题,并按照与前面相同的步骤再次启动升级。

使用波形部署进行自动升级

要配置自动升级和波形部署,只需将添加/验证 ClusterUpgradeMode 设置为 Automatic,并且使用上面在资源管理器模板中列出的波形值之一定义 clusterUpgradeCadence 属性。

{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.ServiceFabric/managedClusters",
  "properties": {
    "clusterUpgradeMode": "Automatic",
    "clusterUpgradeCadence": "Wave1"
  }
}

部署已更新的模板后,群集将注册到指定的波形中进行自动升级。

查询支持的群集版本

可以使用 Azure REST API 列出可用于指定位置和订阅的所有可用的 Service Fabric 运行时版本 (clusterVersions)。

还可以参考 Service Fabric 版本,了解有关支持的版本和操作系统的更多详细信息。

GET https://<endpoint>/subscriptions/{{subscriptionId}}/providers/Microsoft.ServiceFabric/locations/{{location}}/managedclusterVersions?api-version=2021-05-01

"value": [
  {
    "id": "subscriptions/########-####-####-####-############/providers/Microsoft.ServiceFabric/locations/chinaeast2/environments/Windows/managedClusterVersions/7.2.477.9590",
    "name": "7.2.477.9590",
    "type": "Microsoft.ServiceFabric/locations/environments/managedClusterVersions",
    "properties": {
      "supportExpiryUtc": "2021-11-30T00:00:00",
      "osType": "Windows",
      "clusterCodeVersion": "7.2.477.9590"
    }
  },
  {
    "id": "subscriptions/########-####-####-####-############/providers/Microsoft.ServiceFabric/locations/chinaeast2/environments/Windows/managedClusterVersions/8.0.514.9590",
    "name": "8.0.514.9590",
    "type": "Microsoft.ServiceFabric/locations/environments/managedClusterVersions",
    "properties": {
      "supportExpiryUtc": "9999-12-31T23:59:59.9999999",
      "osType": "Windows",
      "clusterCodeVersion": "8.0.514.9590"
    }
  }
]

输出中的 supportExpiryUtc 报告给定版本的到期时间。 最新版本没有有效日期,但有一个值 9999-12-31T23:59:59.9999999,这表示尚未设置其到期日期。

后续步骤