Menerapkan kluster Azure Service Fabric di seluruh Zona Ketersediaan
Zona Ketersediaan di Azure adalah penawaran ketersediaan tinggi yang melindungi aplikasi dan data Anda dari kegagalan pusat data. Zona Ketersediaan adalah lokasi fisik unik yang dilengkapi dengan daya, pendinginan, dan jaringan independen dalam wilayah Azure.
Untuk mendukung kluster yang mencakup seluruh Zona Ketersediaan, Azure Service Fabric menyediakan dua metode konfigurasi seperti yang dijelaskan dalam artikel di bawah ini. Zona Ketersediaan hanya tersedia di wilayah tertentu. Untuk informasi selengkapnya, lihat Ringkasan Zona Ketersediaan.
Contoh templat tersedia di Templat Zona Lintas Ketersediaan Service Fabric.
Topologi untuk merentangkan jenis node primer di seluruh Zona Ketersediaan
Catatan
Manfaat merentangkan jenis node utama di seluruh zona ketersediaan benar-benar hanya terlihat untuk tiga zona dan bukan hanya dua.
- Tingkat keandalan kluster diatur ke
Platinum
- Sumber daya IP Publik tunggal yang menggunakan SKU Standar
- Sumber daya load balancer tunggal yang menggunakan SKU Standar
- Kelompok keamanan jaringan (NSG) dirujuk oleh subnet tempat Anda menerapkan set skala komputer virtual Anda
Catatan
Skala komputer virtual yang mengatur properti grup penempatan tunggal harus diatur ke true
.
Contoh daftar node berikut menggambarkan format FD/UD dalam zona rentang set skala komputer virtual:
Distribusi replika layanan di seluruh zona
Ketika layanan diterapkan pada jenis node yang mencakup Zona Ketersediaan, replika ditempatkan untuk memastikan bahwa mereka berada di zona terpisah. Domain kesalahan pada node di masing-masing jenis node ini dikonfigurasi dengan informasi zona (yaitu, FD = fd:/zone1/1, dll.). Misalnya, untuk lima replika atau instans layanan, distribusinya adalah 2-2-1, dan runtime akan mencoba memastikan distribusi yang sama di seluruh zona.
Konfigurasi replika layanan pengguna
Layanan pengguna stateful yang diterapkan pada jenis node di seluruh Zona Ketersediaan harus dikonfigurasi seperti ini: jumlah replika dengan target = 9, min = 5. Konfigurasi ini membantu layanan bekerja bahkan ketika satu zona tidak berfungsi karena enam replika akan berfungsi di dua zona lainnya. Pemutakhiran aplikasi dalam skenario ini juga akan berhasil.
Level Keandalan Kluster
Nilai ini mendefinisikan jumlah node benih dalam kluster dan ukuran replika layanan sistem. Pengaturan Zona lintas Ketersediaan memiliki jumlah node yang lebih tinggi, yang tersebar di seluruh zona untuk memungkinkan ketahanan zona.
Nilai ReliabilityLevel
yang lebih tinggi memastikan bahwa lebih banyak node benih dan replika layanan sistem hadir dan didistribusikan secara merata di seluruh zona, sehingga jika zona gagal, kluster dan layanan sistem tidak terpengaruh. ReliabilityLevel = Platinum
(disarankan) memastikan bahwa ada sembilan node benih yang tersebar di seluruh zona dalam kluster, dengan tiga biji di setiap zona.
Skenario zona tidak berfungsi
Ketika zona tidak berfungsi, semua node dan replika layanan untuk zona itu ditampilkan tidak berfungsi. Karena ada replika di zona lain, layanan terus merespons. Replika utama gagal ke zona yang berfungsi. Layanan tampaknya berada di status peringatan karena jumlah replika target belum tercapai dan jumlah komputer virtual (VM) masih lebih tinggi dari ukuran replika target minimum.
Load balancer Service Fabric memunculkan replika di zona kerja agar sesuai dengan jumlah replika target. Pada titik ini layanan akan tampak sehat. Ketika zona yang tadinya tidak berfungsi kembali aktif, load balancer akan menyebarkan semua replika layanan secara merata di seluruh zona.
Pengoptimalan Yang Akan Datang
- Untuk memberikan pembaruan infrastruktur yang andal, Service Fabric membutuhkan durabilitas set skala komputer virtual untuk diatur setidaknya ke Silver. Pengaturan ini memungkinkan set skala komputer virtual yang mendasari dan runtime Service Fabric untuk memberikan pembaruan yang andal. Pembaruan juga mengharuskan setiap zona memiliki minimal 5 VM. Kami berupaya menurunkan persyaratan ini ke 3 dan 2 VM per zona untuk masing-masing jenis node primer dan non-primer.
- Semua konfigurasi yang disebutkan di bawah ini dan pekerjaan yang akan datang, memberikan migrasi lokal kepada pelanggan saat kluster yang sama dapat ditingkatkan untuk menggunakan konfigurasi baru dengan menambahkan jenis node baru dan menonaktifkan yang lama.
Persyaratan jaringan
IP Publik dan sumber daya load balancer
Untuk mengaktifkan properti zones
pada sumber daya set skala komputer virtual, load balancer dan sumber daya IP yang direferensikan oleh set skala komputer virtual keduanya harus menggunakan SKU Standar. Membuat load balancer atau sumber daya IP tanpa properti SKU akan membuat SKU dasar yang tidak mendukung Zona Ketersediaan. Load balancer SKU Standar memblokir semua lalu lintas dari luar secara default. Untuk mengizinkan lalu lintas luar, terapkan NSG ke subnet.
{
"apiVersion": "2018-11-01",
"type": "Microsoft.Network/publicIPAddresses",
"name": "[concat('LB','-', parameters('clusterName')]",
"location": "[parameters('computeLocation')]",
"sku": {
"name": "Standard"
}
}
{
"apiVersion": "2018-11-01",
"type": "Microsoft.Network/loadBalancers",
"name": "[concat('LB','-', parameters('clusterName')]",
"location": "[parameters('computeLocation')]",
"dependsOn": [
"[concat('Microsoft.Network/networkSecurityGroups/', concat('nsg', parameters('subnet0Name')))]"
],
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('addressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('subnet0Name')]",
"properties": {
"addressPrefix": "[parameters('subnet0Prefix')]",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', concat('nsg', parameters('subnet0Name')))]"
}
}
}
]
},
"sku": {
"name": "Standard"
}
}
Catatan
Perubahan SKU lokal tidak dapat dilakukan di IP Publik dan sumber daya load balancer. Jika Anda melakukan migrasi dari sumber daya yang sudah ada yang memiliki SKU Dasar, lihat bagian migrasi dari artikel ini.
Aturan NAT untuk set skala komputer virtual
Aturan terjemahan alamat jaringan inbound (NAT) untuk load balancer harus cocok dengan kumpulan NAT dari set skala komputer virtual. Setiap set skala komputer virtual harus memiliki setidaknya satu kumpulan NAT masuk yang unik.
{
"inboundNatPools": [
{
"name": "LoadBalancerBEAddressNatPool0",
"properties": {
"backendPort": "3389",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPortRangeEnd": "50999",
"frontendPortRangeStart": "50000",
"protocol": "tcp"
}
},
{
"name": "LoadBalancerBEAddressNatPool1",
"properties": {
"backendPort": "3389",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPortRangeEnd": "51999",
"frontendPortRangeStart": "51000",
"protocol": "tcp"
}
},
{
"name": "LoadBalancerBEAddressNatPool2",
"properties": {
"backendPort": "3389",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPortRangeEnd": "52999",
"frontendPortRangeStart": "52000",
"protocol": "tcp"
}
}
]
}
Aturan outbound untuk load balancer SKU Standar
Load balancer SKU dan IP publik Standar memperkenalkan kemampuan baru dan perilaku yang berbeda untuk konektivitas outbound jika dibandingkan dengan penggunaan SKU Dasar. Jika Anda menginginkan konektivitas outbound saat bekerja dengan SKU Standar, Anda harus menentukannya secara eksplisit dengan alamat IP Publik SKU Standar atau load balancer publik SKU Standar. Untuk informasi selengkapnya, lihat Koneksi outbound dan Apa Itu Azure Load Balancer?.
Catatan
Templat standar merujuk NSG yang mengizinkan semua lalu lintas outbound secara default. Lalu lintas masuk terbatas pada port yang diperlukan untuk operasi pengelolaan Service Fabric. Aturan NSG dapat diubah agar sesuai dengan kebutuhan Anda.
Penting
Setiap jenis node dalam kluster Service Fabric yang menggunakan load balancer SKU Standar memerlukan aturan yang memungkinkan lalu lintas outbound pada port 443. Aturan ini diperlukan untuk menyelesaikan penyiapan kluster. Penerapan apa pun tanpa aturan ini akan gagal.
1. Mengaktifkan beberapa Zona Ketersediaan dalam set skala mesin virtual tunggal
Solusi ini memungkinkan pengguna untuk menjangkau tiga Zona Ketersediaan dalam jenis node yang sama. Solusi ini adalah topologi penerapan yang direkomendasikan karena memungkinkan Anda untuk menerapkan di seluruh zona ketersediaan sambil mempertahankan satu set skala komputer virtual.
Templat sampel lengkap tersedia di GitHub.
Mengonfigurasi zona pada set skala komputer virtual
Untuk mengaktifkan zona pada set skala komputer virtual, sertakan tiga nilai berikut dalam sumber daya set skala komputer virtual:
Nilai pertama adalah properti
zones
, yang menentukan Zona Ketersediaan yang ada di set skala komputer virtual.Nilai kedua adalah properti
singlePlacementGroup
, yang harus diatur ketrue
. Set skala yang membentang di tiga Zona Ketersediaan dapat menskalakan hingga 300 VM bahkan dengansinglePlacementGroup = true
.Nilai ketiga adalah
zoneBalance
, yang memastikan keseimbangan zona yang ketat. Nilai ini harustrue
. Nilai ini memastikan bahwa distribusi VM di seluruh zona seimbang, artinya ketika satu zona turun, dua zona lainnya memiliki cukup VM untuk menjaga kluster tetap berjalan.Kluster dengan distribusi VM yang tidak seimbang mungkin tidak dapat bertahan pada skenario zona tidak berfungsi karena zona tersebut mungkin memiliki mayoritas VM. Distribusi VM yang tidak seimbang di seluruh zona juga akan menyebabkan masalah penempatan layanan dan pembaruan infrastruktur yang macet. Baca selengkapnya tentang zoneBalancing.
Anda tidak perlu mengonfigurasi penggantian FaultDomain
dan UpgradeDomain
.
{
"apiVersion": "2018-10-01",
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[parameters('vmNodeType1Name')]",
"location": "[parameters('computeLocation')]",
"zones": [ "1", "2", "3" ],
"properties": {
"singlePlacementGroup": true,
"zoneBalance": true
}
}
Catatan
- Kluster Service Fabric harus memiliki setidaknya satu jenis node primer. Tingkat durabilitas jenis node primer harus Silver atau lebih tinggi.
- Zona Ketersediaan yang mencakup set skala komputer virtual harus dikonfigurasi dengan setidaknya tiga Zona Ketersediaan, terlepas dari tingkat durabilitas.
- Zona Ketersediaan yang mencakup set skala komputer virtual dengan ketahanan Silver atau lebih tinggi harus memiliki setidaknya 15 VM (5 per wilayah).
- Zona Ketersediaan yang mencakup set skala komputer virtual yang diatur dengan durabilitas Perunggu, harus memiliki setidaknya 6 VM.
Mengaktifkan dukungan untuk beberapa zona di jenis node Service Fabric
Jenis node Service Fabric harus diaktifkan untuk mendukung beberapa Zona Ketersediaan.
Nilai pertama adalah
multipleAvailabilityZones
, yang harus diatur ketrue
untuk jenis node tersebut.Nilai kedua adalah
sfZonalUpgradeMode
dan bersifat opsional. Properti ini tidak dapat dimodifikasi jika jenis node dengan beberapa Zona Ketersediaan sudah ada di kluster. Properti ini mengontrol pengelompokan VM logis dalam domain peningkatan (UD).- Jika nilai ini diatur ke
Parallel
: VM di bawah jenis node tersebut dikelompokkan ke dalam UD dan mengabaikan info zona dalam lima UD. Pengaturan ini menyebabkan UD di semua zona ditingkatkan pada saat yang sama. Mode penerapan ini lebih cepat untuk peningkatan, kami tidak merekomendasikannya karena melanggar pedoman SDP, yang menyatakan bahwa pembaruan harus diterapkan ke satu zona pada satu waktu. - Jika nilai dihilangkan atau diatur ke
Hierarchical
: VM akan dikelompokkan untuk mencerminkan distribusi zona dalam 15 UD. Masing-masing dari tiga zona memiliki lima UD. Nilai ini memastikan zona diperbarui satu per satu, pindah ke zona berikutnya hanya setelah menyelesaikan lima UD dalam zona pertama. Proses pembaruan ini lebih aman untuk kluster dan aplikasi pengguna.
Properti ini hanya menentukan perilaku peningkatan untuk aplikasi Service Fabric dan peningkatan kode. Peningkatan set skala komputer virtual yang mendasarinya masih paralel di semua Zona Ketersediaan. Properti ini tidak mempengaruhi distribusi UD untuk jenis node yang tidak memiliki beberapa zona yang diaktifkan.
- Jika nilai ini diatur ke
Nilai ketiga adalah
vmssZonalUpgradeMode
, yang bersifat opsional dan dapat diperbarui kapan saja. Properti ini mendefinisikan skema peningkatan untuk skala mesin virtual yang akan terjadi secara paralel atau berurutan di seluruh Availability Zone.- Jika nilai ini diatur ke
Parallel
: Semua pembaruan set skala terjadi secara paralel di semua zona. Mode penerapan ini lebih cepat untuk peningkatan, kami tidak merekomendasikannya karena melanggar pedoman SDP, yang menyatakan bahwa pembaruan harus diterapkan ke satu zona pada satu waktu. - Jika nilai ini dihilangkan atau disetel ke
Hierarchical
: Nilai ini memastikan zona diperbarui satu per satu, pindah ke zona berikutnya hanya setelah menyelesaikan lima UD dalam zona pertama. Proses pembaruan ini lebih aman untuk kluster dan aplikasi pengguna.
- Jika nilai ini diatur ke
Penting
Versi API sumber daya kluster Service Fabric harus 2020-12-01-pratinjau atau yang lebih baru.
Versi kode kluster harus 8.1.321 atau lebih tinggi.
{
"apiVersion": "2020-12-01-preview",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"location": "[parameters('clusterLocation')]",
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]"
],
"properties": {
"reliabilityLevel": "Platinum",
"sfZonalUpgradeMode": "Hierarchical",
"vmssZonalUpgradeMode": "Parallel",
"nodeTypes": [
{
"name": "[parameters('vmNodeType0Name')]",
"multipleAvailabilityZones": true
}
]
}
}
Catatan
- IP Publik dan sumber daya load balancer harus menggunakan SKU Standar seperti yang dijelaskan sebelumnya dalam artikel.
- Properti
multipleAvailabilityZones
pada jenis node hanya dapat ditentukan ketika jenis node dibuat dan tidak dapat dimodifikasi nanti. Jenis node yang ada tidak dapat dikonfigurasi dengan properti ini. - Ketika
sfZonalUpgradeMode
dihilangkan atau diatur keHierarchical
, penerapan kluster dan aplikasi lebih lambat karena ada lebih banyak domain peningkatan dalam kluster. Penting untuk menyesuaikan batas waktu kebijakan peningkatan dengan benar untuk memperhitungkan durasi waktu peningkatan yang diperlukan untuk 15 domain peningkatan. Kebijakan peningkatan untuk aplikasi dan kluster harus diperbarui untuk memastikan penerapan tidak melebihi batas waktu penerapan Azure Resource Service selama 12 jam. Artinya, bahwa penerapan tidak boleh memakan waktu lebih dari 12 jam untuk 15 UD (artinya, tidak boleh memakan waktu lebih dari 40 menit untuk setiap UD). - Atur tingkat reliabilitas kluster ke
Platinum
untuk memastikan kluster bertahan dalam skenario satu zona tidak berfungsi. - Meningkatkan DurabilityLevel untuk nodetype dengan multipleAvailabilityZones, tidak didukung. Buat nodetype baru dengan durabilitas yang lebih tinggi sebagai gantinya.
- SF hanya mendukung 3 AvailabilityZones. Angka yang lebih tinggi saat ini tidak didukung.
Tip
Sebaiknya atur sfZonalUpgradeMode
ke Hierarchical
atau dihilangkan. Penerapan akan mengikuti distribusi zona VM yang berdampak pada jumlah replika dan/atau instans yang lebih kecil sehingga lebih aman.
Gunakan sfZonalUpgradeMode
lalu atur ke Parallel
jika kecepatan penerapan diprioritaskan atau hanya beban kerja stateless yang dijalankan pada jenis node dengan beberapa Zona Ketersediaan. Hal ini menyebabkan UD berjalan terjadi secara paralel di semua Zona Ketersediaan.
Bermigrasi ke jenis node dengan beberapa Zona Ketersediaan
Untuk semua skenario migrasi, Anda perlu menambahkan jenis node baru yang mendukung beberapa Zona Ketersediaan. Jenis node yang ada tidak dapat dimigrasikan untuk mendukung beberapa zona. Artikel Menskalakan jenis node primer kluster Service Fabric mencakup langkah-langkah terperinci untuk menambahkan jenis node baru dan sumber daya lain yang diperlukan untuk jenis node baru, seperti IP dan sumber daya load balancer. Artikel tersebut juga menjelaskan cara menghentikan jenis node yang ada setelah jenis node dengan beberapa Zona Ketersediaan ditambahkan ke kluster.
Migrasi dari jenis node yang menggunakan load balancer dasar dan sumber daya IP: Proses ini sudah dijelaskan dalam sub-bagian di bawah ini untuk solusi dengan satu jenis node per Zona Ketersediaan.
Untuk jenis node baru, satu-satunya perbedaan adalah hanya ada satu set skala komputer virtual dan satu jenis node untuk semua Zona Ketersediaan, bukan masing-masing satu per Zona Ketersediaan.
Migrasi dari jenis node yang menggunakan load balancer SKU Standar dan sumber daya IP dengan NSG: Ikuti prosedur yang sama yang dijelaskan sebelumnya. Namun, Anda tidak perlu menambahkan load balancer, IP, dan sumber daya NSG baru. Sumber daya yang sama dapat digunakan kembali dalam jenis node baru.
2. Terapkan zona dengan menyematkan satu skala komputer virtual yang diatur ke setiap zona
Penerapan ini adalah konfigurasi yang tersedia secara umum saat ini. Untuk menjangkau kluster Service Fabric di seluruh Zona Ketersediaan, Anda harus membuat jenis node primer di setiap Zona Ketersediaan yang didukung oleh wilayah tersebut. Hal ini akan mendistribusikan node turunan secara merata di setiap jenis node primer.
Topologi yang disarankan untuk jenis node primer memerlukan sumber daya yang diuraikan di bawah ini:
- Tiga jenis node ditandai sebagai primer
- Setiap jenis node harus dipetakan ke set skala komputer virtualnya sendiri yang terletak di zona yang berbeda.
- Setiap set skala komputer virtual harus memiliki setidaknya lima node (Durabilitas Perak).
Diagram berikut menunjukkan arsitektur Zona Ketersediaan Service Fabric Azure:
Mengaktifkan zona pada set skala komputer virtual
Untuk mengaktifkan zona, pada set skala komputer virtual, Anda harus menyertakan tiga nilai berikut dalam sumber daya set skala komputer virtual:
- Nilai pertama adalah properti
zones
, yang menentukan Zona Ketersediaan mana yang menjadi tujuan penerapan set skala komputer virtual. - Nilai kedua adalah properti
singlePlacementGroup
, yang harus diatur ketrue
. - Nilai ketiga adalah properti
faultDomainOverride
dalam ekstensi set skala komputer virtual Service Fabric. Nilai untuk properti ini seharusnya hanya mencakup zona tempat set skala komputer virtual ini akan ditempatkan. Contoh:"faultDomainOverride": "az1"
. Semua sumber daya set skala komputer virtual harus ditempatkan di wilayah yang sama karena kluster Service Fabric Azure tidak memiliki dukungan lintas wilayah.
{
"apiVersion": "2018-10-01",
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[parameters('vmNodeType1Name')]",
"location": "[parameters('computeLocation')]",
"zones": [
"1"
],
"properties": {
"singlePlacementGroup": true
},
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat(parameters('vmNodeType1Name'),'_ServiceFabricNode')]",
"properties": {
"type": "ServiceFabricNode",
"autoUpgradeMinorVersion": false,
"publisher": "Microsoft.Azure.ServiceFabric",
"settings": {
"clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
"nodeTypeRef": "[parameters('vmNodeType1Name')]",
"dataPath": "D:\\\\SvcFab",
"durabilityLevel": "Silver",
"certificate": {
"thumbprint": "[parameters('certificateThumbprint')]",
"x509StoreName": "[parameters('certificateStoreValue')]"
},
"systemLogUploadSettings": {
"Enabled": true
},
"faultDomainOverride": "az1"
},
"typeHandlerVersion": "1.0"
}
}
]
}
}
}
Mengaktifkan beberapa jenis node primer dalam sumber daya kluster Service Fabric
Untuk mengatur satu atau lebih jenis node sebagai primer dalam sumber daya kluster, atur properti isPrimary
ke true
. Saat menerapkan kluster Service Fabric di seluruh Zona Ketersediaan, Anda harus memiliki tiga jenis node di zona yang berbeda.
{
"reliabilityLevel": "Platinum",
"nodeTypes": [
{
"name": "[parameters('vmNodeType0Name')]",
"applicationPorts": {
"endPort": "[parameters('nt0applicationEndPort')]",
"startPort": "[parameters('nt0applicationStartPort')]"
},
"clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]",
"durabilityLevel": "Silver",
"ephemeralPorts": {
"endPort": "[parameters('nt0ephemeralEndPort')]",
"startPort": "[parameters('nt0ephemeralStartPort')]"
},
"httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]",
"isPrimary": true,
"vmInstanceCount": "[parameters('nt0InstanceCount')]"
},
{
"name": "[parameters('vmNodeType1Name')]",
"applicationPorts": {
"endPort": "[parameters('nt1applicationEndPort')]",
"startPort": "[parameters('nt1applicationStartPort')]"
},
"clientConnectionEndpointPort": "[parameters('nt1fabricTcpGatewayPort')]",
"durabilityLevel": "Silver",
"ephemeralPorts": {
"endPort": "[parameters('nt1ephemeralEndPort')]",
"startPort": "[parameters('nt1ephemeralStartPort')]"
},
"httpGatewayEndpointPort": "[parameters('nt1fabricHttpGatewayPort')]",
"isPrimary": true,
"vmInstanceCount": "[parameters('nt1InstanceCount')]"
},
{
"name": "[parameters('vmNodeType2Name')]",
"applicationPorts": {
"endPort": "[parameters('nt2applicationEndPort')]",
"startPort": "[parameters('nt2applicationStartPort')]"
},
"clientConnectionEndpointPort": "[parameters('nt2fabricTcpGatewayPort')]",
"durabilityLevel": "Silver",
"ephemeralPorts": {
"endPort": "[parameters('nt2ephemeralEndPort')]",
"startPort": "[parameters('nt2ephemeralStartPort')]"
},
"httpGatewayEndpointPort": "[parameters('nt2fabricHttpGatewayPort')]",
"isPrimary": true,
"vmInstanceCount": "[parameters('nt2InstanceCount')]"
}
]
}
Bermigrasi menggunakan Zona Ketersediaan dari kluster menggunakan load balancer SKU Dasar dan SKU IP Dasar
Untuk melakukan migrasi kluster yang menggunakan load balancer dan IP dengan SKU dasar, Anda harus terlebih dahulu membuat load balancer yang sepenuhnya baru dan sumber daya IP yang menggunakan SKU standar. Tidak dimungkinkan untuk memperbarui sumber daya ini.
Referensi load balancer dan IP baru di jenis node lintas Zona Ketersediaan baru yang ingin Anda gunakan. Dalam contoh sebelumnya, tiga sumber daya set skala komputer virtual baru ditambahkan di zona 1, 2, dan 3. Set skala komputer virtual merujuk load balancer dan IP yang baru dibuat dan ditandai sebagai jenis node primer dalam sumber daya kluster Service Fabric.
Untuk memulai, tambahkan sumber daya baru ke templat Azure Resource Manager yang sudah ada. Sumber daya ini meliputi:
- Sumber daya IP publik menggunakan SKU Standar
- Sumber daya load balancer yang menggunakan SKU Standar
- NSG dirujuk oleh subnet tempat Anda menerapkan set skala komputer virtual Anda
- Tiga jenis node ditandai sebagai primer
- Setiap jenis node harus dipetakan ke set skala komputer virtualnya sendiri yang terletak di zona yang berbeda.
- Setiap set skala komputer virtual harus memiliki setidaknya lima node (Durabilitas Perak).
Contoh sumber daya ini dapat ditemukan di templat sampel.
New-AzureRmResourceGroupDeployment ` -ResourceGroupName $ResourceGroupName ` -TemplateFile $Template ` -TemplateParameterFile $Parameters
Setelah sumber daya selesai diterapkan, Anda dapat menonaktifkan node pada jenis node primer dari kluster asli. Ketika node dinonaktifkan, layanan sistem bermigrasi ke jenis node primer baru yang Anda terapkan sebelumnya.
Connect-ServiceFabricCluster -ConnectionEndpoint $ClusterName ` -KeepAliveIntervalInSec 10 ` -X509Credential ` -ServerCertThumbprint $thumb ` -FindType FindByThumbprint ` -FindValue $thumb ` -StoreLocation CurrentUser ` -StoreName My Write-Host "Connected to cluster" $nodeNames = @("_nt0_0", "_nt0_1", "_nt0_2", "_nt0_3", "_nt0_4") Write-Host "Disabling nodes..." foreach($name in $nodeNames) { Disable-ServiceFabricNode -NodeName $name -Intent RemoveNode -Force }
Setelah semua node dinonaktifkan, layanan sistem akan berjalan pada jenis node primer, yang tersebar di seluruh zona. Anda kemudian dapat menghapus node yang dinonaktifkan dari kluster. Setelah node dihapus, Anda dapat menghapus IP asli, load balancer, dan sumber daya set skala komputer virtual.
foreach($name in $nodeNames){ # Remove the node from the cluster Remove-ServiceFabricNodeState -NodeName $name -TimeoutSec 300 -Force Write-Host "Removed node state for node $name" } $scaleSetName="nt0" Remove-AzureRmVmss -ResourceGroupName $groupname -VMScaleSetName $scaleSetName -Force $lbname="LB-cluster-nt0" $oldPublicIpName="LBIP-cluster-0" $newPublicIpName="LBIP-cluster-1" Remove-AzureRmLoadBalancer -Name $lbname -ResourceGroupName $groupname -Force Remove-AzureRmPublicIpAddress -Name $oldPublicIpName -ResourceGroupName $groupname -Force
Selanjutnya, hapus referensi ke sumber daya ini dari templat Resource Manager yang telah Anda terapkan.
Terakhir, perbarui nama DNS dan IP publik.
$oldprimaryPublicIP = Get-AzureRmPublicIpAddress -Name $oldPublicIpName -ResourceGroupName $groupname
$primaryDNSName = $oldprimaryPublicIP.DnsSettings.DomainNameLabel
$primaryDNSFqdn = $oldprimaryPublicIP.DnsSettings.Fqdn
Remove-AzureRmLoadBalancer -Name $lbname -ResourceGroupName $groupname -Force
Remove-AzureRmPublicIpAddress -Name $oldPublicIpName -ResourceGroupName $groupname -Force
$PublicIP = Get-AzureRmPublicIpAddress -Name $newPublicIpName -ResourceGroupName $groupname
$PublicIP.DnsSettings.DomainNameLabel = $primaryDNSName
$PublicIP.DnsSettings.Fqdn = $primaryDNSFqdn
Set-AzureRmPublicIpAddress -PublicIpAddress $PublicIP