إعدادات التكوين لنظام مجموعة Windows مستقلة

توضح هذه المقالة إعدادات التكوين لنظام مجموعة Azure Service Fabric المستقلة التي يمكن تعيينها في الملف ClusterConfig.json. ستستخدم هذا الملف لتحديد معلومات حول عقد المجموعة وتكوينات الأمان بالإضافة إلى تخطيط الشبكة فيما يخص مجالات الخطأ والترقية. بعد تغيير إعدادات التكوين أو إضافتها، يمكنك إما إنشاء نظام مجموعة مستقلة أو ترقية تكوين نظام مجموعة مستقلة.

عند تنزيل حزمة Service Fabric المستقلة، يتم أيضا تضمين عينات ClusterConfig.json. تقوم العينات التي تحتوي على "DevCluster" في أسمائها بإنشاء نظام مجموعة تحتوي على جميع العقد الثلاث على نفس الجهاز، باستخدام العقد المنطقية. يجب وضع علامة واحدة على الأقل كعقدة أساسية لواحدة من هذه العقد. هذا النوع من نظام المجموعة مفيد لبيئات التطوير أو الاختبار. غير مدعوم كنظام مجموعة إنتاج. تساعد العينات التي تحتوي على "MultiMachine" في أسمائها على إنشاء نظام مجموعات درجة الإنتاج، مع وجود كل عقدة على جهاز منفصل. يعتمد عدد العقد الأساسية لنظام هذه المجموعات على مستوى موثوقية نظام المجموعة. في الإصدار 5.7، الإصدار 05-2017 من واجهة برمجة التطبيقات، قمنا بإزالة الخاصية على مستوى الموثوقية. بدلا من ذلك، تقوم التعليمات البرمجية الخاصة بنا بحساب أفضل مستوى موثوقية لمجموعتك. لا تحاول تعيين قيمة لهذه الخاصية في الإصدارات 5.7 فصاعدا.

  • يوضح ClusterConfig.Unsecure.DevCluster.json و ClusterConfig.Unsecure.MultiMachine.json كيفية إنشاء مجموعة اختبار أو إنتاج غير آمنة، على التوالي.

  • ClusterConfig. Windows. DevCluster.json وClusterConfig. Windows. يوضحان MultiMachine.json كيفية إنشاء نظام مجموعات اختبار أو إنتاج مؤمنة باستخدام أمان Windows.

  • يوضح كل من ClusterConfig.X509.DevCluster.json و ClusterConfig.X509.MultiMachine.json كيفية إنشاء نظام مجموعات اختبار أو إنتاج مؤمنة باستخدام أمان مستند إلى شهادة X509.

الآن دعونا نفحص الأقسام المختلفة من ملف ClusterConfig.json.

تكوينات نظام مجموعة عامة

تشمل تكوينات نظام المجموعة العامة التكوينات الخاصة واسعة النطاق، كما هو موضح في قصاصة JSON البرمجية التالية:

    "name": "SampleCluster",
    "clusterConfigurationVersion": "1.0.0",
    "apiVersion": "01-2017",

يمكنك إعطاء أي اسم مألوف لنظام مجموعة Service Fabric الخاصة بك عن طريق تعيينها إلى متغير الاسم. clusterConfigurationVersion هو رقم إصدار نظام المجموعة الخاصة بك. قم بزيادته في كل مرة ترقي فيها مجموعة Service Fabric الخاصة بك. اترك تعين apiVersion إلى القيمة الافتراضية.

العقد على مجموعة أجهزة كمبيوتر

يمكنك تكوين العقد في نظام مجموعة Service Fabric باستخدام قسم العقد، كما هو موضح في القصاصة البرمجية التالية:

"nodes": [{
    "nodeName": "vm0",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType0",
    "faultDomain": "fd:/dc1/r0",
    "upgradeDomain": "UD0"
}, {
    "nodeName": "vm1",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType1",
    "faultDomain": "fd:/dc1/r1",
    "upgradeDomain": "UD1"
}, {
    "nodeName": "vm2",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType2",
    "faultDomain": "fd:/dc1/r2",
    "upgradeDomain": "UD2"
}],

يجب أن تحتوي مجموعة Service Fabric على ثلاث عقد على الأقل. يمكنك إضافة المزيد من العقد إلى هذا القسم وفقا للإعداد الخاص بك. يوضح الجدول التالي إعدادات التكوين لكل عقدة:

تكوين العقدة الوصف
nodeName يمكنك اختيار أي اسم مألوف للعقدة.
ipAddress تعرف على عنوان IP الخاص بالعقدة الخاصة بك عن طريق فتح نافذة أوامر وكتابة ipconfig. ابحث عن عنوان IPV4 وقم بتعيينه إلى متغير iPAddress.
nodeTypeRef يمكن تعيين نوع عقدة مختلف لكل عقدة. يضم القسم التالي أنواع العقد.
faultDomain تمكن مجالات الخطأ مسؤولي نظام المجموعة من تحديد العقد الفعلية التي قد تفشل في نفس الوقت بسبب التبعيات الفعلية المشتركة.
upgradeDomain تصف مجالات الترقية مجموعات العقد التي يتم إيقاف تشغيلها لترقيات Service Fabric في نفس الوقت تقريبا. يمكنك اختيار العقد التي تريد تعيينها إلى مجالات الترقية، لأنها غير مقيدة بأي متطلبات فعلية.

خصائص مقطع التخزين

يتم استخدام قسم الخصائص في ClusterConfig.json لتكوين نظام المجموعة كما هو موضح:

الموثوقيه

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

التشخيص

في القسم diagnosticsStore، يمكنك تكوين المعلمات لتمكين التشخيص واستكشاف الأخطاء وإصلاحها في العقدة أو فشل نظام المجموعة، كما هو موضح في القصاصة البرمجية التالية:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "FileShare",
    "IsEncrypted": "false",
    "connectionstring": "c:\\ProgramData\\SF\\DiagnosticsStore"
}

بيانات التعريف هي وصف لتشخيصات نظام المجموعة ويمكن تعيينها وفقا للإعداد الخاص بك. تساعد هذه المتغيرات في جمع سجلات تتبع ETW وتفريغ الأعطال بالإضافة إلى عدادات الأداء. لمزيد من المعلومات حول سجلات تتبع ETW، راجع Tracelogوتتبع ETW. يمكن توجيه كافة السجلات، بما في ذلك مستودع معلومات الأعطال و وعدادات الأداء، إلى مجلد connectionString على جهازك. يمكنك أيضا استخدام AzureStorage لتخزين التشخيصات. راجع القصاصة البرمجية التالية:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "AzureStorage",
    "IsEncrypted": "false",
    "connectionstring": "xstore:DefaultEndpointsProtocol=https;AccountName=[AzureAccountName];AccountKey=[AzureAccountKey]"
}

الأمان

يعد قسم الأمان ضروريا لنظام مجموعة Service Fabric المستقلة. تعرض القصاصة البرمجية التالية جزءًا من هذا القسم:

"security": {
    "metadata": "This cluster is secured using X509 certificates.",
    "ClusterCredentialType": "X509",
    "ServerCredentialType": "X509",
    . . .
}

بيانات التعريف هي وصف لتشخيصات نظام المجموعة ويمكن تعيينها وفقا للإعداد الخاص بك. يحدد ClusterCredentialType و ServerCredentialType نوع الأمان الذي تنفذه نظام المجموعة والعقد. يمكن تعيينها إما إلى X509 لأمان يستند إلى شهادة أو Windows للأمان المستند إلى Active Directory. أما باقي قسم الأمان فيعتمد على نوع الأمان. للحصول على معلومات حول كيفية تعبئة بقية قسم الأمان، راجع الأمان المستند إلى الشهادات في نظام مجموعة مستقلة أو أمان Windows في نظام مجموعة مستقلة.

أنواع العقد

يصف المقطع nodeTypes نوع العقد الموجودة في نظام مجموعتك. يجب تحديد نوع عقدة واحد على الأقل لنظام مجموعة، كما هو موضح في القصاصة البرمجية التالية:

"nodeTypes": [{
    "name": "NodeType0",
    "clientConnectionEndpointPort": "19000",
    "clusterConnectionEndpointPort": "19001",
    "leaseDriverEndpointPort": "19002",
    "serviceConnectionEndpointPort": "19003",
    "httpGatewayEndpointPort": "19080",
    "reverseProxyEndpointPort": "19081",
    "applicationPorts": {
        "startPort": "20575",
        "endPort": "20605"
    },
    "ephemeralPorts": {
        "startPort": "20606",
        "endPort": "20861"
    },
    "isPrimary": true
}]

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

نقاط النهاية المستخدمة لتكوين أنواع العقد

  • clientConnectionEndpointPort هو المنفذ الذي يستخدمه العميل للاتصال بنظام المجموعة عند استخدام واجهات برمجة تطبيقات العميل.
  • clusterConnectionEndpointPort هو المنفذ الذي تتواصل فيه العقد مع بعضها البعض.
  • leaseDriverEndpointPort هو المنفذ الذي يستخدمه برنامج تشغيل الجهاز لنظام المجموعة لمعرفة ما إذا كانت العقد لا تزال نشطة.
  • serviceConnectionEndpointPort هو المنفذ الذي تستخدمه التطبيقات والخدمات الموزعة على عقدة للاتصال بعميل Service Fabric على تلك العقدة المحددة.
  • httpGatewayEndpointPort هو المنفذ الذي يستخدمه مستكشف Service Fabric للاتصال بمجموعة النظام.
  • تتجاوز ephemeralPorts المنافذ الديناميكية التي يستخدمها نظام التشغيل. يستخدم Service Fabric جزءا من هذه المنافذ كمنافذ تطبيق، والباقي متوفر لنظام التشغيل. كما يقوم بتعيين هذا النطاق إلى النطاق الموجود في نظام التشغيل، لذلك يمكنك استخدام النطاقات الواردة في عينة ملفات JSON لجميع الأغراض. تأكد من أن الفرق بين منفذي البداية والنهاية هو 255 على الأقل. قد تواجه تعارضات إذا كان هذا الاختلاف منخفضا جدا، لأن هذا النطاق يتشارك مع نظام التشغيل. لرؤية نطاق المنفذ الديناميكي الذي تم تكوينه، قم بتشغيل netsh int ipv4 show dynamicport tcp.
  • applicationPorts هي المنافذ التي تستخدمها تطبيقات Service Fabric. يجب أن يكون نطاق منفذ التطبيق واسعًا بما يكفي لتغطية متطلبات نقطة النهاية لتطبيقاتك. يجب أن يكون هذا النطاق حصريا من نطاق المنفذ الديناميكي على الجهاز، أي نطاق ephemeralPorts كما هو محدد في التكوين. يستخدم Service Fabric هذه المنافذ كلما كانت هناك حاجة إلى منافذ جديدة ويجب مراعاة فتح جدار الحماية لهذه المنافذ.
  • reverseProxyEndpointPort هي نقطة نهاية وكيل عكسية اختيارية. لمزيد من المعلومات، راجع وكيل عكسي لـ Service Fabric.

إعدادات السجل

في القسم fabricSettings، يمكنك تعيين الدلائل الجذر لبيانات وسجلات Service Fabric. يمكنك تخصيص هذه الدلائل فقط أثناء إنشاء نظام المجموعة الأولي. راجع عينة القصاصة البرمجية التالية من هذا القسم:

"fabricSettings": [{
    "name": "Setup",
    "parameters": [{
        "name": "FabricDataRoot",
        "value": "C:\\ProgramData\\SF"
    }, {
        "name": "FabricLogRoot",
        "value": "C:\\ProgramData\\SF\\Log"
}]

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

إعدادات الخدمات الموثوقة ذات الحالة

في قسم KtlLogger، يمكنك تعيين إعدادات التكوين العمومي للخدمات الموثوقة. لمزيد من المعلومات حول هذه الإعدادات، راجع تكوين خدمات موثوقة ذات حالة. يوضح المثال التالي كيفية تغيير سجل المعاملات المشترك الذي يتم إنشاؤه لدعم أي مجموعات موثوقة للخدمات ذات الحالة:

"fabricSettings": [{
    "name": "KtlLogger",
    "parameters": [{
        "name": "SharedLogSizeInMB",
        "value": "4096"
    }]
}]

الميزات الإضافية

لتكوين ميزات إضافية، قم بتكوين apiVersion ك 04-2017 أو أعلى، وقم بتكوين addonFeatures كما هو موضح هنا:

"apiVersion": "04-2017",
"properties": {
    "addOnFeatures": [
        "DnsService",
        "RepairManager"
    ]
}

يمكن رؤية جميع الميزات الإضافية المتوفرة في مرجع واجهة برمجة تطبيقات Service Fabric REST.

دعم الحاويات

لتمكين دعم الحاويات لكل من حاويات خادم Windows وحاويات Hyper-V لنظام المجموعات المستقلة، يجب تمكين ميزة الوظيفة الإضافية DnsService.

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

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

إذا كان لديك نظام مجموعة مستقل تم توزيعه، فيمكنك أيضا ترقية تكوين نظام مجموعة مستقل.

تعلم كيفية تصور نظام مجموعتك مرئيًا مع Service Fabric Explorer.