مقدمة إلى MaintenanceControl على أنظمة المجموعات المدارة بواسطة Service Fabric

تحتوي المجموعات المدارة من Service Fabric على عمليات خلفية متعددة ضرورية للحفاظ على تحديث جميع نظام المجموعة، وبالتالي ضمان الأمان والموثوقية. على الرغم من أن هذه العمليات مهمة، ولكن التنفيذ في الخلفية يمكن أن يؤدي إلى نقل النسخة المتماثلة للخدمة إلى عقدة مختلفة. ينتج عن تجاوز الفشل هذا انقطاعات غير المرغوب فيها وغير الضرورية، إذا تم تنفيذ عملية الصيانة خلال ساعات ذروة العمل. مع دعم MaintenanceControl في المجموعات المدارة بواسطة Service Fabric، سيتمكن العملاء من تحديد نافذة صيانة متكررة (يومية وأسبوعية وشهرية) ومخصصة لمورد مجموعة SFMC، وفقا لاحتياجاتهم. سيسمح لجميع عمليات الصيانة في الخلفية بتنفيذها فقط أثناء نافذة الصيانة هذه. ينطبق MaintenanceControl على عمليات الخلفية هذه:

  • الترقية التلقائية لنظام التشغيل
  • ترقية الملحق التلقائي
  • تحديثات إصدار وقت تشغيل 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 لنظام المجموعة أولا، قبل حذف مورد تكوين الصيانة.
  • العمل لتجربة مدخل Azure للتحكم في الصيانة مع SFMC قيد التنفيذ حاليا، لذلك يجب ألا يعتمد العملاء فقط على المدخل. من المعروف أن المشكلات المتعلقة بموارد الصيانة مثل مجموعة SFMC تظهر كمورد جهاز ظاهري وغير قادر على البحث/تعيين مجموعة SFMC من المدخل.