Menyebarkan kluster Service Fabric di Azure Stack Hub

Gunakan item Kluster Service Fabric dari Marketplace Azure untuk menyebarkan kluster Service Fabric yang aman di Azure Stack Hub.

Untuk informasi selengkapnya mengenai cara menggunakan Service Fabric, lihat Ringkasan Azure Service Fabric dan skenario keamanan kluster Service Fabric di dokumentasi Azure.

Kluster Service Fabric di Azure Stack Hub tidak menggunakan penyedia sumber Microsoft.ServiceFabric. Sebagai gantinya, di Azure Stack Hub, kluster Service Fabric adalah set skala mesin virtual dengan perangkat lunak yang sudah diinstal sebelumnya menggunakan Desired State Configuration (DSC).

Prasyarat

Hal berikut diperlukan untuk menyebarkan kluster Service Fabric:

  1. Sertifikat kluster
    Ini adalah sertifikat server X.509 yang Anda tambahkan ke Key Vault saat menyebarkan Service Fabric.

    • CN pada sertifikat ini harus cocok dengan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) kluster Service Fabric yang Anda buat.

    • Format sertifikat harus PFX, karena kedua kunci publik dan privat diperlukan. Lihat persyaratan untuk membuat sertifikat sisi server ini.

      Catatan

      Anda dapat menggunakan sertifikat yang ditandatangani sendiri sebagai pengganti sertifikat server X.509 untuk tujuan penguian. Sertifikat yang ditandatangani sendiri tidak perlu cocok dengan FQDN kluster.

  2. Sertifikat Klien Admin
    Ini adalah sertifikat yang digunakan klien untuk mengautentikasi ke kluster Service Fabric, yang dapat ditandatangani sendiri. Lihat persyaratan untuk membuat sertifikat klien.

  3. Item berikut harus tersedia di Marketplace Azure Stack Hub:

    • Windows Server 2016 - Templat menggunakan gambar Windows Server 2016 untuk membuat kluster.
    • Ekstensi Skrip Kustom - Ekstensi Mesin Virtual dari Microsoft.
    • Desired Stage Configuration PowerShell - Ekstensi Mesin Virtual dari Microsoft.

Menambahkan rahasia ke Key Vault

Untuk menyebarkan kluster Service Fabric, Anda harus menentukan Pengidentifikasi Rahasia Key Vault atau URL untuk kluster Service Fabric. Template Azure Resource Manager mengambil Key Vault sebagai input. Kemudian templat mengambil sertifikat Kluster saat menginstal kluster Service Fabric.

Penting

Anda harus menggunakan PowerShell untuk menambahkan rahasia ke Key Vault untuk digunakan dengan Service Fabric. Jangan gunakan portal.

Gunakan skrip berikut untuk membuat Key Vault dan menambahkan sertifikat kluster ke dalamnya. (Lihat prasyarat). Sebelum Anda menjalankan skrip, tinjau contoh skrip dan perbarui parameter yang ditunjukkan agar sesuai dengan lingkungan Anda. Skrip ini juga akan menghasilkan nilai yang perlu Anda berikan ke templat Azure Resource Manager.

Tip

Sebelum skrip dapat berhasil, harus ada penawaran publik yang mencakup layanan untuk Compute, Network, Storage, dan Key Vault.

   function Get-ThumbprintFromPfx($PfxFilePath, $Password) 
      {
         return New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($PfxFilePath, $Password)
      }
   
   function Publish-SecretToKeyVault ($PfxFilePath, $Password, $KeyVaultName)
      {
         $keyVaultSecretName = "ClusterCertificate"
         $certContentInBytes = [io.file]::ReadAllBytes($PfxFilePath)
         $pfxAsBase64EncodedString = [System.Convert]::ToBase64String($certContentInBytes)
   
         $jsonObject = ConvertTo-Json -Depth 10 ([pscustomobject]@{
               data     = $pfxAsBase64EncodedString
               dataType = 'pfx'
               password = $Password
         })
   
         $jsonObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
         $jsonEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)
         $secret = ConvertTo-SecureString -String $jsonEncoded -AsPlainText -Force
         $keyVaultSecret = Set-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName -SecretValue $secret
         
         $pfxCertObject = Get-ThumbprintFromPfx -PfxFilePath $PfxFilePath -Password $Password
   
         Write-Host "KeyVault id: " -ForegroundColor Green
         (Get-AzKeyVault -VaultName $KeyVaultName).ResourceId
         
         Write-Host "Secret Id: " -ForegroundColor Green
         (Get-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName).id
   
         Write-Host "Cluster Certificate Thumbprint: " -ForegroundColor Green
         $pfxCertObject.Thumbprint
      }
   
   #========================== CHANGE THESE VALUES ===============================
   $armEndpoint = "https://management.local.azurestack.external"
   $tenantId = "your_tenant_ID"
   $location = "local"
   $clusterCertPfxPath = "Your_path_to_ClusterCert.pfx"
   $clusterCertPfxPassword = "Your_password_for_ClusterCert.pfx"
   #==============================================================================
   
   Add-AzEnvironment -Name AzureStack -ARMEndpoint $armEndpoint
   Connect-AzAccount -Environment AzureStack -TenantId $tenantId
   
   $rgName = "sfvaultrg"
   Write-Host "Creating Resource Group..." -ForegroundColor Yellow
   New-AzResourceGroup -Name $rgName -Location $location
   
   Write-Host "Creating Key Vault..." -ForegroundColor Yellow
   $Vault = New-AzKeyVault -VaultName sfvault -ResourceGroupName $rgName -Location $location -EnabledForTemplateDeployment -EnabledForDeployment -EnabledForDiskEncryption
   
   Write-Host "Publishing certificate to Vault..." -ForegroundColor Yellow
   Publish-SecretToKeyVault -PfxFilePath $clusterCertPfxPath -Password $clusterCertPfxPassword -KeyVaultName $vault.VaultName

Untuk informasi selengkapnya, lihat Mengelola Key Vault di Azure Stack Hub dengan PowerShell.

Menyebarkan item Marketplace

  1. Di portal pengguna, buka + Buat sumber daya>Komputasi>Kluster Service Fabric.

    Pilih Kluster Service Fabric

  2. Untuk setiap halaman, seperti Dasar-Dasar, isi formulir penyebaran. Gunakan default jika Anda tidak yakin dengan nilainya.

    Untuk penyebaran ke Azure Stack Hub yang tidak tersambung atau untuk menyebarkan versi Service Fabric lain, unduh paket penyebaran Service Fabric dan paket runtime yang sesuai, lalu hosting di blob Azure Stack Hub. Berikan nilai-nilai ini ke bidang URL paket penyebaran Service Fabric dan URL paket runtime Service Fabric.

    Catatan

    Ada masalah kompatibilitas antara rilis terbaru Service Fabric dan SDK yang sesuai. Sampai masalah tersebut ditangani, harap berikan parameter berikut ke URL paket penyebaran dan URL paket runtime. Jika tidak, penyebaran Anda akan gagal.

    Untuk penyebaran yang tidak tersambung, unduh paket ini dari lokasi yang ditentukan dan hosting secara lokal di Blob Azure Stack Hub.

    Dasar

  3. Di halaman Pengaturan Jaringan, Anda dapat menentukan port spesifik yang akan dibuka untuk aplikasi Anda:

    Pengaturan Jaringan

  4. Di halaman Keamanan, tambahkan nilai yang Anda dapatkan dari pembuatan Azure Key Vault dan Pengunggahan Rahasia.

    Untuk Thumbprint Sertifikat Klien Admin, masukkan thumbprint sertifikat Klien Admin. (Lihat prasyarat.)

    • Key Vault Sumber: Tentukan seluruh keyVault id string dari hasil skrip.
    • URL Sertifikat Kluster: Tentukan seluruh URL dari Secret Id dari hasil skrip.
    • Thumbprint Sertifikat Kluster: Tentukan Thumbprint Sertifikat Kluster dari hasil skrip.
    • URL Sertifikat Server: Jika Anda ingin menggunakan sertifikat terpisah dari sertifikat Kluster, unggah sertifikat ke keyvault dan berikan url lengkap ke rahasia.
    • Thumbprint Sertifikat Server: Tentukan thumbprint untuk Sertifikat Server
    • Thumbprint Sertifikat Klien Admin: Tentukan Thumbprint Sertifikat Klien Admin yang dibuat dalam prasyarat.

    Output skrip

    Keamanan

  5. Selesaikan wizard, kemudian pilih Buat untuk menyebarkan Kluster Service Fabric.

Mengakses Kluster Service Fabric

Anda dapat mengakses kluster Service Fabric dengan menggunakan Service Fabric Explorer atau Service Fabric PowerShell.

Gunakan Service Fabric Explorer

  1. Pastikan browser memiliki akses ke Sertifikat klien admin Anda dan dapat mengautentikasi ke kluster Service Fabric Anda.

    a. Buka Internet Explorer lalu buka Opsi Internet>Konten>Sertifikat.

    b. Pada sertifikat, pilih Impor untuk memulai Wizard Impor Sertifikat, kemudian klik Berikutnya. Di halaman File untuk Diimpor, klik Telusuri, lalu pilih sertifikat Klien Admin yang Anda berikan untuk templat Azure Resource Manager.

    Catatan

    Sertifikat ini bukan sertifikat Kluster yang sebelumnya ditambahkan ke Key Vault.

    c. Pastikan Anda memiliki "Pertukaran Informasi Pribadi" yang dipilih di dropdown ekstensi jendela File Explorer.

    Pertukaran informasi pribadi

    d. Di halaman Penyimpanan Sertifikat, pilih Pribadi, kemudian selesaikan wizard.
    Penyimpanan sertifikat

  2. Untuk menemukan FQDN kluster Service Fabric Anda:

    a. Buka grup sumber daya yang terkait dengan kluster Service Fabric dan temukan sumber daya alamat IP Publik. Pilih objek yang terkait dengan alamat IP Publik untuk membuka bilah alamat IP Publik.

    Alamat IP publik

    b. Pada bilah alamat IP Publik, FQDN ditampilkan sebagai nama DNS.

    Nama DNS

  3. Untuk menemukan URL untuk Service Fabric Explorer, dan titik akhir koneksi Klien, tinjau hasil penyebaran Templat.

  4. Di browser Anda, buka https://*FQDN*:19080. Ganti FQDN dengan FQDN kluster Service Fabric Anda dari langkah 2.
    Jika Anda telah menggunakan sertifikat yang ditandatangani sendiri, Anda akan mendapatkan peringatan bahwa koneksi tidak aman. Untuk melanjutkan ke situs web, pilih Informasi Selengkapnya, kemudian Lanjutkan ke halaman web.

  5. Untuk mengautentikasi ke situs, Anda harus memilih sertifikat yang akan digunakan. Pilih Pilihan lainnya, pilih sertifikat yang tepat, lalu klik OK untuk terhubung ke Service Fabric Explorer.

    Mengautentikasi

Menggunakan Service Fabric PowerShell

  1. Instal SDK Microsoft Azure Service Fabric dari Menyiapkan lingkungan pengembangan Anda di Windows dalam dokumentasi Azure Service Fabric.

  2. Setelah instalasi selesai, konfigurasikan variabel Lingkungan sistem untuk memastikan bahwa cmdlet Service Fabric dapat diakses dari PowerShell.

    a. Buka Panel Kontrol>Sistem dan Keamanan>Sistem, kemudian pilih Pengaturan sistem tingkat lanjut.

    Panel Kontrol

    b. Pada tab Tingkat LanjutProperti Sistem, pilih Variabel Lingkungan.

    c. Untuk Variabel sistem, edit Jalur dan pastikan bahwa C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code berada di bagian atas daftar variabel lingkungan.

    Daftar variabel lingkungan

  3. Setelah mengubah urutan variabel lingkungan, hidupkan ulang PowerShell lalu jalankan skrip PowerShell berikut untuk mendapatkan akses ke kluster Service Fabric:

     Connect-ServiceFabricCluster -ConnectionEndpoint "\[Service Fabric
     CLUSTER FQDN\]:19000" \`
    
     -X509Credential -ServerCertThumbprint
     761A0D17B030723A37AA2E08225CD7EA8BE9F86A \`
    
     -FindType FindByThumbprint -FindValue
     0272251171BA32CEC7938A65B8A6A553AA2D3283 \`
    
     -StoreLocation CurrentUser -StoreName My -Verbose
    

    Catatan

    Tidak ada https:// sebelum nama kluster dalam skrip. Port 19000 diperlukan.

Langkah berikutnya

Menyebarkan Kubernetes ke Azure Stack Hub