Pengenalan Dedicated Host pada kluster terkelola Service Fabric (Pratinjau)

Azure Dedicated Host adalah layanan yang menyediakan server fisik - mampu meng-host satu atau lebih komputer virtual - yang didedikasikan untuk satu langganan Azure. Server didedikasikan untuk organisasi Anda dan beban kerja serta kapasitas tidak dibagikan dengan orang lain. Host khusus adalah server fisik yang sama yang digunakan di pusat data kami, disediakan sebagai sumber daya. Anda dapat menyediakan host khusus dalam wilayah, zona yang tersedia, dan domain kesalahan. Kemudian, Anda dapat menempatkan VM langsung ke host yang disediakan, dalam konfigurasi apa pun yang paling sesuai dengan kebutuhan Anda.

Menggunakan Azure Dedicated Host untuk node dengan kluster terkelola Service Fabric (SFMC) Anda memiliki keuntungan berikut:

  • Isolasi perangkat keras tingkat host di tingkat server fisik. Tidak ada VM lain yang akan ditempatkan pada host Anda. Host khusus disebarkan di pusat data yang sama dan berbagi jaringan dan infrastruktur penyimpanan yang mendasarinya dengan host lain, yang tidak terisolasi.
  • Kontrol atas peristiwa pemeliharaan yang dimulai oleh platform Azure. Meskipun sebagian besar peristiwa pemeliharaan memiliki sedikit atau tidak berdampak pada mesin virtual, ada beberapa beban kerja sensitif di mana setiap detik jeda dapat berdampak. Dengan dedicated host, Anda dapat memilih periode pemeliharaan untuk mengurangi dampak pada layanan Anda.

Anda dapat memilih SKU untuk Mesin Virtual Dedicated Host berdasarkan kebutuhan beban kerja Anda. Untuk informasi lebih lanjut, lihat Mesin Virtual Dedicated Host.

Panduan berikut akan membawa Anda langkah demi langkah tentang cara menambahkan Azure Dedicated Host ke kluster terkelola Service Fabric dengan templat Azure Resource Manager.

Prasyarat

Panduan ini dibuat berdasarkan panduan mulai cepat kluster terkelola: Menyebarkan kluster terkelola Service Fabric menggunakan Azure Resource Manager

Sebelum Anda mulai:

Meninjau templat

Templat yang digunakan dalam panduan ini berasal dari Sampel Azure - templat kluster Service Fabric .

Buat sertifikat klien

Kluster yang dikelola Service Fabric menggunakan sertifikat klien sebagai kunci untuk kontrol akses. Anda dapat melewati langkah ini jika sudah memiliki sertifikat klien yang ingin Anda gunakan untuk kontrol akses ke kluster Anda.

Jika Anda perlu membuat sertifikat klien baru, ikuti langkah-langkah dalam atur dan ambil sertifikat dari Azure Key Vault. Perhatikan thumbprint sertifikat karena akan diperlukan untuk menyebarkan templat di langkah berikutnya.

Menyebarkan sumber daya Dedicated Host dan konfigurasikan akses ke Service Fabric Resource Provider

Buat grup dedicated host dan tambahkan penetapan peran ke grup host dengan aplikasi Service Fabric Resource Provider menggunakan langkah-langkah di bawah ini. Penetapan peran ini memungkinkan Service Fabric Resource Provider untuk menyebarkan mesin virtual pada Dedicated Host di dalam grup host ke set skala mesin virtual kluster terkelola. Tugas ini adalah tindakan satu kali.

  1. Dapatkan ID penyedia SFRP dan Perwakilan Layanan untuk aplikasi Service Fabric Resource Provider.

    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.

  2. Buat grup dedicated host yang disematkan ke satu zona ketersediaan dan lima domain kesalahan menggunakan sampel templat penyebaran ARM untuk Grup Dedicated Host yang disediakan. Sampel akan memastikan setidaknya ada satu host khusus per domain kesalahan.

    New-AzResourceGroup -Name $ResourceGroupName -Location $location
    New-AzResourceGroupDeployment -Name "hostgroup-deployment" -ResourceGroupName $ResourceGroupName -TemplateFile ".\HostGroup-And-RoleAssignment.json" -TemplateParameterFile ".\HostGroup-And-RoleAssignment.parameters.json" -Debug -Verbose
    

    Catatan

    • Pastikan Anda memilih keluarga SKU yang benar untuk Dedicated Host yang cocok dengan yang akan Anda gunakan untuk SKU mesin virtual jenis node yang mendasarinya. Untuk informasi lebih lanjut, lihat Mesin Virtual Dedicated Host.
    • Setiap domain kesalahan membutuhkan dedicated host untuk ditempatkan di dalamnya dan kluster terkelola Service Fabric memerlukan lima domain kesalahan. Oleh karena itu, setidaknya lima dedicated host harus ada di setiap grup dedicated host.
  3. Sampel templat penyebaran ARM untuk Grup Dedicated Host yang digunakan pada langkah sebelumnya juga menambahkan penetapan peran ke grup host dengan akses kontributor. Untuk informasi selengkapnya tentang peran Azure, lihat Peran bawaan Azure - Azure RBAC. Penetapan peran ini ditentukan di bagian sumber daya templat dengan ID Utama ditentukan dari langkah pertama dan ID definisi peran.

       "variables": {  
            "authorizationApiVersion": "2018-01-01-preview",
            "contributorRoleId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
            "SFRPAadServicePrincipalId": " <Service Fabric Resource Provider ID> -"
          },
       "resources": [
       {  
                "apiVersion": "[variables('authorizationApiVersion')]",  
                "type": "Microsoft.Compute/Hostgroups/providers/roleAssignments",  
                "name": "[concat(concat(parameters('dhgNamePrefix'), '0'), '/Microsoft.Authorization/', parameters('hostGroupRoleAssignmentId'))]",  
                "dependsOn": [  
                    "[resourceId('Microsoft.Compute/hostGroups', concat(parameters('dhgNamePrefix'), '0'))]"  
                ],  
                "properties": {  
                    "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', variables('contributorRoleId'))]",  
                    "principalId": "[variables('SFRPAadServicePrincipalId')]"  
                }  
              }
              ]
    

    atau Anda juga dapat menambahkan penetapan peran melalui PowerShell menggunakan ID Utama yang ditentukan dari langkah pertama dan nama definisi peran sebagai "Kontributor" jika berlaku.

    New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Contributor" -Scope "<Host Group Id>"  
    

Menyebarkan kluster terkelola Service Fabric

Buat kluster terkelola Azure Service Fabric dengan jenis node yang dikonfigurasi untuk mereferensikan ResourceId grup Dedicated Host. Jenis node harus disematkan ke zona ketersediaan yang sama dengan grup host.

  1. Pilih templat dari templat sampel kluster Service Fabric untuk Dedicated Host, yang menyertakan spesifikasi untuk dukungan Dedicated Host.

  2. Berikan nilai Anda sendiri untuk parameter templat berikut:

    • Langganan: Pilih langganan Azure yang sama dengan langganan grup host.
    • Grup Sumber Daya: Pilih Buat baru. Masukkan nama unik untuk grup sumber daya, seperti myResourceGroup, lalu pilih OK.
    • Lokasi: Pilih lokasi yang sama dengan lokasi grup host.
    • Nama Kluster: Masukkan nama unik untuk kluster Anda, seperti mysfcluster.
    • Nama Pengguna Admin: Masukkan nama untuk admin yang akan digunakan RDP pada VM yang mendasari dalam kluster.
    • Kata Sandi Admin: Masukkan kata sandi untuk admin yang akan digunakan untuk RDP pada komputer virtual mendasari dalam kluster.
    • Thumbprint Sertifikat Klien: Berikan thumbprint sertifikat klien yang ingin Anda gunakan untuk mengakses kluster Anda. Jika Anda tidak memiliki sertifikat, ikuti atur dan ambil sertifikat untuk membuat sertifikat yang ditandatangani sendiri.
    • Nama Jenis Node: Masukkan nama unik untuk jenis node Anda, seperti nt1.
  3. Sebarkan templat ARM melalui salah satu metode di bawah ini:

    • Pengalaman templat kustom portal ARM: Penyebaran kustom - Microsoft Azure. Pilih gambar berikut untuk masuk ke Azure, dan berikan nilai Anda sendiri untuk parameter templat, lalu sebarkan templat.

      Button to deploy the Resource Manager template to Azure.

    • Cmdlet ARM PowerShell: New-AzResourceGroupDeployment (Az.Resources). Simpan jalur file template dan parameter ARM Anda dalam variabel, lalu sebarkan template.

      $templateFilePath = "<full path to azuredeploy.json>" 
      $parameterFilePath = "<full path to azuredeploy.parameters.json>"
      $pass = (ConvertTo-SecureString -AsPlainText -Force "<adminPassword>")
      
      New-AzResourceGroupDeployment ` 
         -Name $DeploymentName ` 
         -ResourceGroupName $resourceGroupName ` 
         -TemplateFile $templateFilePath ` 
         -TemplateParameterFile $parameterFilePath `
         -adminPassword $pass `
         -Debug -Verbose
      

    Tunggu hingga penyebaran berhasil diselesaikan.

Pemecahan Masalah

  1. Kesalahan berikut muncul ketika SFRP tidak memiliki akses ke grup host. Tinjau langkah-langkah penetapan peran di atas dan pastikan penugasan dilakukan dengan benar.
         {  
                "code": "LinkedAuthorizationFailed",  
                "message": "The client '[<clientId>]' with object id '[<objectId>]' has permission to perform action 'Microsoft.Compute/virtualMachineScaleSets/write' on scope '/subscriptions/[<Subs-Id>]/resourcegroups/[<ResGrp-Id>]/providers/Microsoft.Compute/virtualMachineScaleSets/pnt'; however, it does not have permission to perform action 'write' on the linked scope(s) '/subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/HostGroupscu0' or the linked scope(s) are invalid."
             }
    
  2. Jika grup host berada dalam langganan yang berbeda dari kluster, maka kesalahan berikut akan dilaporkan. Pastikan keduanya berada dalam langganan yang sama.
          {  
                "code": "BadRequest",  
                "message": "Entity subscriptionId in resource reference id /subscriptions/[<Subs-Id>]/resourceGroups/[<ResGrp-Id>]/providers/Microsoft.Compute/hostGroups/[<HostGroup>] is invalid."  
              }
    
  3. Jika Kuota untuk Grup Host tidak memadai, kesalahan berikut akan muncul:
          {  
                "code": "QuotaExceeded",  
                "message": "Operation could not be completed as it results in exceeding approved standardDSv3Family Cores quota.  
          Additional Required: 320, (Minimum) New Limit Required: 320. Submit a request for Quota increase [here](https://aka.ms/ProdportalCRP/#blade/Microsoft_Azure_Capacity/UsageAndQuota.ReactView/Parameters/). Please read more about quota limits [here](/azure/azure-supportability/per-vm-quota-requests)” 
              }
    

Langkah berikutnya