Service Fabric クラスターのアップグレードの管理

Azure Service Fabric クラスターはユーザーが所有するリソースですが、一部が Microsoft によって管理されています。 ここでは、Microsoft が Azure Service Fabric クラスターを更新するタイミングとその方法を管理する方法について説明します。

クラスターのアップグレードの概念とプロセスの背景についてさらに知るには、「Azure Service Fabric クラスターのアップグレードと更新」を参照してください。

アップグレード モードの設定

Microsoft からリリースされる Service Fabric の自動アップグレードを受信するようにクラスターを設定することができます。また、クラスターのアップグレード モードを設定して、現在サポートされているバージョンの一覧から手動で選択することもできます。 これを行うには、Azure portal の"ファブリック アップグレード モード" 制御を使用するか、クラスター デプロイ テンプレートの upgradeMode 設定から行うことができます。

Azure portal

Azure portal を使用して、新しい Service Fabric クラスターを作成するときに自動または手動アップグレードのいずれかを選択します。

[詳細設定] オプションから Azure portal に新しいクラスターを作成するときに、自動または手動アップグレードのいずれかを選択する

既存のクラスター リソースの [ファブリックのアップグレード] セクションから、自動または手動アップグレードを切り替えることもできます。

Azure portal のクラスター リソースの [ファブリックのアップグレード] セクションで、[自動] または [手動] アップグレードを選択する

Azure portal を使用した手動アップグレード

手動アップグレード オプションを選択した場合、アップグレードを開始するには、使用可能なバージョンをドロップダウンから選択し、"保存" するだけです。 そこから、クラスターのアップグレードがすぐに開始されます。

クラスター正常性ポリシー (ノードの正常性と、クラスターで実行されている全アプリケーションの正常性の組み合わせ) は、アップグレードの実行中、遵守されます。 クラスター正常性ポリシーが満たされていない場合は、アップグレードがロールバックされます。

ロールバックの原因となった問題を解決した後、前述の手順に従ってもう一度アップグレードを実行してください。

Resource Manager テンプレート

Resource Manager テンプレートを使用してクラスター アップグレード モードを変更するには、Microsoft.ServiceFabric/clusters リソース定義の upgradeMode プロパティに Automatic または Manual を指定します。 手動アップグレードを選択した場合は、も現在clusterCodeVersionサポートされているファブリック のバージョンに設定します。

スクリーンショットには、構造を反映するようにインデントされたプレーン テキストのテンプレートが示されています。'clusterCodeVersion' と 'upgradeMode' のプロパティーが強調表示されています。

テンプレートが正常にデプロイされると、クラスター アップグレード モードの変更が適用されます。 クラスターが手動モードの場合、クラスターのアップグレードは自動的に開始されます。

クラスター正常性ポリシー (ノードの正常性と、クラスターで実行されている全アプリケーションの正常性の組み合わせ) は、アップグレードの実行中、遵守されます。 クラスター正常性ポリシーが満たされていない場合は、アップグレードがロールバックされます。

ロールバックの原因となった問題を解決した後、前述の手順に従ってもう一度アップグレードを実行してください。

自動アップグレードのウェーブ デプロイ

自動アップグレード モードでは、クラスターでウェーブ デプロイを有効にするオプションがあります。 ウェーブ デプロイでは、テスト、ステージ、および運用のクラスターを順番にアップグレードするためのパイプラインを作成でき、それぞれが運用クラスターのアップデート前に次期の Service Fabric のバージョンを検証するための組み込みの 'ベイク時間' で区切られています。

ウェーブ デプロイを有効にする

Note

ウェーブ デプロイを行うには、Microsoft.ServiceFabric/clusters リソースの 2020-12-01-preview (またはそれ以降) の API バージョンが必要です。

自動アップグレードでウェーブ デプロイを有効にするには、まず、クラスターに割り当てるウェーブを決定します。

  • ウェーブ 0 (Wave0): クラスターは、新しい Service Fabric ビルドがリリースされるとすぐに更新されます。 テストまたは開発クラスターが対象です。
  • ウェーブ 1 (Wave1): クラスターは、新しいビルドがリリースされてから 1 週間 (7 日) 後に更新されます。 運用前またはステージング クラスターを対象としています。
  • ウェーブ 2 (Wave2): クラスターは、新しいビルドがリリースされてから 2 週間 (14 日) 後に更新されます。 運用クラスターが対象です。

次に、上記のいずれかのウェーブの値を使用して、クラスター リソース テンプレートに upgradeWave プロパティを追加します。 クラスター リソースの API のバージョンが 2020-12-01-preview またはそれ以降であることを確認してください。

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

更新されたテンプレートをデプロイすると、クラスターは、次のアップグレード期間およびその後にわたって、指定されたウェーブに登録されます。

クラスターのアップグレードが失敗した場合のヘルプへのリンクを含む電子メール通知を登録できます。

通知を登録する

クラスターのアップグレードが失敗したときに通知されるよう、登録することができます。 指定したメール アドレスに、アップグレードの失敗に関する詳細情報とヘルプへのリンクが記載されたメールが送信されます。

Note

アップグレード エラーの通知を受信するのに、ウェーブ デプロイに登録する必要はありません。

通知を受け取るよう登録するには、クラスター リソース テンプレートに notifications セクションを追加し、通知を受信する 1 つ以上のメール アドレス (receivers) を指定します。

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

更新したテンプレートをデプロイすると、アップグレード エラー通知に登録されます。

手動アップグレードのカスタム ポリシー

手動によるクラスター アップグレードのためのカスタム正常性ポリシーを指定できます。 これらのポリシーは、新しいランタイム バージョンを選択するたびに適用されます。これにより、システムによってクラスターのアップグレードが開始されます。 ポリシーをオーバーライドしていない場合、既定の設定が使用されます。

カスタム正常性ポリシーを指定したり、 [アップグレード ポリシー][カスタム] オプションを選択して Azure portal のクラスター リソースの [ファブリックのアップグレード] セクションから現在の設定を確認したりできます。

アップグレード時にカスタム正常性ポリシーを設定するには、Azure portal のクラスター リソースの [ファブリックのアップグレード] セクションで [カスタム] アップグレード ポリシー オプションを選択します

サポートされているクラスター バージョンの確認

サポートされているバージョンとオペレーティング システムの詳細については、Service Fabric バージョンに関するページで確認できます。

Azure REST API を使用して、指定した場所とサブスクリプションで使用可能なすべての Service Fabric ランタイム バージョン (clusterVersions) を一覧表示することもできます。

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

出力の supportExpiryUtc は、特定のリリースの有効期限が近づいているか、期限切れになっていることを報告します。 最新リリースには有効な日付ではなく、9999-12-31T23:59:59.9999999 という値が設定されていますが、これは単に有効期限が設定されていないことを意味するものです。

サポートされているアップグレード パスの確認

サポートされているアップグレード パスと関連するバージョン情報については、Service Fabric バージョンに関するドキュメントを参照できます。

次の PowerShell 手順で、サポートされているターゲットのバージョン情報を使用して、サポートされているアップグレード パスを検証できます。

  1. Azure にログインする

    Login-AzAccount
    
  2. サブスクリプションの選択

    Set-AzContext -SubscriptionId <your-subscription>
    
  3. コマンドレットを呼び出します

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

    例:

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

次のステップ