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 受控叢集範例
在區域中建立資源群組:
Login-AzAccount Select-AzSubscription -SubscriptionId $subscriptionid New-AzResourceGroup -Name $myresourcegroup -Location $location
建立叢集資源:
執行此命令以部署叢集資源:
$parameters = @{ clusterName = $clusterName adminPassword = $VmAdminPassword clientCertificateThumbprint = $clientCertificateThumbprint } New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
使用下列維護設定,在叢集上設定維護控制:
此維護設定會定義每天從晚上 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 叢集。