كوِّن إعدادات الشبكة للمجموعات المُدارة من Service Fabric

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

إدارة قواعد NSG

دليل قواعد NSG

كُن على دراية بهذه الاعتبارات عند إنشاء قواعد NSG جديدة لمجموعتك المدارة.

  • تحتفظ مجموعات Service Fabric المدارة بنطاق أولوية قاعدة NSG من 0 إلى 999 للوظائف الأساسية. لا يمكنك إنشاء قواعد NSG مخصصة بقيمة أولوية أقل من 1000.
  • تحتفظ مجموعات Service Fabric المدارة بنطاق الأولوية 3001 إلى 4000 لإنشاء قواعد NSG الاختيارية. تتم إضافة هذه القواعد تلقائيًا لجعل التكوينات سريعة وسهلة. يمكنك تجاوز هذه القواعد عن طريق إضافة قواعد NSG المخصصة في نطاق الأولوية 1000 إلى 3000.
  • يجب أن يكون لقواعد NSG المخصصة أولوية في النطاق 1000 إلى 3000.

تَطبيق قواعد NSG

تمكنك مجموعات Service Fabric المدارة من تعيين قواعد NSG مباشرة داخل مورد المجموعة لقالب النشر الخاص بك.

استخدم خاصية networkSecurityRules الخاصة بمورد Microsoft.ServiceFabric/managedclusters (الإصدار 2021-05-01 أو الأحدث) لتعيين قواعد NSG. على سبيل المثال:

{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.ServiceFabric/managedclusters",
  "properties": {
    "networkSecurityRules": [
      {
        "name": "AllowCustomers",
        "protocol": "*",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "Internet",
        "destinationAddressPrefix": "*",
        "destinationPortRange": "33000-33499",
        "access": "Allow",
        "priority": 2001,
        "direction": "Inbound"
      },
      {
        "name": "AllowARM",
        "protocol": "*",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "AzureResourceManager",
        "destinationAddressPrefix": "*",
        "destinationPortRange": "33500-33699",
        "access": "Allow",
        "priority": 2002,
        "direction": "Inbound"
      },
      {
        "name": "DenyCustomers",
        "protocol": "*",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "Internet",
        "destinationAddressPrefix": "*",
        "destinationPortRange": "33700-33799",
        "access": "Deny",
        "priority": 2003,
        "direction": "Outbound"
      },
      {
        "name": "DenyRDP",
        "protocol": "*",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "VirtualNetwork",
        "destinationPortRange": "3389",
        "access": "Deny",
        "priority": 2004,
        "direction": "Inbound",
        "description": "Override for optional SFMC_AllowRdpPort rule. This is required in tests to avoid Sev2 incident for security policy violation."
      }
    ],
    "fabricSettings": [
      "..."
    ]
  }
}

قواعد ClientConnection وHttpGatewayConnection الافتراضية والاختيارية

قاعدة NSG: SFMC_AllowServiceFabricGatewayToSFRP

تمت إضافة قاعدة NSG الافتراضية للسماح لموفر مورد Service Fabric بالوصول إلى clientConnectionPort وhttpGatewayConnectionPort في المجموعة. تسمح هذه القاعدة بالوصول إلى المنافِذ من خلال علامة الخدمة "ServiceFabric".

ملاحظة

تتم إضافة هذه القاعدة دائما ولا يمكن تجاوزها.

{
    "name": "SFMC_AllowServiceFabricGatewayToSFRP",
    "type": "Microsoft.Network/networkSecurityGroups/securityRules",
    "properties": {
        "description": "This is required rule to allow SFRP to connect to the cluster. This rule can't be overridden.",
        "protocol": "TCP",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "ServiceFabric",
        "destinationAddressPrefix": "VirtualNetwork",
        "access": "Allow",
        "priority": 500,
        "direction": "Inbound",
        "sourcePortRanges": [],
        "destinationPortRanges": [
            "19000",
            "19080"
        ]
    }
}

قاعدة NSG: SFMC_AllowServiceFabricGatewayPorts

تتيح هذه القاعدة الاختيارية للعملاء الوصول إلى SFX، والاتصال بالعنقود باستخدام PowerShell، واستخدام نقاط نهاية API لمجموعة نسيج الخدمة من الإنترنت عن طريق فتح منافذ LB لـ clientConnectionPort وhttpGatewayPort.

ملاحظة

لن تتم إضافة هذه القاعدة إذا كانت هناك قاعدة مخصصة بنفس قيم الوصول والاتجاه والبروتوكول لنفس المنفذ. يمكنك تجاوز هذه القاعدة بقواعد مجموعة NSG المخصصة.

{
    "name": "SFMC_AllowServiceFabricGatewayPorts",
    "type": "Microsoft.Network/networkSecurityGroups/securityRules",
    "properties": {
        "description": "Optional rule to open SF cluster gateway ports. To override add a custom NSG rule for gateway ports in priority range 1000-3000.",
        "protocol": "tcp",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "VirtualNetwork",
        "access": "Allow",
        "priority": 3001,
        "direction": "Inbound",
        "sourcePortRanges": [],
        "destinationPortRanges": [
            "19000",
            "19080"
        ]
    }
}

تمكين الوصول إلى منافذ RDP من خلال الإنترنت

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

"allowRDPAccess": true

عندما يتم تعيين الخاصية allowRDPAccess على "صحيحة"، ستتم إضافة قاعدة مجموعة NSG التالية إلى نشر نظام المجموعة الخاص بك.

{
    "name": "SFMC_AllowRdpPort",
    "type": "Microsoft.Network/networkSecurityGroups/securityRules",
    "properties": {
        "description": "Optional rule to open RDP ports.",
        "protocol": "tcp",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "VirtualNetwork",
        "access": "Allow",
        "priority": 3002,
        "direction": "Inbound",
        "sourcePortRanges": [],
        "destinationPortRange": "3389"
    }
}

تُنشئ المجموعات المُدارة من Service Fabric تلقائيًا قواعد NAT واردة لكل مثيل في نوع عقدة. للعثور على تعيينات المنافذ للوصول إلى مثيلات محددة (عقد المجموعة)، اتبع الخطوات التالية:

باستخدام بوابة Azure، حدد موقع المجموعة المُدارة التي تم إنشاؤها قواعد NAT الواردة لبروتوكول سطح المكتب البعيد (RDP).

  1. انتقل إلى مجموعة موارد المجموعة المُدارة ضمن اشتراكك المسماة بالتنسيق التالي: SFC_{cluster-id}

  2. حدد موازنة التحميل للمجموعة بالتنسيق التالي: LB-{cluster-name}

  3. في صفحة موازنة التحميل، حدد قواعد NAT الواردة. راجع قواعد NAT الواردة لتأكيد منفذ الواجهة الأمامية الواردة لاستهداف مخطط المنفذ للعقدة.

    تُظهر لقطة الشاشة التالية قواعد NAT الواردة لثلاثة أنواع مختلفة من العقد:

    قواعد Nat الواردة

    بشكل افتراضي، بالنسبة لمجموعات Windows، يكون منفذ الواجهة الأمامية في النطاق 50000 وأعلى والمنفذ الهدف هو المنفذ 3389، والذي يعيّن خدمة RDP على العقدة الهدف.

    ملاحظة

    إذا كنت تستخدم ميزة BYOLB وتريد RDP، يجب عليك تكوين تجمع NAT بشكل منفصل للقيام بذلك. لن يُنشئ هذا تلقائيًا أي قواعد NAT لأنواع العقد تلك.

  4. الاتصال عن بُعد بالعقدة المحددة (مثيل مجموعة المقياس). يمكنك استخدام اسم المستخدم وكلمة المرور اللذين قمت بتعيينهما عند إنشاء نظام المجموعة أو أي بيانات اعتماد أخرى كونتها.

تُظهر لقطة الشاشة التالية استخدام Remote Desktop Connection للاتصال بعقدة التطبيقات (Instance 0) في مجموعة Windows:

اتصال سطح المكتب البعيد

تعديل تكوين موازنة التحميل الافتراضي

منافذ موازنة التحميل

تُنشئ المجموعات المُدارة من Service Fabric قاعدة NSG في نطاق الأولوية الافتراضي لجميع منافذ موازنة التحميل (LB) التي تم تكوينها ضمن قسم "loadBalancingRules" ضمن خصائص ManagedCluster. تفتح هذه القاعِدة منافذ LB لحركة المرور الواردة من الإنترنت.

ملاحظة

تتم إضافة هذه القاعدة في نطاق الأولوية الاختياري ويمكن تجاوزها عن طريق إضافة قواعد NSG المخصصة.

{
    "name": "SFMC_AllowLoadBalancedPorts",
    "type": "Microsoft.Network/networkSecurityGroups/securityRules",
    "properties": {
        "description": "Optional rule to open LB ports",
        "protocol": "*",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "VirtualNetwork",
        "access": "Allow",
        "priority": 3003,
        "direction": "Inbound",
        "sourcePortRanges": [],
        "destinationPortRanges": [
        "80", "8080", "4343"
        ]
    }
}

تحقيقات موازن التحميل

تُنشئ المجموعات المُدارة من Service Fabric تلقائيًا تحقيقات موازن الحمل لمنافذ عبّارة النسيج وجميع المنافذ التي تم تكوينها ضمن loadBalancingRulesقسم خصائص المجموعة المُدارة.

{
  "value": [
    {
        "name": "FabricTcpGateway",
        "properties": {
            "provisioningState": "Succeeded",
            "protocol": "Tcp",
            "port": 19000,
            "intervalInSeconds": 5,
            "numberOfProbes": 2,
            "loadBalancingRules": [
                {
                    "id": "<>"
                }
            ]
        },
        "type": "Microsoft.Network/loadBalancers/probes"
    },
    {
        "name": "FabricHttpGateway",
        "properties": {
            "provisioningState": "Succeeded",
            "protocol": "Tcp",
            "port": 19080,
            "intervalInSeconds": 5,
            "numberOfProbes": 2,
            "loadBalancingRules": [
                {
                    "id": "<>"
                }
            ]
        },
        "type": "Microsoft.Network/loadBalancers/probes"
    },
    {
        "name": "probe1_tcp_8080",
        "properties": {
            "provisioningState": "Succeeded",
            "protocol": "Tcp",
            "port": 8080,
            "intervalInSeconds": 5,
            "numberOfProbes": 2,
            "loadBalancingRules": [
            {
                "id": "<>"
            }
        ]
      },
      "type": "Microsoft.Network/loadBalancers/probes"
    }
  ]
}

تمكين IP العام

ملاحظة

حاليا، يتم دعم IPv4 العام فقط.

لا تتطلب عقد نظام المجموعة المدارة من Service Fabric عناوين IP العامة الخاصة بها للاتصال. ومع ذلك، قد تتطلب بعض السيناريوهات عقدة أن يكون لها عنوان IP عام خاص بها للاتصال بالإنترنت وخدمات Azure العامة. على سبيل المثال:

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

لمزيدٍ من المعلومات عن الاتصالات الصادرة في Azure، راجع التعرف على الاتصالات الصادرة.

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

يقوم Azure بتعيين عناوين IP المتوفرة ديناميكيا.

ملاحظة

يتم دعم تمكين IP العام فقط عبر قالب ARM.

تصف الخطوات التالية تمكين IP العام على العقدة الخاصة بك.

  1. قم بتنزيل قالب ARM الخاص بك.

  2. لكل نوع عقدة في القالب، أضف enableNodePublicIP إلى قالب ARM:

    {
        "name": "<secondary_node_type_name>", 
        "apiVersion": "2023-02-01-preview", 
        "properties": { 
            "isPrimary" : false, 
            "vmImageResourceId": "/subscriptions/<your_subscription_id>/resourceGroups/<your_resource_group>/providers/Microsoft.Compute/images/<your_custom_image>", 
            "vmSize": "Standard_D2", 
            "vmInstanceCount": 5, 
            "dataDiskSizeGB": 100, 
            "enableNodePublicIP": true 
        }
    } 
    
  3. قم بإزالة قالب ARM الخاص بك.

  4. تحقق من أن لديك عنوان IP عاما على العقد الخاصة بك عن طريق تشغيل أمر PowerShell التالي:

    az vmss list-instance-public-ips -g MC_MyResourceGroup2_MyManagedCluster_eastus -n YourVirtualMachineScaleSetName
    

    إخراج الأمر بتنسيق JSON.

    [
      {
        "etag": "etag_0",
        "id": "<id_0/name>",
        "idleTimeoutInMinutes": 15,
        "ipAddress": "<ip_address_0>",
        "ipConfiguration": {
          "id": "<configuration_id_0>",
          "resourceGroup": "<your_resource_group>"
        },
        "ipTags": [],
        "name": "<name>",
        "provisioningState": "Succeeded",
        "publicIPAddressVersion": "IPv4",
        "publicIPAllocationMethod": "Static",
        "resourceGroup": "<your_resource_group>",
        "resourceGuid": "resource_guid_0",
        "sku": {
          "name": "Standard"
        }
      },
      {
        "etag": "etag_1",
        "id": "/<id_1/name>",
        "idleTimeoutInMinutes": 15,
        "ipAddress": "<ip_address_1>",
        "ipConfiguration": {
          "id": "<configuration_id_1>",
          "resourceGroup": "<your_resource_group>"
        },
        "ipTags": [],
        "name": "<name>",
        "provisioningState": "Succeeded",
        "publicIPAddressVersion": "IPv4",
        "publicIPAllocationMethod": "Static",
        "resourceGroup": "<your_resource_group>",
        "resourceGuid": "resource_guid_1",
        "sku": {
          "name": "Standard"
        }
      },
      {
        "etag": "etag_2",
        "id": "<id_2/name>",
        "idleTimeoutInMinutes": 15,
        "ipAddress": "<ip_address_2>",
        "ipConfiguration": {
          "id": "<configuration_id_2>",
          "resourceGroup": "<your_resource_group>"
        },
        "ipTags": [],
        "name": "<name>",
        "provisioningState": "Succeeded",
        "publicIPAddressVersion": "IPv4",
        "publicIPAllocationMethod": "Static",
        "resourceGroup": "<your_resource_group>",
        "resourceGuid": "resource_guid_2",
        "sku": {
          "name": "Standard"
        }
      }
    ]
    

مكِّن IPv6

لا تمكن المجموعات المدارة IPv6 بشكل افتراضي. ستعمل هذه الميزة على تمكين قدرة مكدس مزدوج كامل IPv4 / IPv6 من واجهة Load Balancer إلى موارد الواجهة الخلفية. ستؤثر أي تغييرات تجريها على تكوين موازنة تحميل المجموعة المُدار أو قواعد NSG على كل من توجيه IPv4 و IPv6.

ملاحظة

هذا الإعداد غير متوفر في المدخل ولا يمكن تغييره بمجرد إنشاء نظام المجموعة.

  • يجب أن يكون إصدار apiVersion لمورد نظام المجموعة المُدار من Service Fabric هو 2022-01-01 أو أحدث.
  1. عيِّن الخاصية التالية على مورد نظام مجموعة مُدار Service Fabric.

        "resources": [
             {
             "apiVersion": "[variables('sfApiVersion')]",
             "type": "Microsoft.ServiceFabric/managedclusters",
             ...
             "properties": {
                 "enableIpv6": true
                 },
             }
        ]
    
  2. انشر نظام المجموعة المُدار الذي تم تمكين IPv6 الخاص بك به. خصص نموذج القالب حسب الحاجة أو قم بإنشاء القالب الخاص بك. في المثال التالي، إنشئ مجموعة موارد تم MyResourceGroupاستدعاؤهاwestus ووزع مجموعة مع تمكين هذه الميزة.

     New-AzResourceGroup -Name MyResourceGroup -Location westus
     New-AzResourceGroupDeployment -Name deployment -ResourceGroupName MyResourceGroup -TemplateFile AzureDeploy.json
    

    بعد النشر، ستكون الشبكة والموارد الافتراضية لمجموعاتك مكدسة مزدوجة. نتيجة لذلك، سيكون لموازن تحميل الواجهة الأمامية للكتل عنوان DNS فريد تم إنشاؤه على سبيل المثال، mycluster-ipv6.southcentralus.cloudapp.azure.com والذي يرتبط بعنوان IPv6 عام على Azure Load Balancer وعناوين IPv6 الخاصة على الأجهزة الظاهرية.

أنشئ شبكتك الافتراضية الخاصة

تتيح هذه الميزة للعملاء استخدام شبكة افتراضية موجودة من خلال تحديد شبكة فرعية مخصصة سيقوم نظام المجموعة المُدار بنشر موارده فيها. يمكن أن يكون هذا مفيدًا إذا كان لديك بالفعل شبكة VNet وشبكة فرعية تم تكوينها مع سياسات الأمان ذات الصلة وتوجيه حركة المرور التي تريد استخدامها. بعد النشر إلى شبكة افتراضية حالية، يكون من السهل استخدام ميزات الشبكات الأخرى أو دمجها، مثل Azure ExpressRoute و Azure VPN Gateway ومجموعة أمان الشبكة ونظراء الشبكة الافتراضية. بالإضافة إلى ذلك، يمكنك إنشاء موازنة تحميل Azure الخاصة بك إذا لزم الأمر أيضا.

ملاحظة

عند استخدام BYOVNET، سيتم توزيع موارد نظام المجموعة المُدارة في شبكة فرعية واحدة.

ملاحظة

لا يمكن تغيير هذا الإعداد بمجرد إنشاء نظام المجموعة وسيقوم نظام المجموعة المدار بتعيين NSG للشبكة الفرعية المتوفرة. لا تتجاوز تعيين NSG أو قد تتعطل نسبة استخدام الشبكة.

لإنشاء شبكتك الافتراضية الخاصة:

  1. احصل على الخدمة Id من خلال اشتراكك في تطبيق Service Fabric Resource Provider.

    Login-AzAccount
    Select-AzSubscription -SubscriptionId <SubId>
    Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
    

    ملاحظة

    تأكد من أنك في الاشتراك الصحيح، سيتغير المعرِّف الرئيسي إذا كان الاشتراك في مستأجر مختلف.

    ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2}
    ApplicationId         : 74cb6831-0dbb-4be1-8206-fd4df301cdc2
    ObjectType            : ServicePrincipal
    DisplayName           : Azure Service Fabric Resource Provider
    Id                    : 00000000-0000-0000-0000-000000000000
    

    لاحظ أن معرِّف الإخراج السابق كمعرِّف أساسي للاستخدام في خطوة لاحقة

    اسم تَعريف الدور معرّف تعريف الدور
    مساهم الشبكة 4d97b98b-1d4f-4787-a291-c67834d212e7

    لاحظ قيم الخاصية Role definition name و Role definition ID لاستخدامها في خطوة لاحقة

  2. أضف تعيين دور لتطبيق Service Fabric Resource Provider. تُعد إضافة تعيين دور إجراءً لمرة واحدة. يُمكنك إضافة الدور عن طريق تشغيل أوامر PowerShell التالية، أو عن طريق تكوين قالب Azure Resource Manager (ARM) كما هو مفصل أدناه.

    نبدأ في الخطوات التالية بشبكة افتراضية موجودة تسمى ExistingRG-vnet، في مجموعة موارد ExistingRG. تسمى الشبكة الفرعية الافتراضية.

    الحصول على المعلومات المطلوبة من VNet الموجودة.

    Login-AzAccount
    Select-AzSubscription -SubscriptionId <SubId>
    Get-AzVirtualNetwork -Name ExistingRG-vnet -ResourceGroupName ExistingRG
    

    لاحظ اسم الشبكة الفرعية التالية، وقيمة Id الخاصية التي يتم إرجاعها من المقطع Subnets في الاستجابة التي ستستخدمها في الخطوات اللاحقة.

    Subnets:[
    {
    ...
    "Id": "/subscriptions/<subscriptionId>/resourceGroups/Existing-RG/providers/Microsoft.Network/virtualNetworks/ExistingRG-vnet/subnets/default"
    }]
    

    شغل الأمر PowerShell التالي باستخدام المعرف الأساسي واسم تعريف الدور من الخطوة 2 ونطاق Id التعيين الذي تم الحصول عليه أعلاه:

    New-AzRoleAssignment -PrincipalId 00000000-0000-0000-0000-000000000000 -RoleDefinitionName "Network Contributor" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>"
    

    أو يمكنك إضافة تعيين الدور باستخدام قالب Azure Resource Manager (ARM) الذي يُكوَّن بقيم مناسبة لـ principalId، roleDefinitionId، vnetName، و subnetName:

       "type": "Microsoft.Authorization/roleAssignments",
       "apiVersion": "2020-04-01-preview",
       "name": "[parameters('VNetRoleAssignmentID')]",
       "scope": "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/', parameters('subnetName'))]",
       "dependsOn": [
         "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]"
       ],
       "properties": {
         "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7')]",
         "principalId": "00000000-0000-0000-0000-000000000000"
       }
    

    ملاحظة

    يتعين أن يكون VNetRoleAssignmentID GUID. إذا وزعت قالب مرة أخرى بما في ذلك تعيين الدور هذا، فتأكد من أن GUID هو نفسه المستخدم في الأصل. نقترح عليك تشغيل هذا المورد المعزول أو إزالة هذا المورد من نشر ما بعد نشر قالب المجموعة لأنه يحتاج فقط إلى الإنشاء مرة واحدة.

    فيما يلي نموذج كامل لقالب Azure Resource Manager (ARM) الذي ينشئ شبكة فرعية VNet ويعين الدور الذي يمكنك استخدامه لهذه الخطوة.

  3. تكوين subnetId الخاصية لتوزيع نظام المجموعة بعد إعداد الدور كما هو موضح أدناه:

  • يجب أن يكون إصدار apiVersion لمورد نظام المجموعة المُدار من Service Fabric هو 2022-01-01 أو أحدث.

      "resources": [
          {
              "apiVersion": "[variables('sfApiVersion')]",
              "type": "Microsoft.ServiceFabric/managedclusters",
              ...
              },
              "properties": {
                  "subnetId": "subnetId",
              ...
              }
      ]
    

    انظر إنشاء نموذج مجموعة VNet الخاص بك أو تخصيص قالب نموذج مجموعة VNet الخاص بك.

  1. توزيع قالب Azure Resource Manager (ARM) الذي تم تكوينه.

    في المثال التالي، إنشئ مجموعة موارد تم MyResourceGroupاستدعاؤهاwestus ووزع مجموعة مع تمكين هذه الميزة.

     New-AzResourceGroup -Name MyResourceGroup -Location westus
     New-AzResourceGroupDeployment -Name deployment -ResourceGroupName MyResourceGroup -TemplateFile AzureDeploy.json
    

    عند إنشاء شبكة VNet الفرعية الخاصة بك، يستمر إنشاء نقطة النهاية العامة وإدارتها بواسطة موفر الموارد، ولكن في الشبكة الفرعية المكونة. لا تسمح لك الميزة بتحديد ip العام/إعادة استخدام ip الثابت على موازن تحميل Azure. يمكنك إنشاء Azure Load Balancer الخاص بك بالتنسيق مع هذه الميزة أو بمفرده إذا كنت بحاجة إلى سيناريوهات موازنة التحميل هذه أو غيرها من سيناريوهات موازنة التحميل غير المدعومة أصلا.

أنشئ موازنة التحميل Azure الخاص بك

تنشئ المجموعات المُدارة موازن تحميل قياسي عام لـ Azure واسم مجال مؤهل بالكامل باستخدام عنوان IP عام ثابت لكل من أنواع العقد الأساسية والثانوية. يتيح لك إحضار موازنة التحميل الخاصة بك استخدام Azure Load Balancer الموجود لأنواع العقد الثانوية لحركة المرور الواردة والصادرة. عند إنشاء Azure Load Balancer الخاص بك، يمكنك:

  • استخدام عنوان IP ثابت لموازن التحميل تم تكوينه مسبقا لنسبة استخدام الشبكة الخاصة أو العامة
  • قم بتعيين Load Balancer إلى نوع عقدة معينة
  • تكوين قواعد مجموعة أمان الشبكة لكل نوع عقدة لأنه يتم توزيع كل نوع عقدة في شبكتها الفرعية
  • حافظ على السياسات والضوابط الحالية التي قد تكون لديك في مكانها الصحيح
  • كوِّن موازن تحميل داخلي فقط واستخدم موازنة التحميل الافتراضي لحركة المرور الخارجية

ملاحظة

عند استخدام BYOVNET، سيتم نشر موارد المجموعة المُدارة في شبكة فرعية واحدة مع NSG واحد بغض النظر عن موازنات التحميل الإضافية المكونة.

ملاحظة

لا يمكنك التبديل من موازنة التحميل الافتراضي إلى موازنة مخصصة بعد توزيع نوع عقدة، ولكن يمكنك تعديل تكوين موازنة التحميل المخصصة بعد النشر إذا تم تمكينه.

مُتطلبات الميزة

  • تُدعَم أنواع SKU Azure Load Balancer الأساسية والقياسية
  • يجب أن يكون لديك الواجهة الخلفية وتجمعات NAT التي تُكوّن في Azure Load Balancer
  • يجب تمكين الاتصال الخارجي إما باستخدام موازنة التحميل العامة المتوفرة أو موازنة التحميل العامة الافتراضية

في ما يلي بعض الأمثلة على السيناريوهات التي قد يستخدمها العملاء من أجل:

في هذا المثال، يريد العميل توجيه نسبة استخدام الشبكة من خلال موازنة تحميل Azure الموجودة والمُكوّنة باستخدام عنوان IP ثابت حالي إلى نوعين من العُقد.

مثال 1 لإنشاء موازنة التحميل

في هذا المثال، يريد العميل توجيه حركة المرور من خلال Azure Load Balancers الموجودة لمساعدتهم على إدارة تدفق حركة المرور إلى تطبيقاتهم بشكل مستقل والتي تعيش على أنواع عقد منفصلة. عند الإعداد مثل هذا المثال، سيكون كل نوع عقدة وراء NSG المُدارة الخاصة به.

مثال 2 لإنشاء موازنة التحميل

في هذا المثال، يريد العميل توجيه حركة المرور من خلال Azure Load Balancers الداخلية الحالية. يساعدهم هذا في إدارة تدفق حركة المرور إلى تطبيقاتهم بشكل مستقل والتي تعيش في أنواع منفصلة من العقد. عند إعداد مثال مثل ذلك، سيكون كل نوع عقدة وراء NSG المُدار الخاص به ويستخدم موازنة التحميل الافتراضي لحركة المرور الخارجية.

مثال 3 لإنشاء موازنة التحميل

للتكوين مع موازنة التحميل:

  1. احصل على الخدمة Id من خلال اشتراكك في تطبيق Service Fabric Resource Provider:

    Login-AzAccount
    Select-AzSubscription -SubscriptionId <SubId>
    Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
    

    ملاحظة

    تأكد من أنك في الاشتراك الصحيح، سيتغير المعرِّف الرئيسي إذا كان الاشتراك في مستأجر مختلف.

    ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2}
    ApplicationId         : 74cb6831-0dbb-4be1-8206-fd4df301cdc2
    ObjectType            : ServicePrincipal
    DisplayName           : Azure Service Fabric Resource Provider
    Id                    : 00000000-0000-0000-0000-000000000000
    

    لاحظ أن معرِّف الإخراج السابق كمعرِّف أساسي للاستخدام في خطوة لاحقة

    اسم تَعريف الدور معرّف تعريف الدور
    مساهم الشبكة 4d97b98b-1d4f-4787-a291-c67834d212e7

    لاحظ قيم الخاصية Role definition name و Role definition ID لاستخدامها في خطوة لاحقة

  2. أضف تعيين دور لتطبيق Service Fabric Resource Provider. تُعد إضافة تعيين دور إجراءً لمرة واحدة. يُمكنك إضافة الدور عن طريق تشغيل أوامر PowerShell التالية، أو عن طريق تكوين قالب Azure Resource Manager (ARM) كما هو مفصل أدناه.

    نبدأ في الخطوات التالية مع موازن تحميل موجود يسمى Existing-LoadBalancer1، في مجموعة موارد Existing-RG.

    احصل على معلومات الخاصية المطلوبة Id من موازنة التحميل Azure الحالية.

    Login-AzAccount
    Select-AzSubscription -SubscriptionId <SubId>
    Get-AzLoadBalancer -Name "Existing-LoadBalancer1" -ResourceGroupName "Existing-RG"
    

    لاحظ ما يلي Id، ستستخدمه في الخطوة التالية:

    {
    ...
    "Id": "/subscriptions/<subscriptionId>/resourceGroups/Existing-RG/providers/Microsoft.Network/loadBalancers/Existing-LoadBalancer1"
    }
    

    شغِّل الأمر PowerShell التالي باستخدام المعرف الأساسي واسم تعريف الدور من الخطوة 2 ونطاق Id التعيين الذي حصلت عليه للتو:

    New-AzRoleAssignment -PrincipalId 00000000-0000-0000-0000-000000000000 -RoleDefinitionName "Network Contributor" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/loadBalancers/<LoadBalancerName>"
    

    أو يمُكنك إضافة تعيين الدور باستخدام قالب Azure Resource Manager (ARM) تم تكوينه بقيم مناسبة لـ principalId، roleDefinitionId":

       "type": "Microsoft.Authorization/roleAssignments",
       "apiVersion": "2020-04-01-preview",
       "name": "[parameters('loadBalancerRoleAssignmentID')]",
       "scope": "[concat('Microsoft.Network/loadBalancers/', variables('lbName'))]",
       "dependsOn": [
         "[concat('Microsoft.Network/loadBalancers/', variables('lbName'))]"
       ],
       "properties": {
         "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7')]",
         "principalId": "00000000-0000-0000-0000-000000000000"
       }
    

    ملاحظة

    يتعيَّن أن يكون VNetRoleAssignmentID GUID. إذا وزعت قالب مرة أخرى بما في ذلك تعيين الدور هذا، فتأكد من أن GUID هو نفسه المستخدم في الأصل. نقترح عليك تشغيل هذا المورد المعزول أو إزالة هذا المورد من نشر ما بعد نشر قالب المجموعة لأنه يحتاج فقط إلى الإنشاء مرة واحدة.

    راجع قالب المثال الماثل لإنشاء موازنة تحميل عامة وتعيين دور.

  3. تكوين الاتصال الخارجي المطلوب لنوع العقدة. يجب عليك تكوين موازنة التحميل العام لتوفير اتصال خارجي أو استخدام موازنة التحميل العام الافتراضي.

    تكوين outboundRules لتكوين موازن تحميل عام لتوفير اتصال صادر انظر قالب إنشاء موازن تحميل وتعيين نموذج دور Azure Resource Manager (ARM)

    أو

    لتكوين نوع العقدة لاستخدام موازنة التحميل الافتراضي، عَيِّن ما يلي في القالب الخاص بك:

    • يجب أن يكون إصدار apiVersion لمورد نظام المجموعة المُدار من Service Fabric هو 2022-01-01 أو أحدث.
     "resources": [
       {
       "apiVersion": "[variables('sfApiVersion')]",
       "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       "properties": {
           "isPrimary": false,
           "useDefaultPublicLoadBalancer": true
           }
       }
     ]
    
  4. يمكنك بشكل اختياري تكوين منفذ تطبيق وارد والمسبار ذي الصلة على Azure Load Balancer الموجود لديك. انظر إحضار نموذج موازنة التحميل الخاصة بك إلى قالب Azure Resource Manager (ARM) للاطلاع على مثال

  5. اختياريًا، كوِّن قواعد مجموعة NSG للمجموعة المُدارة المطبقة على نوع العقدة للسماح بأي حركة مرور مطلوبة قمت بتكوينها على Azure Load Balancer أو سيتم حظر حركة المرور. انظر إحضار نموذج موازنة التحميل الخاصة بك إلى قالب Azure Resource Manager (ARM) للحصول على مثال على تكوين قاعدة NSG الواردة. في القالب، ابحث عن networkSecurityRules الخاصية.

  6. نشر قالب ARM للمموعة المدارة التي تم تكوينها لهذه الخطوة، سنستخدم نموذج موازنة التحميل الخاصة بك Azure Resource Manager (ARM)

    سيُنشئ ما يلي مجموعة موارد تم استدعاؤها MyResourceGroupwestus وتوزيع مجموعة باستخدام موازنة تحميل حالية.

     New-AzResourceGroup -Name MyResourceGroup -Location westus
     New-AzResourceGroupDeployment -Name deployment -ResourceGroupName MyResourceGroup -TemplateFile AzureDeploy.json
    

    بعد النشر، يتم تكوين نوع العقدة الثانوية لاستخدام موازنة التحميل المحددة لحركة المرور الواردة والصادرة. سيظل اتصال عميل Service Fabric ونقاط نهاية البوابة تشير إلى DNS العام لعنوان IP الثابت لنوع العقدة الأساسي للمجموعة المدارة.

تمكين الشبكات السريعة

تمكّن الشبكات المعجلة من التمثيل الافتراضي لجذر واحد (SR-IOV) لمجموعة مقياس آلة ظاهرية VM الذي يعد المورد الأساسي لأنواع العقدة. يتجاوز هذا المسار عالي الأداء المضيف من مسار البيانات، مما يقلل من زمن الوصول، وعدم الاستقرار، واستخدام وحدة المعالجة المركزية لأحمال عمل الشبكة الأكثر تطلبًا. يمكن توفير أنواع عقدة المجموعة المُدارة بواسطة Service Fabric باستخدام "الشبكات السريعة على وحدات SKU VM المدعومة. راجع هذه القيود والقيود لاعتبارات إضافية.

  • لاحظ أن الشبكات السريعة مدعومة في معظم الأغراض العامة وأحجام المثيلات المحسوبة مع وحدتي vCPU أو أكثر. في الحالات التي تدعم الترابط التشعبي، يتم دعم الشبكات السريعة على مثيلات الجهاز الظاهري مع 4 أو أكثر من وحدات المعالجة المركزية الافتراضية.

مّكِّن الشبكات السريعة من خلال إعلان enableAcceleratedNetworkingالخاصية في قالب Resource Manager الخاص بك على النحو التالي:

  • يجب أن يكون إصدار apiVersion لمورد نظام المجموعة المُدار من Service Fabric هو 2022-01-01 أو أحدث.
   {
   "apiVersion": "[variables('sfApiVersion')]",
   "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
   ...
   "properties": {
       ...
       "enableAcceleratedNetworking": true,
       ...
   }

لتمكين الشبكات السريعة على مجموعة Service Fabric حالية، تحتاج أولا إلى توسيع نطاق مجموعة Service Fabric عن طريق إضافة نوع عقدة جديد وتنفيذ ما يلي:

  1. توفير نوع عقدة مع تمكين الشبكات السريعة
  2. قم بترحيل خدماتك وحالتها إلى نوع العقدة المتوفرة مع تمكين الشبكات السريعة

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

تكوين الشبكات الفرعية المساعدة

توفر الشبكات الفرعية المساعدة القدرة على إنشاء شبكات فرعية مدارة إضافية بدون نوع عقدة لدعم سيناريوهات مثل خدمة الارتباط التشعبي الخاصومضيفي Bastion.

كوِّن الشبكات الفرعية الإضافية عن طريق الإعلان عن auxiliarySubnets الخاصية والمعلمات المطلوبة في قالب Resource Manager الخاص بك كما يلي:

  • يجب أن يكون إصدار apiVersion لمورد نظام المجموعة المُدار من Service Fabric هو 2022-01-01 أو أحدث.
    "resources": [
        {
            "apiVersion": "[variables('sfApiVersion')]",
            "type": "Microsoft.ServiceFabric/managedclusters",
              "properties": {
                "auxiliarySubnets": [
                  {
                  "name" : "mysubnet",
                  "enableIpv6" : "true"
                  }
                ]
              }
        }
    ]              

انظر القائمة الكاملة المتوفرة للمَعلَمات

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

خيارات تكوين المجموعة المدارة بواسطة بنيةالخدمة نظرة عامة على المجموعات المدارة بواسطة Service Fabric