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
- Mengelola akses RDP
- Mengelola konfigurasi Load Balancer
- Aktifkan IP publik
- Mengaktifkan IPv6
- Membawa jaringan virtual Anda sendiri
- Membawa penyeimbang muatan Anda sendiri
- Aktifkan jaringan terakselerasi
- Mengonfigurasi Subnet Tambahan
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 akses, arah, dan nilai 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).
Navigasi ke grup sumber daya klaster terkelola dalam langganan Anda yang dinamai dengan format berikut: SFC_{cluster-id}
Pilih penyeimbang beban untuk kluster dengan format berikut: LB-{cluster-name}
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:
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.
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:
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 mengharuskan 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 utama dicadangkan untuk layanan sistem Service Fabric. Ikuti langkah-langkah di bagian Bawa load balancer 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 mengaktifkan IP publik pada simpul Anda.
Unduh templat ARM Anda.
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 } }
Deloy templat ARM Anda.
Pastikan 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.
Atur properti berikut pada sumber daya kluster terkelola Service Fabric.
"resources": [ { "apiVersion": "[variables('sfApiVersion')]", "type": "Microsoft.ServiceFabric/managedclusters", ... "properties": { "enableIpv6": true }, } ]
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
diwestus
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:
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
danRole definition ID
untuk digunakan di langkah selanjutnyaTambahkan 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 bagianSubnets
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
, dansubnetName
:"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.
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.
Sebarkan templat Azure Resource Manager (ARM) kluster terkelola yang dikonfigurasi.
Dalam contoh berikut, kami akan membuat grup sumber daya bernama
MyResourceGroup
diwestus
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.
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.
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.
Untuk mengonfigurasi dengan penyeimbang muatan Anda sendiri:
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
danRole definition ID
untuk digunakan di langkah selanjutnyaTambahkan 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.
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 peranATAU
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 } } ]
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
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
.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
diwestus
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.
Mengaktifkan penjaringan terakselerasi
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:
- Menyediakan tipe node dengan Jaringan Terakselerasi diaktifkan
- Migrasikan layanan Anda dan statusnya ke jenis node yang disediakan dengan Jaringan Terakselerasi diaktifkan
Penskalaan infrastruktur diperlukan untuk mengaktifkan Jaringan yang Dipercepat pada kluster yang sudah ada, karena mengaktifkan Jaringan yang Dipercepat di tempat akan menyebabkan waktu henti, karena memerlukan semua mesin virtual dalam kumpulan ketersediaan yang diatur untuk dihentikan dan ditangani sebelum mengaktifkan Jaringan yang dipercepat pada NIC yang sudah 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 Fabricringkasan kluster terkelola Service Fabric