Mengonfigurasi pengaturan jaringan untuk klaster yang dikelola Service Fabric

Kluster yang dikelola Service Fabric dibuat dengan konfigurasi jaringan default. Konfigurasi ini terdiri dari Azure Load Balancer dengan ip publik, VNet dengan satu subnet yang dialokasikan, dan NSG yang dikonfigurasi untuk fungsionalitas kluster penting. Ada juga aturan NSG opsional yang diterapkan, seperti memungkinkan semua lalu lintas keluar secara default yang dimaksudkan untuk membuat konfigurasi pelanggan lebih mudah. Dokumen ini membahas tentang cara memodifikasi opsi konfigurasi jaringan berikut dan lainnya:

Mengelola aturan NSG

Panduan aturan NSG

Perlu diperhatikan pertimbangan ini saat membuat aturan NSG baru untuk kluster terkelola Anda.

  • Kluster yang dikelola Service Fabric mencadangkan rentang prioritas aturan NSG 0 hingga 999 untuk fungsionalitas penting. Anda tidak dapat membuat aturan NSG kustom dengan nilai prioritas kurang dari 1000.
  • Kluster yang dikelola Service Fabric memiliki rentang prioritas 3001 hingga 4000 untuk membuat aturan NSG opsional. Aturan ini ditambahkan secara otomatis untuk membuat konfigurasi menjadi cepat dan mudah. Anda dapat mengganti aturan ini dengan menambahkan aturan NSG kustom dalam rentang prioritas 1000 hingga 3000.
  • Aturan NSG kustom harus memiliki prioritas dalam rentang 1000 hingga 3000.

Menerapkan aturan NSG

Kluster yang dikelola Service Fabric memungkinkan Anda menetapkan aturan NSG langsung dalam sumber daya kluster templat penyebaran Anda.

Gunakan properti NetworkSecurityRules milik sumber daya Microsoft.ServiceFabric/managedclusters Anda (versi 2021-05-01 atau yang lebih baru) untuk menetapkan aturan NSG. Contohnya:

{
  "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 dan default HttpGatewayConnection serta aturan opsional

Aturan NSG: SFMC_AllowServiceFabricGatewayToSFRP

Aturan NSG default ditambahkan untuk memungkinkan penyedia sumber daya Service Fabric mengakses klien klusterConnectionPort dan httpGatewayConnectionPort. Aturan ini memungkinkan akses ke port melalui tag layanan 'ServiceFabric'.

Catatan

Aturan ini selalu ditambahkan dan tidak dapat ditimpa.

{
    "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"
        ]
    }
}

Aturan NSG: SFMC_AllowServiceFabricGatewayPorts

Aturan opsional ini memungkinkan pelanggan untuk mengakses SFX, terhubung ke kluster menggunakan PowerShell, dan menggunakan titik akhir API kluster Service Fabric dari internet dengan membuka port LB untuk clientConnectionPort dan httpGatewayPort.

Catatan

Aturan ini tidak akan ditambahkan jika ada aturan kustom dengan nilai akses, arah, dan protokol yang sama untuk port yang sama. Anda dapat mengganti aturan ini dengan aturan NSG kustom.

{
    "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"
        ]
    }
}

Aktifkan akses ke port RDP dari internet

Kluster yang dikelola Service Fabric tidak mengaktifkan akses masuk ke port RDP dari internet secara default. Anda dapat membuka akses masuk ke port RDP dari internet dengan mengatur properti berikut dalam sumber daya kluster terkelola Service Fabric.

"allowRDPAccess": true

Ketika properti allowRDPAccess diatur ke true, aturan NSG berikut akan ditambahkan ke penyebaran kluster Anda.

{
    "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"
    }
}

Kluster terkelola Service Fabric secara otomatis membuat aturan NAT masuk untuk setiap instans dalam jenis simpul. Untuk menemukan pemetaan port untuk mencapai instans tertentu (node kluster) ikuti langkah-langkah di bawah ini:

Dengan menggunakan portal Microsoft Azure, temukan aturan NAT masuk yang dibuat kluster terkelola untuk Protokol Desktop Jauh (RDP).

  1. Navigasi ke grup sumber daya klaster terkelola dalam langganan Anda yang dinamai dengan format berikut: SFC_{cluster-id}

  2. Pilih penyeimbang beban untuk kluster dengan format berikut: LB-{cluster-name}

  3. Di halaman penyeimbang beban Anda, pilih aturan NAT Masuk. Tinjau aturan NAT masuk untuk mengonfirmasi port Frontend masuk untuk menargetkan pemetaan port untuk sebuah simpul.

    Cuplikan layar berikut menunjukkan aturan NAT masuk untuk tiga jenis simpul yang berbeda:

    Aturan NAT Masuk

    Secara default, untuk kluster Windows, Port Frontend berada di kisaran 50000 dan lebih tinggi dan port target adalah port 3389, yang memetakan ke layanan RDP pada simpul target.

    Catatan

    Jika Anda menggunakan fitur BYOLB dan Anda menginginkan RDP, Anda harus mengonfigurasi kumpulan NAT secara terpisah untuk melakukannya. Ini tidak akan secara otomatis membuat aturan NAT untuk jenis simpul tersebut.

  4. Sambungkan dari jarak jauh ke node tertentu (instans set skala). Anda dapat menggunakan nama pengguna dan kata sandi yang Anda tetapkan saat membuat kluster atau kredensial lain yang telah Anda konfigurasi.

Cuplikan layar berikut menunjukkan penggunaan Koneksi Desktop Jauh untuk menyambungkan ke simpul aplikasi (Instans 0) di kluster Windows:

Sambungan Desktop Jarak Jauh

Modifikasi konfigurasi Load Balancer default

Port load balancer

Kluster terkelola Service Fabric membuat aturan NSG dalam rentang prioritas default untuk semua port penyeimbang beban (LB) yang dikonfigurasi di bawah bagian "loadBalancingRules" di bawah properti ManagedCluster. Aturan ini membuka port LB untuk lalu lintas masuk dari internet.

Catatan

Aturan ini ditambahkan dalam rentang prioritas opsional dan dapat ditimpa dengan menambahkan aturan NSG kustom.

{
    "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"
        ]
    }
}

Pemeriksaan load balancer

Kluster terkelola Service Fabric secara otomatis membuat pemeriksaan penyeimbang muatan untuk port gateway fabric dan semua port yang dikonfigurasi di bawah bagian loadBalancingRules dari properti kluster terkelola.

{
  "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"
    }
  ]
}

Aktifkan IP publik

Catatan

Saat ini, hanya IPv4 publik yang didukung.

Node kluster yang dikelola Service Fabric tidak memerlukan alamat IP publik mereka sendiri untuk komunikasi. Namun, beberapa skenario mungkin memerlukan simpul untuk memiliki alamat IP publiknya sendiri untuk berkomunikasi dengan internet dan layanan Azure yang menghadap publik. Contohnya:

  • Game, di mana konsol perlu membuat koneksi langsung ke komputer virtual cloud yang melakukan pemrosesan fisika game.
  • Komputer virtual yang perlu membuat koneksi eksternal satu sama lain di seluruh wilayah dalam database terdistribusi.

Untuk informasi selengkapnya tentang koneksi keluar di Azure, lihat Memahami koneksi keluar.

IP publik hanya dapat diaktifkan pada jenis node sekunder, karena jenis node primer disediakan untuk layanan sistem Service Fabric. Ikuti langkah-langkah di bagian Bawa penyeimbang beban Anda sendiri di artikel ini untuk membuat jenis node sekunder untuk kluster terkelola Anda.

Azure secara dinamis menetapkan alamat IP yang tersedia.

Catatan

Mengaktifkan IP publik hanya didukung melalui templat ARM.

Langkah-langkah berikut menjelaskan aktifkan IP publik pada simpul Anda.

  1. Unduh templat ARM Anda.

  2. Untuk setiap jenis node dalam templat, tambahkan enableNodePublicIP ke templat 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. Deloy templat ARM Anda.

  4. Verifikasi bahwa Anda memiliki IP publik pada simpul Anda dengan menjalankan perintah PowerShell berikut:

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

    Perintah menghasilkan dalam format 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"
        }
      }
    ]
    

Mengaktifkan IPv6

Kluster terkelola tidak mengaktifkan IPv6 secara default. Fitur ini akan memungkinkan kemampuan IPv4/IPv6 stack ganda penuh dari frontend Load Balancer ke sumber daya backend. Setiap perubahan yang Anda buat pada konfigurasi penyeimbang muatan kluster terkelola atau aturan NSG akan memengaruhi perutean IPv4 dan IPv6.

Catatan

Pengaturan ini tidak tersedia di portal dan tidak dapat diubah setelah kluster dibuat.

  • ApiVersion sumber daya kluster yang dikelola Service Fabric harus 2022-01-01 atau versi yang lebih baru.
  1. Atur properti berikut pada sumber daya kluster terkelola Service Fabric.

        "resources": [
             {
             "apiVersion": "[variables('sfApiVersion')]",
             "type": "Microsoft.ServiceFabric/managedclusters",
             ...
             "properties": {
                 "enableIpv6": true
                 },
             }
        ]
    
  2. Sebarkan kluster terkelola berkemampuan IPv6 Anda. Sesuaikan templat sampel sesuai kebutuhan atau buat sendiri. Dalam contoh berikut, kami akan membuat grup sumber daya bernama MyResourceGroup di westus dan menyebarkan kluster dengan mengaktifkan fitur ini.

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

    Setelah penyebaran, jaringan virtual kluster dan sumber daya Anda akan menjadi stack ganda. Akibatnya, kluster penyeimbang muatan frontend akan memiliki alamat dns unik yang dibuat misalnya, mycluster-ipv6.southcentralus.cloudapp.azure.com yang terkait dengan alamat IPv6 publik pada Azure Load Balancer dan alamat IPv6 privat pada VM.

Membawa jaringan virtual Anda sendiri

Fitur ini memungkinkan pelanggan untuk menggunakan jaringan virtual yang ada dengan menentukan subnet khusus yang akan digunakan oleh kluster terkelola untuk menyebarkan sumber dayanya. Hal ini dapat berguna jika Anda sudah memiliki VNet dan subnet yang dikonfigurasi dengan kebijakan keamanan terkait dan perutean lalu lintas yang ingin Anda gunakan. Setelah Anda menyebarkan ke jaringan virtual yang ada, mudah untuk menggunakan atau menggabungkan fitur jaringan lain, seperti Azure ExpressRoute, Azure VPN Gateway, grup keamanan jaringan, dan rekanan jaringan virtual. Selain itu, Anda juga dapat membawa Azure Load Balancer Anda sendiri jika diperlukan.

Catatan

Saat menggunakan BYOVNET, sumber daya kluster terkelola akan disebarkan dalam satu subnet.

Catatan

Pengaturan ini tidak dapat diubah setelah kluster dibuat dan kluster terkelola akan menetapkan NSG ke subnet yang disediakan. Jangan mengesampingkan penugasan NSG atau lalu lintas dapat rusak.

Untuk membawa jaringan virtual Anda sendiri:

  1. Dapatkan layanan Id dari langganan Anda untuk aplikasi Penyedia Sumber Service Fabric.

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

    Catatan

    Pastikan Anda berada di langganan yang benar, ID utama akan berubah jika langganan berada di penyewa yang berbeda.

    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
    

    Catat Id output sebelumnya sebagai principalId untuk digunakan di langkah selanjutnya

    Nama definisi peran ID definisi peran
    Kontributor Jaringan 4d97b98b-1d4f-4787-a291-c67834d212e7

    Catat nilai properti Role definition name dan Role definition ID untuk digunakan di langkah selanjutnya

  2. Tambahkan penetapan peran ke aplikasi Penyedia Sumber Service Fabric. Menambahkan penetapan peran adalah tindakan satu kali. Anda menambahkan peran dengan menjalankan perintah PowerShell berikut atau dengan mengonfigurasi templat Azure Resource Manager (ARM) sebagaimana dijelaskan di bawah ini.

    Dalam langkah berikut ini, kita mulai dengan jaringan virtual yang sudah ada bernama ExistingRG-vnet, di grup sumber daya ExistingRG. Subnet dinamai secara default.

    Dapatkan informasi yang diperlukan dari VNet yang ada.

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

    Catat nama subnet berikut dan nilai properti Id yang dikembalikan dari bagian Subnets dalam respons yang akan Anda gunakan di langkah-langkah selanjutnya.

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

    Jalankan perintah PowerShell berikut menggunakan ID utama, nama definisi peran dari langkah 2, dan lingkup tugas Id yang diperoleh di atas:

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

    Atau Anda dapat menambahkan tugas peran dengan menggunakan templat Azure Resource Manager (ARM) yang dikonfigurasi dengan nilai yang tepat untuk principalId, roleDefinitionId, vnetName, dan 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"
       }
    

    Catatan

    VNetRoleAssignmentID harus berupa GUID. Jika Anda menyebarkan templat lagi termasuk penetapan peran ini, pastikan GUID sama dengan yang digunakan semula. Kami sarankan Anda menjalankan ini secara terpisah atau hapus sumber daya ini dari templat kluster setelah penyebaran karena hanya perlu dibuat sekali.

    Berikut adalah sampel lengkap templat Azure Resource Manager (ARM) yang membuat subnet VNet dan melakukan penetapan peran yang dapat Anda gunakan untuk langkah ini.

  3. Konfigurasikan properti subnetId untuk penyebaran kluster setelah peran diatur seperti yang ditunjukkan di bawah ini:

  • ApiVersion sumber daya kluster yang dikelola Service Fabric harus 2022-01-01 atau versi yang lebih baru.

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

    Lihat bawa templat sampel kluster VNet Anda sendiri atau sesuaikan sendiri.

  1. Sebarkan templat Azure Resource Manager (ARM) kluster terkelola yang dikonfigurasi.

    Dalam contoh berikut, kami akan membuat grup sumber daya bernama MyResourceGroup di westus dan menyebarkan kluster dengan mengaktifkan fitur ini.

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

    Ketika Anda membawa subnet VNet Anda sendiri, titik akhir publik masih dibuat dan dikelola oleh penyedia sumber daya, tetapi di subnet yang dikonfigurasi. Fitur ini tidak memungkinkan Anda menentukan ip publik/menggunakan kembali ip statis pada Azure Load Balancer. Anda dapat membawa Azure Load Balancer Anda sendiri bersama dengan atau tanpa fitur ini jika Anda memerlukan memerlukannya atau skenario penyeimbang muatan lainnya yang tidak didukung secara asli.

Menggunakan Azure Load Balancer Anda sendiri

Kluster terkelola membuat Load Balancer Standar publik Azure dan nama domain yang sepenuhnya memenuhi syarat dengan IP publik statis untuk jenis node primer dan sekunder. Bawa penyeimbang beban Anda sendiri memungkinkan Anda menggunakan Azure Load Balancer yang ada untuk jenis node sekunder untuk lalu lintas masuk dan keluar. Ketika Anda membawa Azure Load Balancer Anda sendiri, Anda dapat:

  • Menggunakan alamat IP statis Load Balancer yang telah dikonfigurasi sebelumnya untuk lalu lintas privat atau publik
  • Memetakan Load Balancer untuk jenis simpul tertentu
  • Konfigurasikan aturan grup keamanan jaringan per tipe node karena setiap tipe node digunakan di subnet-nya sendiri
  • Mempertahankan kebijakan dan kontrol yang ada yang mungkin Anda miliki
  • Konfigurasikan penyeimbang beban internal saja dan gunakan penyeimbang beban default untuk lalu lintas eksternal

Catatan

Saat menggunakan BYOVNET, sumber daya kluster terkelola akan disebarkan dalam satu subnet dengan satu NSG terlepas dari penyeimbang beban terkonfigurasi tambahannya.

Catatan

Anda tidak dapat beralih dari penyeimbang beban default ke yang khusus setelah penyebaran tipe node, tetapi Anda dapat memodifikasi konfigurasi penyeimbang beban kustom pascapenyebaran jika diaktifkan.

Persyaratan Fitur

  • Mendukung jenis Azure Load Balancer SKU Dasar dan Standar
  • Anda harus memiliki backend dan kumpulan NAT yang dikonfigurasi di Azure Load Balancer
  • Anda harus mengaktifkan konektivitas keluar baik menggunakan penyeimbang beban publik yang disediakan atau penyeimbang beban publik default

Berikut adalah beberapa contoh skenario yang dapat digunakan pelanggan untuk:

Dalam contoh ini, pelanggan ingin merutekan lalu lintas melalui Azure Load Balancer yang ada yang dikonfigurasi dengan alamat IP statik yang ada ke dua jenis node.

Membawa Load Balancer Anda sendiri contoh 1

Dalam contoh ini, pelanggan ingin merutekan lalu lintas melalui Azure Load Balancers yang ada untuk membantu mengelola arus lalu lintas ke aplikasi mereka secara independen yang berlangsung pada jenis simpul yang terpisah. Saat diatur seperti contoh ini, setiap jenis node akan berada di belakang NSG terkelolanya sendiri.

Membawa Load Balancer Anda sendiri contoh 2

Dalam contoh ini, pelanggan ingin merutekan lalu lintas melalui Azure Load Balancers internal yang ada. Ini membantu mereka mengelola arus lalu lintas ke aplikasi mereka secara independen yang hidup pada jenis node terpisah. Ketika diatur seperti contoh ini, setiap jenis node akan berada di belakang NSG yang dikelola sendiri dan menggunakan penyeimbang beban default untuk lalu lintas eksternal.

Bawa Load Balancer Anda sendiri contoh 3

Untuk mengonfigurasi dengan penyeimbang muatan Anda sendiri:

  1. Dapatkan layanan Id dari langganan Anda untuk aplikasi Penyedia Sumber Service Fabric:

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

    Catatan

    Pastikan Anda berada di langganan yang benar, ID utama akan berubah jika langganan berada di penyewa yang berbeda.

    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
    

    Catat Id output sebelumnya sebagai principalId untuk digunakan di langkah selanjutnya

    Nama definisi peran ID definisi peran
    Kontributor Jaringan 4d97b98b-1d4f-4787-a291-c67834d212e7

    Catat nilai properti Role definition name dan Role definition ID untuk digunakan di langkah selanjutnya

  2. Tambahkan penetapan peran ke aplikasi Penyedia Sumber Service Fabric. Menambahkan penetapan peran adalah tindakan satu kali. Anda menambahkan peran dengan menjalankan perintah PowerShell berikut atau dengan mengonfigurasi templat Azure Resource Manager (ARM) sebagaimana dijelaskan di bawah ini.

    Pada langkah-langkah berikut, kita mulai dengan penyeimbang muatan yang ada bernama Existing-LoadBalancer1, dalam grup sumber daya Existing-RG.

    Dapatkan informasi properti Id yang diperlukan dari Azure Load Balancer yang ada.

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

    Catat Id berikut yang akan Anda gunakan di langkah selanjutnya:

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

    Jalankan perintah PowerShell berikut menggunakan ID utama, nama definisi peran dari langkah 2, dan Id lingkup tugas yang baru saja Anda peroleh:

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

    Atau Anda dapat menambahkan tugas peran dengan menggunakan templat Azure Resource Manager (ARM) yang dikonfigurasi dengan nilai yang tepat untuk 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"
       }
    

    Catatan

    loadBalancerRoleAssignmentID harus berupa GUID. Jika Anda menyebarkan templat lagi termasuk penetapan peran ini, pastikan GUID sama dengan yang digunakan semula. Kami sarankan Anda menjalankan ini secara terpisah atau hapus sumber daya ini dari templat kluster setelah penyebaran karena hanya perlu dibuat sekali.

    Lihat template contoh ini untuk membuat penyeimbang beban publik dan menetapkan peran.

  3. Konfigurasikan konektivitas keluar yang diperlukan untuk tipe node tersebut. Anda harus mengonfigurasi penyeimbang beban publik untuk menyediakan konektivitas keluar atau gunakan penyeimbang beban publik default.

    Mengonfigurasi outboundRules untuk mengonfigurasi penyeimbang beban publik untuk menyediakan konektivitas keluar. Lihat template Azure Resource Manager (ARM) sampel buat penyeimbang beban dan tetapkan peran

    ATAU

    Untuk mengonfigurasi tipe node untuk menggunakan penyeimbang beban default atur hal berikut dalam template Anda:

    • ApiVersion sumber daya kluster yang dikelola Service Fabric harus 2022-01-01 atau versi yang lebih baru.
     "resources": [
       {
       "apiVersion": "[variables('sfApiVersion')]",
       "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       "properties": {
           "isPrimary": false,
           "useDefaultPublicLoadBalancer": true
           }
       }
     ]
    
  4. Konfigurasikan port aplikasi masuk secara opsional dan pemeriksaan terkait pada Azure Load Balancer yang ada. Lihat template Azure Resource Manager (ARM) sampel bawa penyeimbang beban Anda sendiri sebagai contoh

  5. Konfigurasikan aturan NSG kluster terkelola secara opsional yang diterapkan pada jenis simpul untuk memungkinkan lalu lintas yang diperlukan yang telah Anda konfigurasikan pada Azure Load Balancer atau lalu lintas akan diblokir. Lihat template Azure Resource Manager (ARM) sampel bawa penyeimbang beban Anda sendiri misalnya konfigurasi aturan NSG masuk. Dalam template, cari properti networkSecurityRules.

  6. Terapkan Template ARM kluster terkelola yang dikonfigurasi Untuk langkah ini, kami akan menggunakan template Azure Resource Manager (ARM) sampel bawa penyeimbang beban Anda sendiri

    Berikut ini akan membuat grup sumber daya yang disebut MyResourceGroup di westus dan menerapkan kluster menggunakan penyeimbang beban yang ada.

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

    Setelah penyebaran, tipe node sekunder dikonfigurasi untuk menggunakan penyeimbang beban yang ditentukan untuk lalu lintas masuk dan keluar. Koneksi klien Service Fabric dan titik akhir gateway masih akan mengarah ke DNS publik dari alamat IP statik jenis simpul utama kluster terkelola.

Aktifkan Jaringan Dipercepat

Jaringan yang dipercepat memungkinkan virtualisasi I/O akar tunggal (SR-IOV) ke VM set skala mesin virtual yang merupakan sumber daya yang mendasari untuk jenis node. Jalur performa tinggi ini melewati host dari jalur data, yang mengurangi latensi, jitter, dan pemanfaatan CPU untuk beban kerja jaringan yang paling menuntut. Jenis node kluster terkelola Service Fabric dapat disediakan dengan Jaringan Terakselerasi pada SKU VM yang didukung. Referensikan batasan dan batasan ini untuk pertimbangan tambahan.

  • Perhatikan bahwa Jaringan Terakselerasi didukung pada sebagian besar tujuan umum dan ukuran instans yang dioptimalkan untuk komputasi dengan 2 vCPU atau lebih. Pada instans yang didukung dengan hyperthreading, Jaringan Dipercepat didukung dalam intans komputer virtual dengan 4 vCPU atau lebih.

Aktifkan jaringan yang dipercepat dengan mendeklarasikan properti enableAcceleratedNetworking di template Resource Manager Anda sebagai berikut:

  • ApiVersion sumber daya kluster yang dikelola Service Fabric harus 2022-01-01 atau versi yang lebih baru.
   {
   "apiVersion": "[variables('sfApiVersion')]",
   "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
   ...
   "properties": {
       ...
       "enableAcceleratedNetworking": true,
       ...
   }

Untuk mengaktifkan Jaringan Terakselerasi pada kluster Service Fabric yang ada, Anda harus terlebih dahulu menskalakan kluster Service Fabric dengan menambahkan jenis node baru dan melakukan hal berikut:

  1. Menyediakan tipe node dengan Jaringan Terakselerasi diaktifkan
  2. Migrasikan layanan Anda dan statusnya ke jenis node yang disediakan dengan Jaringan Terakselerasi diaktifkan

Memperluas skala infrastruktur diperlukan untuk mengaktifkan Accelerated Networking pada kluster yang ada, karena mengaktifkan Accelerated Networking di tempat akan menyebabkan terjadinya waktu henti, karena mengharuskan semua komputer virtual dalam ketersediaan diatur untuk dihentikan dan didealokasikan sebelum mengaktifkan Accelerated Networking pada NIC yang ada.

Mengonfigurasi Subnet Tambahan

Subnet tambahan memberikan kemampuan untuk membuat subnet terkelola tambahan tanpa jenis simpul untuk skenario pendukung seperti Private Link Service dan Bastion Hosts.

Konfigurasikan subnet tambahan dengan mendeklarasikan properti auxiliarySubnets dan parameter yang diperlukan di template Resource Manager Anda sebagai berikut:

  • ApiVersion sumber daya kluster yang dikelola Service Fabric harus 2022-01-01 atau versi yang lebih baru.
    "resources": [
        {
            "apiVersion": "[variables('sfApiVersion')]",
            "type": "Microsoft.ServiceFabric/managedclusters",
              "properties": {
                "auxiliarySubnets": [
                  {
                  "name" : "mysubnet",
                  "enableIpv6" : "true"
                  }
                ]
              }
        }
    ]              

Lihat daftar lengkap parameter yang tersedia

Langkah berikutnya

Opsi konfigurasi kluster terkelola Service Fabricgambaran umum kluster terkelola Service Fabric