共用方式為


Service Fabric 受控叢集上的 MaintenanceControl 簡介

Service Fabric 受控叢集具有多個背景作業,您需要這些作業,才能讓所有叢集保持更新,從而確保安全性和可靠性。 即使這些作業至關重要,但在背景中執行可能會導致服務複本移至不同的節點。 如果維護作業在營業高峰時段執行,此容錯移轉會導致不想要且不必要的中斷。 透過 Service Fabric 受控叢集中的 MaintenanceControl 支援,客戶將能夠根據需求為 SFMC 叢集資源定義週期性 (每日、每周、每月) 和自訂維護時間範圍。 僅允許在此維護時間範圍內執行所有背景維護作業。 MaintenanceControl 適用於下列背景作業:

  • 自動OS升級
  • 自動升級擴充功能
  • 自動 SF 執行階段版本更新
  • 自動叢集憑證更新

需求

  • 您必須只針對 Service Fabric 受控叢集資源定義維護時間範圍設定
  • 支援的時間範圍下限為 5 小時

MaintenanceControl 如何針對 SFMC 運作

  • 客戶必須使用維護 RP 建立維護設定資源來定義維護設定,其中包含維護時間範圍的排程和週期性規則。 更多詳細資料
  • 使用此維護設定時,會建立指派資源,以將維護組態指派給SFMC叢集資源。
  • 在建立指派資源時,維護 RP 會通知 ServiceFabric RP 有關連結的資訊,然後在 SFMC 叢集上啟用維護控制。 所有背景維護作業會在維護時間範圍外遭到封鎖。
  • 每當維護時間範圍根據維護設定中的排程啟動時,維護 RP 就會通知 ServiceFabric RP,在對應的 SFMC 叢集上啟動維護時間範圍。 所有背景作業都被允許在此時間範圍內執行。

範例部署

以下是使用維護控制來設定叢集的逐步流程。 下載此範例,其中包含所有必要的資源。 標準 SKU Service Fabric 受控叢集範例

  1. 在區域中建立資源群組:

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. 建立叢集資源:

    執行此命令以部署叢集資源:

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. 使用下列維護設定,在叢集上設定維護控制:

此維護設定會定義每天從晚上 10 點 PST 更新,持續 5 小時的排程,從 30-05-2023 開始。 有關維護設定的其他詳細資料

    "resources": [
        {
            "type": "Microsoft.Maintenance/maintenanceConfigurations",
            "apiVersion": "2022-07-01-preview",
            "name": "mc1",
            "location": "[parameters('location')]",
            "properties": {
                "maintenanceScope": "Resource",
                "extensionProperties": {
                   "maintenanceSubScope": "SFMC"
                },
                "maintenanceWindow": {
                    "startDateTime": "2023-05-30 22:00",
                    "duration": "05:00",
                    "timeZone": "Pacific Standard Time",
                    "expirationDateTime": null,
                    "recurEvery": "1Day"
                }
            }
        }

注意

如設定中所述,SFMC 叢集資源的維護設定應該具有 maintenanceScope: 'Resource' and maintenanceSubScope: 'SFMC'。

在建立了維護設定之後,必須使用指派資源將其附加至 SFMC 叢集。 有關指派的其他詳細資料

    "resources": [
        { 
           "type": "Microsoft.Resources/deployments",
            "apiVersion": "2022-09-01",
            "name": "ConfigurationAssignmentsName",
            "dependsOn": [
                "[concat('Microsoft.Maintenance/maintenanceConfigurations/', 'mc1')]",
                "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
            ],
            "properties": {
                "mode": "Incremental",
                "template": {
                    "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
                    "resources": [
                        {
                            "apiVersion": "2022-07-01-preview",
                            "type": "Microsoft.Maintenance/configurationAssignments",
                            "name": "mc1Assignment",
                            "location": "[parameters('location')]",
                            "scope": "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]",
                            "tags": {},
                            "properties": {
                                "maintenanceConfigurationId": "/subscriptions/<subId>/resourcegroups/<rgName>/providers/microsoft.maintenance/maintenanceconfigurations/mc1"
                            }
                        }
                    ]
                }
            },
            "subscriptionId": "<subId>",
            "resourceGroup": "<rgName>"
        }

注意

  • 若要停用叢集上的維護控制,請刪除叢集的指派。
  • 維護資源和 SFMC 叢集資源應該建立在相同的區域中。

注意

已知問題:

  • 最多只能有一個維護設定資源指派給 Service Fabric 受控叢集。 正在進行防止指派多個維護設定的工作。在那之前,使用者應該不會針對相同的叢集進行多個設定指派。
  • 只刪除維護設定資源並不會停用 MaintenanceControl。 若要停用 MaintenanceControl,您必須明確地刪除叢集的 configAssignment,然後再刪除維護設定資源。
  • 使用 SFMC 進行維護控制的 Azure 入口網站體驗工作目前正在進行中,因此客戶不應只依賴入口網站。 已知下列問題:SFMC 叢集等的維護資源顯示為虛擬機器資源,以及無法從入口網站搜尋/指派 SFMC 叢集。