Bagikan melalui


Membuat templat Resource Manager kluster Service Fabric

Kluster Azure Service Fabric adalah set komputer virtual yang terhubung dengan jaringan di mana layanan mikro Anda disebarkan dan dikelola. Kluster Service Fabric yang berjalan di Azure adalah sumber daya Azure dan disebarkan, dikelola, dan dipantau menggunakan Azure Resource Manager. Artikel ini menjelaskan cara membuat templat Resource Manager untuk kluster Service Fabric yang berjalan di Azure. Setelah templat selesai, Anda dapat menerapkan kluster di Azure.

Keamanan kluster dikonfigurasi ketika kluster pertama kali disiapkan dan tidak dapat diubah nanti. Sebelum menyiapkan kluster, baca skenario keamanan kluster Service Fabric. Di Azure, Service Fabric menggunakan sertifikat x509 untuk mengamankan kluster Anda dan titik akhirnya, mengautentikasi klien, dan mengenkripsi data. ID Microsoft Entra juga disarankan untuk mengamankan akses ke titik akhir manajemen. Penyewa dan pengguna Microsoft Entra harus dibuat sebelum membuat kluster. Untuk informasi selengkapnya, baca Menyiapkan ID Microsoft Entra untuk mengautentikasi klien.

Sebelum menyebarkan kluster produksi untuk menjalankan beban kerja produksi, pastikan untuk terlebih dahulu membaca Daftar periksa kesiapan produksi.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Buat templat Resource Manager

Templat Resource Manager sampel tersedia di contoh Azure di GitHub. Templat ini dapat digunakan sebagai titik awal untuk templat klaster Anda.

Artikel ini menggunakan templat contoh kluster aman lima node dan parameter templat. Unduh azuredeploy.json dan azuredeploy.parameters.json ke komputer Anda dan buka kedua file di editor teks favorit Anda.

Catatan

Untuk cloud nasional (Azure Government, Microsoft Azure yang dioperasikan oleh 21Vianet, Azure Jerman), Anda juga harus menambahkan hal berikut fabricSettings ke templat Anda: AADLoginEndpoint, AADTokenEndpointFormat dan AADCertEndpointFormat.

Tambahkan sertifikat

Anda menambahkan sertifikat ke templat Resource Manager kluster dengan mereferensikan key vault yang berisi key sertifikat. Tambahkan parameter dan nilai key-vault tersebut dalam file parameter templat Resource Manager (azuredeploy.parameters.json).

Tambahkan semua sertifikat ke kumpulan skala komputer virtual osProfile

Setiap sertifikat yang diinstal dalam kluster harus dikonfigurasi di bagian osProfile dari sumber daya set skala (Microsoft.Compute/virtualMachineScaleSets). Tindakan ini menginstruksikan penyedia sumber daya untuk menginstal sertifikat pada VM. Instalasi ini mencakup sertifikat kluster dan sertifikat keamanan aplikasi apa pun yang Anda rencanakan untuk digunakan untuk aplikasi Anda:

{
  "apiVersion": "[variables('vmssApiVersion')]",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "osProfile": {
      ...
      "secrets": [
        {
          "sourceVault": {
            "id": "[parameters('sourceVaultValue')]"
          },
          "vaultCertificates": [
            {
              "certificateStore": "[parameters('clusterCertificateStorevalue')]",
              "certificateUrl": "[parameters('clusterCertificateUrlValue')]"
            },
            {
              "certificateStore": "[parameters('applicationCertificateStorevalue')",
              "certificateUrl": "[parameters('applicationCertificateUrlValue')]"
            },
            ...
          ]
        }
      ]
    }
  }
}

Mengonfigurasi sertifikat kluster Service Fabric

Sertifikat autentikasi kluster harus dikonfigurasi dalam sumber daya kluster Service Fabric (Microsoft.ServiceFabric/cluster) dan ekstensi Service Fabric untuk set skala komputer virtual di sumber daya set skala komputer virtual. Pengaturan ini memungkinkan penyedia sumber daya Service Fabric untuk mengonfigurasinya untuk digunakan untuk autentikasi kluster dan autentikasi server untuk titik akhir manajemen.

Tambahkan informasi sertifikat sumber daya kumpulan skala komputer virtual

{
  "apiVersion": "[variables('vmssApiVersion')]",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "virtualMachineProfile": {
      "extensionProfile": {
        "extensions": [
          {
            "name": "[concat('ServiceFabricNodeVmExt_',variables('vmNodeType0Name'))]",
            "properties": {
              ...
              "settings": {
                ...
                "certificate": {
                  "commonNames": ["[parameters('certificateCommonName')]"],
                  "x509StoreName": "[parameters('clusterCertificateStoreValue')]"
                },
                ...
              }
            }
          }
        ]
      }
    }
  }
}

Tambahkan informasi sertifikat ke sumber daya kluster Service Fabric

{
  "apiVersion": "2018-02-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
    "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]"
  ],
  "properties": {
    "certificateCommonNames": {
        "commonNames": [
        {
            "certificateCommonName": "[parameters('certificateCommonName')]",
            "certificateIssuerThumbprint": ""
        }
        ],
        "x509StoreName": "[parameters('certificateStoreValue')]"
    },
    ...
  }
}

Menambahkan konfigurasi Microsoft Entra untuk menggunakan ID Microsoft Entra untuk akses klien

Anda menambahkan konfigurasi Microsoft Entra ke templat Resource Manager kluster dengan mereferensikan brankas kunci yang berisi kunci sertifikat. Tambahkan parameter dan nilai Microsoft Entra tersebut dalam file parameter templat Resource Manager (azuredeploy.parameters.json).

Catatan

Di Linux, penyewa dan pengguna Microsoft Entra harus dibuat sebelum membuat kluster. Untuk informasi selengkapnya, baca Menyiapkan ID Microsoft Entra untuk mengautentikasi klien.

{
  "apiVersion": "2018-02-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  ...
  "properties": {
    "certificateCommonNames": {
        "commonNames": [
        {
            "certificateCommonName": "[parameters('certificateCommonName')]",
            "certificateIssuerThumbprint": ""
        }
        ],
        "x509StoreName": "[parameters('certificateStoreValue')]"
    },
    ...
    "azureActiveDirectory": {
      "tenantId": "[parameters('aadTenantId')]",
      "clusterApplication": "[parameters('aadClusterApplicationId')]",
      "clientApplication": "[parameters('aadClientApplicationId')]"
    },
    ...
  }
}

Mengisi file parameter dengan nilai

Terakhir, gunakan nilai output dari key vault dan perintah Azure AD PowerShell untuk mengisi file parameter.

Jika Anda berencana menggunakan service fabric Azure modul RM PowerShell, maka Anda tidak perlu mengisi informasi sertifikat kluster. Jika Anda ingin sistem menghasilkan sertifikat yang ditandatangani sendiri untuk keamanan kluster, simpan saja sebagai null.

Catatan

Agar modul RM dapat mengambil dan mengisi nilai parameter kosong ini, nama parameter sangat cocok dengan nama di bawah ini

"clusterCertificateThumbprint": {
    "value": ""
},
"certificateCommonName": {
    "value": ""
},
"clusterCertificateUrlValue": {
    "value": ""
},
"sourceVaultvalue": {
    "value": ""
},

Jika Anda menggunakan sertifikasi aplikasi atau menggunakan kluster yang sudah ada yang telah Anda unggah ke key vault, Anda perlu mendapatkan informasi ini dan mengisinya.

Modul RM tidak memiliki kemampuan untuk menghasilkan konfigurasi Microsoft Entra untuk Anda, jadi jika Anda berencana menggunakan ID Microsoft Entra untuk akses klien, Anda perlu mengisinya.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        ...
        "clusterCertificateStoreValue": {
            "value": "My"
        },
        "clusterCertificateThumbprint": {
            "value": "<thumbprint>"
        },
        "clusterCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myclustercert/4d087088df974e869f1c0978cb100e47"
        },
        "applicationCertificateStorevalue": {
            "value": "My"
        },
        "applicationCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myapplicationcert/2e035058ae274f869c4d0348ca100f08"
        },
        "sourceVaultvalue": {
            "value": "/subscriptions/<guid>/resourceGroups/mycluster-keyvault/providers/Microsoft.KeyVault/vaults/myvault"
        },
        "aadTenantId": {
            "value": "<guid>"
        },
        "aadClusterApplicationId": {
            "value": "<guid>"
        },
        "aadClientApplicationId": {
            "value": "<guid>"
        },
        ...
    }
}

Menguji templat Anda

Gunakan perintah PowerShell berikut ini untuk menguji templat Resource Manager Anda dengan file parameter:

Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json

Jika Anda mengalami masalah dan mendapatkan pesan samar, lalu gunakan "-Debug" sebagai opsi.

Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug

Diagram berikut mengilustrasikan tempat brankas kunci dan konfigurasi Microsoft Entra Anda sesuai dengan templat Resource Manager Anda.

Peta dependensi Resource Manager

Langkah berikutnya

Sekarang setelah Anda memiliki templat untuk kluster Anda, pelajari cara menyebarkan kluster ke Azure. Jika Anda belum melakukannya, baca Daftar periksa kesiapan produksi sebelum menyebarkan kluster produksi.

Untuk mempelajari tentang sintaks dan properti JSON untuk sumber daya yang diterapkan dalam artikel ini, lihat: