مشاركة عبر


نشر نظام مجموعة Azure Service Fabric بأنواع العقد عديمة الحالة فقط

تأتي أنواع عُقد Service Fabric بافتراض ضمني أنه في وقت ما، قد يتم وضع الخدمات ذات الحالة على العقد. تقوم أنواع العقد عديمة الحالة بتغيير هذا الافتراض لنوع العقدة، ما يسمح لنوع العقدة باستخدام ميزات أخرى مثل عمليات توسيع النطاق الأسرع، ودعم ترقيات نظام التشغيل التلقائية على القدرة على الصمود بالدرجة البرونزية والتوسيع إلى أكثر من 100 عقدة في مجموعة مقياس جهاز ظاهري واحد.

  • لا يمكن تكوين أنواع العقد الأساسية لتكون عديمة الحالة
  • أنواع العقد عديمة الحالة مدعومة فقط مع مستويات القدرة على الصمود البرونزية
  • أنواع العقد عديمة الحالة مدعومة فقط في Service Fabric Runtime الإصدار 7.1.409 أو أعلى.

تتوفر نماذج القوالب: قالب أنواع العقد عديمة الحالة لـService Fabric

تمكين أنواع العقد عديمة الحالة في نظام مجموعة Service Fabric

لتعيين نوع واحد أو أكثر من أنواع العقد على أنها عديمة الحالة في مورد نظام مجموعة، قم بتعيين الخاصية isStateless إلى true. عند نشر نظام مجموعة Service Fabric مع أنواع العقد عديمة الحالة، تذكر أن يكون لديك على الأقل نوع عقدة أساسي واحد في مورد نظام المجموعة.

  • يجب أن تكون نسخة مورد نظام المجموعة Service Fabric "معاينة 2020-12-01" أو أعلى.
{
    "nodeTypes": [
    {
        "name": "[parameters('vmNodeType0Name')]",
        "applicationPorts": {
            "endPort": "[parameters('nt0applicationEndPort')]",
            "startPort": "[parameters('nt0applicationStartPort')]"
        },
        "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]",
        "durabilityLevel": "Silver",
        "ephemeralPorts": {
            "endPort": "[parameters('nt0ephemeralEndPort')]",
            "startPort": "[parameters('nt0ephemeralStartPort')]"
        },
        "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]",
        "isPrimary": true,
        "isStateless": false, // Primary Node Types cannot be stateless
        "vmInstanceCount": "[parameters('nt0InstanceCount')]"
    },
    {
        "name": "[parameters('vmNodeType1Name')]",
        "applicationPorts": {
            "endPort": "[parameters('nt1applicationEndPort')]",
            "startPort": "[parameters('nt1applicationStartPort')]"
        },
        "clientConnectionEndpointPort": "[parameters('nt1fabricTcpGatewayPort')]",
        "durabilityLevel": "Bronze",
        "ephemeralPorts": {
            "endPort": "[parameters('nt1ephemeralEndPort')]",
            "startPort": "[parameters('nt1ephemeralStartPort')]"
        },
        "httpGatewayEndpointPort": "[parameters('nt1fabricHttpGatewayPort')]",
        "isPrimary": false,
        "isStateless": true,
        "vmInstanceCount": "[parameters('nt1InstanceCount')]"
    }    
    ],
}

تكوين مقياس الجهاز الظاهري الذي تم تعيينه لأنواع العقد عديمة الحالة

لتمكين أنواع العقد عديمة الحالة، يجب عليك تكوين مورد مجموعة مقياس الجهاز الظاهري الأساسي بالطريقة التالية:

  • خاصية القيمة singlePlacementGroup، التي يجب تعيينها على false إذا كنت تريد التوسع إلى أكثر من 100 جهاز ظاهري.
  • يجب تعيين UpgradePolicy لمجموعة المقياس على Rolling.
  • يتطلب وضع الترقية بالدور تكوين ملحق صحة التطبيق أو تحقيقات الصحة. لمزيد من التفاصيل عن تكوين تحقيقات الصحة أو ملحق سلامة التطبيق، ارجع إلى هذا المستند. وقم بتكوين فحص الصحة باستخدام التكوين الافتراضي لأنواع العقدة عديمة الحالة كما هو مقترح أدناه. بمجرد نشر التطبيقات على نوع العقدة، يمكن تغيير منافذ الملحق Health Probe /Health لمراقبة صحة التطبيق الفعلية.

إشعار

أثناء استخدام القياس التلقائي مع أنواع العقد عديمة الحالة، بعد عملية تصغير الحجم، لا يتم تنظيف حالة العقدة تلقائياً. لتنظيف NodeState للعقد السفلية أثناء التحجيم التلقائي، يُنصح باستخدام Service Fabric AutoScale Helper.

{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.Compute/virtualMachineScaleSets",
    "name": "[parameters('vmNodeType1Name')]",
    "location": "[parameters('computeLocation')]",
    "properties": {
        "overprovision": "[variables('overProvision')]",
        "upgradePolicy": {
          "mode": "Rolling",
          "automaticOSUpgradePolicy": {
            "enableAutomaticOSUpgrade": true
          }
        },
        "platformFaultDomainCount": 5
    },
    "virtualMachineProfile": {
    "extensionProfile": {
    "extensions": [
    {
    "name": "[concat(parameters('vmNodeType1Name'),'_ServiceFabricNode')]",
    "properties": {
        "type": "ServiceFabricNode",
        "autoUpgradeMinorVersion": false,
        "publisher": "Microsoft.Azure.ServiceFabric",
        "settings": {
            "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
            "nodeTypeRef": "[parameters('vmNodeType1Name')]",
            "dataPath": "D:\\\\SvcFab",
            "durabilityLevel": "Bronze",
            "certificate": {
                "thumbprint": "[parameters('certificateThumbprint')]",
                "x509StoreName": "[parameters('certificateStoreValue')]"
            },
            "systemLogUploadSettings": {
                "Enabled": true
            },
        },
        "typeHandlerVersion": "1.1"
    }
    },
    {
        "type": "extensions",
        "name": "HealthExtension",
        "properties": {
            "publisher": "Microsoft.ManagedServices",
            "type": "ApplicationHealthWindows",
            "autoUpgradeMinorVersion": true,
            "typeHandlerVersion": "1.0",
            "settings": {
            "protocol": "tcp",
            "port": "19000"
            }
            }
        },
    ]
}

تكوين أنواع العقد عديمة الحالة مع مناطق توافر متعددة

لتكوين نوع العقدة عديمة الحالة الممتدة عبر مناطق توافر متعددة، اتبع الوثائق هنا، جنباً إلى جنب مع التغييرات القليلة على النحو التالي:

  • تعيين singlePlacementGroup : false إذا كانت هناك حاجة إلى تمكين مجموعات موضع متعددة.
  • تعيين UpgradePolicy: Rolling وأضف ملحق صحة التطبيق/ تحقيقات الصحة كما هو مذكور أعلاه.
  • تعيين platformFaultDomainCount : 5 لمجموعة مقياس الجهاز الظاهري.

للرجوع إليها، انظر إلى القالب لتكوين أنواع العقد عديمة الحالة مع مناطق توافر متعددة

متطلبات الشبكات

عنوان IP العام ومورد موازنة التحميل

لتمكين توسيع الحجم إلى أكثر من 100 جهاز ظاهري على مورد مجموعة مقياس جهاز ظاهري، يجب أن يستخدم كل من موازنة التحميل ومورد IP المشار إليه بواسطة مجموعة مقياس الجهاز الظاهري هذه وحدة SKU قياسية. سيؤدي إنشاء مورد IP بدون خاصية SKU إلى إنشاء SKU أساسي، والذي لا يدعم التحجيم إلى أكثر من 100 جهاز ظاهري. يمنع موازن تحميل SKU القياسي كل نسبة استخدام الشبكة من الخارج بشكل افتراضي؛ للسماح بنسبة استخدام الشبكة الخارجية، يجب نشر NSG إلى الشبكة الفرعية.

{
    "apiVersion": "2018-11-01",
    "type": "Microsoft.Network/publicIPAddresses",
    "name": "[concat('LB','-', parameters('clusterName')]",
    "location": "[parameters('computeLocation')]",
    "sku": {
        "name": "Standard"
    }
}
{
    "apiVersion": "2018-11-01",
    "type": "Microsoft.Network/loadBalancers",
    "name": "[concat('LB','-', parameters('clusterName')]", 
    "location": "[parameters('computeLocation')]",
    "dependsOn": [
        "[concat('Microsoft.Network/networkSecurityGroups/', concat('nsg', parameters('subnet0Name')))]"
    ],
    "properties": {
        "addressSpace": {
            "addressPrefixes": [
                "[parameters('addressPrefix')]"
            ]
        },
        "subnets": [
        {
            "name": "[parameters('subnet0Name')]",
            "properties": {
                "addressPrefix": "[parameters('subnet0Prefix')]",
                "networkSecurityGroup": {
                "id": "[resourceId('Microsoft.Network/networkSecurityGroups', concat('nsg', parameters('subnet0Name')))]"
              }
            }
          }
        ]
    },
    "sku": {
        "name": "Standard"
    }
}

إشعار

لا يمكن إجراء تغيير موضعي لـSKU على عنوان IP العام وتحميل موارد موازنة.

تعيين مقياس الجهاز الظاهري قواعد NAT

يجب أن تتطابق قواعد NAT الواردة لموازنة التحميل مع تجمعات NAT من مجموعة مقياس الجهاز الظاهري. يجب أن تحتوي كل مجموعة مقياس جهاز ظاهري على تجمع NAT وارد فريد.

{
"inboundNatPools": [
    {
        "name": "LoadBalancerBEAddressNatPool0",
        "properties": {
            "backendPort": "3389",
            "frontendIPConfiguration": {
                "id": "[variables('lbIPConfig0')]"
            },
            "frontendPortRangeEnd": "50999",
            "frontendPortRangeStart": "50000",
            "protocol": "tcp"
        }
    },
    {
        "name": "LoadBalancerBEAddressNatPool1",
        "properties": {
            "backendPort": "3389",
            "frontendIPConfiguration": {
                "id": "[variables('lbIPConfig0')]"
            },
            "frontendPortRangeEnd": "51999",
            "frontendPortRangeStart": "51000",
            "protocol": "tcp"
        }
    },
    {
        "name": "LoadBalancerBEAddressNatPool2",
        "properties": {
            "backendPort": "3389",
            "frontendIPConfiguration": {
                "id": "[variables('lbIPConfig0')]"
            },
            "frontendPortRangeEnd": "52999",
            "frontendPortRangeStart": "52000",
            "protocol": "tcp"
        }
    }
    ]
}

القواعد الصادرة من موازنة التحميل SKU القياسية

يقدم IP العام القياسي قدرات جديدة وسلوكيات مختلفة للاتصال الصادر عند مقارنته باستخدام SKU الأساسي. إذا كنت تريد اتصالاً صادرًا عند العمل مع وحدات SKU القياسية، فيجب عليك تحديدها بشكل صريح إما باستخدام عناوين IP العامة القياسية أو موازن التحميل العام القياسي. لمزيد من المعلومات، راجع Outbound connections وAzure Standard Load Balancer.

إشعار

يشير النموذج القياسي إلى مجموعة موردي NSG التي تسمح لجميع نسبة استخدام الشبكة الصادرة بشكل افتراضي. تقتصر نسبة استخدام الشبكة الواردة على المنافذ المطلوبة لعمليات إدارة Service Fabric. يمكن تعديل قواعد NSG لتلبي متطلباتك.

إشعار

تحتاج أي مجموعة Service Fabric تستخدم SKU SLB القياسي إلى التأكد من أن كل نوع عقدة لديه قاعدة تسمح بنسبة استخدام الشبكة الصادرة على المنفذ 443. وهذا ضروري لإكمال مجموعة أنظمة المجموعات، وسيفشل أي توزيع يتم دون هذه القاعدة.

الانتقال إلى استخدام أنواع العقدة عديمة الحالة في نظام مجموعة

يجب إضافة نوع عقدة جديدة عديمة الحالة فقط لجميع سيناريوهات الترحيل. لا يمكن ترحيل نوع العقدة الموجود ليكون عديم الحالة فقط.

لترحيل نظام مجموعة، الذي كان يستخدم IP مع SKU أساسي، يجب أولا إنشاء مورد IP جديد تماما باستخدام SKU القياسي. لا يمكن تحديث هذه الموارد في نفس المكان.

يجب الإشارة إلى LB وIP الجديدتين في أنواع العقد عديمة الحالة الجديدة التي ترغب في استخدامها. في المثال أعلاه، تمت إضافة موارد مجموعة مقياس جهاز ظاهري جديد لاستخدامه في أنواع العقد عديمة الحالة. تشير مجموعات مقياس الجهاز الظاهري هذه إلى LB وIP التي تم إنشاؤها حديثاً ويتم تمييزها على أنها أنواع عقدة عديمة الحالة في مورد نظام المجموعة Service Fabric.

للبدء، ستحتاج إلى إضافة الموارد الجديدة إلى قالب Azure Resource Manager الموجود لديك. تشمل هذه الموارد ما يلي:

  • مورد IP عام باستخدام SKU القياسي.
  • مورد موازنة التحميل باستخدام SKU القياسي.
  • مجموعة NSG المشار إليها بواسطة الشبكة الفرعية التي تنشر فيها مجموعات مقاييس جهازك الظاهري.

بمجرد الانتهاء من نشر الموارد، يمكنك البدء في تعطيل العقد في نوع العقد التي تريد إزالتها من نظام المجموعة الأصلي.

الخطوات التالية