Bagikan melalui


Pengaturan konfigurasi untuk kluster Windows mandiri

Artikel ini menjelaskan pengaturan konfigurasi kluster Azure Service Fabric mandiri yang dapat diatur dalam file ClusterConfig.json. Anda akan menggunakan file ini untuk menentukan informasi tentang node kluster, konfigurasi keamanan, serta topologi jaringan dalam hal kesalahan dan meningkatkan domain. Setelah mengubah atau menambahkan pengaturan konfigurasi, Anda dapat membuat kluster mandiri atau meningkatkan konfigurasi kluster mandiri.

Ketika Anda mengunduh paket Service Fabric mandiri, sampel ClusterConfig.json juga disertakan. Sampel yang memiliki "DevCluster" dalam nama mereka membuat kluster dengan ketiga node pada komputer yang sama, menggunakan node logis. Dari node ini, setidaknya satu harus ditandai sebagai node utama. Jenis kluster ini berguna untuk lingkungan pengembangan atau pengujian. Ini tidak didukung sebagai kluster produksi. Sampel yang memiliki "MultiMachine" dalam nama mereka membantu membuat kluster tingkat produksi, dengan setiap node pada komputer terpisah. Jumlah node primer untuk kluster ini didasarkan pada tingkat keandalan kluster. Pada rilis 5.7, API Versi 05-2017, kami menghapus properti tingkat keandalan. Sebaliknya, kode kami menghitung tingkat keandalan yang paling dioptimalkan untuk kluster Anda. Jangan mencoba menetapkan nilai untuk properti ini dalam versi 5.7 dan seterusnya.

  • ClusterConfig.Unsecure.DevCluster.json dan ClusterConfig.Unsecure.MultiMachine.json menunjukkan cara membuat kluster pengujian atau produksi yang tidak aman.

  • ClusterConfig.Windows.DevCluster.json dan ClusterConfig.Windows.MultiMachine.json menunjukkan cara membuat kluster pengujian atau produksi yang diamankan dengan menggunakan keamanan Windows.

  • ClusterConfig.X509.DevCluster.json dan ClusterConfig.X509.MultiMachine.json menunjukkan cara membuat kluster pengujian atau produksi yang diamankan dengan menggunakan keamanan berbasis sertifikat X509.

Sekarang mari kita periksa berbagai bagian dari file ClusterConfig.json.

Konfigurasi kluster umum

Konfigurasi kluster umum mencakup konfigurasi spesifik kluster yang luas, seperti yang ditunjukkan dalam cuplikan JSON berikut:

    "name": "SampleCluster",
    "clusterConfigurationVersion": "1.0.0",
    "apiVersion": "01-2017",

Anda dapat memberikan nama yang ramah ke kluster Service Fabric Anda dengan menetapkannya ke variabel nama. clusterConfigurationVersion adalah nomor versi kluster Anda. Tingkatkan setiap kali Anda meningkatkan kluster Service Fabric Anda. Biarkan apiVersion diatur ke nilai default.

Node pada kluster

Anda dapat mengonfigurasi node pada kluster Service Fabric dengan menggunakan bagian node, seperti yang ditunjukkan oleh cuplikan berikut:

"nodes": [{
    "nodeName": "vm0",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType0",
    "faultDomain": "fd:/dc1/r0",
    "upgradeDomain": "UD0"
}, {
    "nodeName": "vm1",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType1",
    "faultDomain": "fd:/dc1/r1",
    "upgradeDomain": "UD1"
}, {
    "nodeName": "vm2",
    "iPAddress": "localhost",
    "nodeTypeRef": "NodeType2",
    "faultDomain": "fd:/dc1/r2",
    "upgradeDomain": "UD2"
}],

Kluster Service Fabric harus berisi setidaknya tiga node. Anda dapat menambahkan lebih banyak node ke bagian ini sesuai dengan pengaturan Anda. Tabel berikut menjelaskan pengaturan konfigurasi untuk setiap node:

Konfigurasi node Keterangan
nodeName Anda dapat memberikan nama yang ramah pada node.
iPAddress Cari tahu alamat IP node Anda dengan membuka jendela perintah dan mengetik ipconfig. Perhatikan alamat IPV4, dan tetapkan ke variabel iPAddress.
nodeTypeRef Setiap node dapat ditetapkan jenis node yang berbeda. Jenis node didefinisikan di bagian berikut.
faultDomain Domain kesalahan memungkinkan administrator kluster untuk menentukan node fisik yang mungkin gagal pada saat yang sama karena dependensi fisik bersama.
upgradeDomain Upgrade domain menjelaskan set node yang dimatikan untuk meningkatkan Service Fabric pada waktu yang hampir bersamaan. Anda dapat memilih node mana yang akan ditetapkan ke domain peningkatan mana, karena tidak dibatasi oleh persyaratan fisik apa pun.

Properti Kluster

Bagian properti di ClusterConfig.json digunakan untuk mengonfigurasi kluster seperti yang ditunjukkan:

Keandalan

Konsep reliabilityLevel mendefinisikan jumlah replika atau instans layanan sistem Service Fabric yang dapat berjalan pada node utama kluster. Ini menentukan keandalan layanan ini dan karenanya kluster. Nilai dihitung oleh sistem pada pembuatan kluster dan waktu peningkatan.

Diagnostik

Di bagian diagnosticsStore, Anda dapat mengonfigurasi parameter untuk mengaktifkan diagnostik dan pemecahan masalah node atau kegagalan kluster, seperti yang ditunjukkan pada cuplikan berikut:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "FileShare",
    "IsEncrypted": "false",
    "connectionstring": "c:\\ProgramData\\SF\\DiagnosticsStore"
}

Metadata adalah deskripsi diagnostik kluster Anda dan dapat diatur sesuai dengan pengaturan Anda. Variabel ini membantu dalam mengumpulkan log jejak ETW dan dump crash serta penghitung kinerja. Untuk informasi selengkapnya tentang log jejak ETW, lihat Tracelog dan pelacakan ETW. Semua log, termasuk crash dump dan penghitung kinerja, dapat diarahkan ke folder connectionString di komputer Anda. Anda juga dapat menggunakan AzureStorage untuk menyimpan diagnostik. Lihat cuplikan sampel berikut ini:

"diagnosticsStore": {
    "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
    "dataDeletionAgeInDays": "7",
    "storeType": "AzureStorage",
    "IsEncrypted": "false",
    "connectionstring": "xstore:DefaultEndpointsProtocol=https;AccountName=[AzureAccountName];AccountKey=[AzureAccountKey]"
}

Keamanan

Bagian keamanan diperlukan untuk kluster Service Fabric mandiri yang aman. Cuplikan berikut ini memperlihatkan bagian dari bagian ini:

"security": {
    "metadata": "This cluster is secured using X509 certificates.",
    "ClusterCredentialType": "X509",
    "ServerCredentialType": "X509",
    . . .
}

Metadata adalah deskripsi kluster aman Anda dan dapat diatur sesuai dengan pengaturan Anda. ClusterCredentialType dan ServerCredentialType menentukan jenis keamanan yang diterapkan kluster dan node. Mereka dapat diatur ke X509 untuk keamanan berbasis sertifikat atau Windows untuk keamanan berbasis Active Directory. Bagian keamanan lainnya didasarkan pada jenis keamanan. Untuk informasi tentang cara mengisi bagian keamanan lainnya, lihat Keamanan berbasis sertifikat di kluster mandiri atau keamanan Windows di kluster mandiri.

Jenis Node

Bagian nodeTypes menjelaskan jenis node yang kluster Anda miliki. Setidaknya satu jenis node harus ditentukan untuk kluster, seperti yang ditunjukkan pada cuplikan berikut:

"nodeTypes": [{
    "name": "NodeType0",
    "clientConnectionEndpointPort": "19000",
    "clusterConnectionEndpointPort": "19001",
    "leaseDriverEndpointPort": "19002",
    "serviceConnectionEndpointPort": "19003",
    "httpGatewayEndpointPort": "19080",
    "reverseProxyEndpointPort": "19081",
    "applicationPorts": {
        "startPort": "20575",
        "endPort": "20605"
    },
    "ephemeralPorts": {
        "startPort": "20606",
        "endPort": "20861"
    },
    "isPrimary": true
}]

Nama ini adalah nama yang ramah untuk jenis node khusus ini. Untuk membuat node dari jenis node ini, tetapkan nama bersahabatnya ke variabel nodeTypeRef untuk node tersebut, seperti yang disebutkan sebelumnya. Untuk setiap jenis node, tentukan titik akhir koneksi yang digunakan. Anda dapat memilih nomor porta apa pun untuk titik akhir koneksi ini, selama mereka tidak berkonflik dengan titik akhir lainnya dalam kluster ini. Dalam kluster multinode, ada satu atau lebih node primer (yaitu, isPrimary diatur ke true), tergantung reliabilityLevel. Untuk mempelajari selengkapnya tentang jenis node primer dan nonprimary, lihat pertimbangan perencanaan kapasitas kluster Service Fabric untuk informasi tentang nodeTypes dan reliabilityLevel.

Titik akhir yang digunakan untuk mengonfigurasi jenis node

  • clientConnectionEndpointPort adalah port yang digunakan oleh klien untuk terhubung ke kluster saat API klien digunakan.
  • clusterConnectionEndpointPort adalah port tempat node berkomunikasi satu sama lain.
  • leaseDriverEndpointPort adalah port yang digunakan oleh driver sewa kluster untuk mengetahui apakah node masih aktif.
  • serviceConnectionEndpointPort adalah port yang digunakan oleh aplikasi dan layanan yang digunakan pada node untuk berkomunikasi dengan klien Service Fabric pada node tertentu.
  • httpGatewayEndpointPort adalah port yang digunakan oleh Service Fabric Explorer untuk menyambungkan ke kluster.
  • ephemeralPorts menggantikan port dinamis yang digunakan oleh OS. Service Fabric menggunakan bagian dari port ini sebagai port aplikasi, dan sisanya tersedia untuk OS. Ini juga memetakan rentang ini ke rentang yang ada yang ada di OS, jadi untuk semua tujuan, Anda dapat menggunakan rentang yang diberikan dalam contoh file JSON. Pastikan bahwa perbedaan antara port awal dan akhir setidaknya 255. Anda mungkin mengalami konflik jika perbedaan ini terlalu rendah, karena rentang ini dibagikan dengan OS. Untuk melihat rentang port dinamis yang dikonfigurasi, jalankan netsh int ipv4 show dynamicport tcp.
  • applicationPorts adalah port yang digunakan oleh aplikasi Service Fabric. Rentang port aplikasi harus cukup besar untuk mencakup persyaratan titik akhir aplikasi Anda. Rentang ini harus eksklusif dari rentang port dinamis pada komputer tersebut, yaitu rentang ephemeralPorts sebagaimana diatur dalam konfigurasi. Service Fabric menggunakan port ini setiap kali port baru diperlukan dan mengurus membuka firewall untuk port ini.
  • reverseProxyEndpointPort adalah titik akhir proksi terbalik opsional. Untuk informasi selengkapnya, lihat Proksi terbalik Service Fabric.

Pengaturan log

Di bagian fabricSettings, Anda dapat mengatur direktori root untuk data dan log Service Fabric. Anda hanya dapat menyesuaikan direktori ini selama pembuatan kluster awal. Lihat cuplikan sampel berikut dari bagian ini:

"fabricSettings": [{
    "name": "Setup",
    "parameters": [{
        "name": "FabricDataRoot",
        "value": "C:\\ProgramData\\SF"
    }, {
        "name": "FabricLogRoot",
        "value": "C:\\ProgramData\\SF\\Log"
}]

Kami sarankan Anda menggunakan drive non-OS sebagai FabricDataRoot dan FabricLogRoot. Ini memberikan lebih banyak keandalan dalam menghindari situasi ketika OS berhenti merespons. Jika Anda hanya mengkustomisasi akar data, akar log ditempatkan satu tingkat di bawah akar data.

Pengaturan Reliable Services yang Dapat Diandalkan

Di bagian KtlLogger, Anda dapat mengatur pengaturan konfigurasi global untuk Reliable Services. Untuk informasi selengkapnya tentang pengaturan ini, lihat Mengonfigurasi Reliable Services yang Dapat Diandalkan. Contoh berikut menunjukkan cara mengubah log transaksi bersama yang dibuat untuk mendukung koleksi yang dapat diandalkan untuk layanan yang nyata:

"fabricSettings": [{
    "name": "KtlLogger",
    "parameters": [{
        "name": "SharedLogSizeInMB",
        "value": "4096"
    }]
}]

Fitur add-on

Untuk mengonfigurasi fitur add-on, konfigurasikan apiVersion sebagai 04-2017 atau lebih tinggi, dan konfigurasikan addonFeature seperti yang ditunjukkan di sini:

"apiVersion": "04-2017",
"properties": {
    "addOnFeatures": [
        "DnsService",
        "RepairManager"
    ]
}

Semua fitur add-on yang tersedia dapat dilihat di Service Fabric REST API Reference.

Dukungan kontainer

Untuk mengaktifkan dukungan kontainer untuk kontainer Windows Server dan kontainer Hyper-V untuk kluster mandiri, fitur add-on DnsService harus diaktifkan.

Langkah berikutnya

Setelah Anda memiliki file ClusterConfig.json lengkap yang dikonfigurasi sesuai dengan pengaturan kluster mandiri Anda, Anda dapat menyebarkan kluster Anda. Ikuti langkah-langkah dalam Membuat kluster Service Fabric mandiri.

Jika Anda memiliki kluster berdiri sendiri yang diterapkan, Anda juga dapat meningkatkan konfigurasi kluster mandiri.

Pelajari cara memvisualisasikan kluster Anda dengan Service Fabric Explorer.