Gambaran umum arsitektur pengelola sumber daya klaster

Service Fabric Cluster Resource Manager adalah layanan sentral yang berjalan di klaster. Ini mengelola status layanan yang diinginkan dalam klaster, terutama yang berkaitan dengan konsumsi sumber daya dan aturan penempatan apa pun.

Untuk mengelola sumber daya di klaster Anda, Service Fabric Cluster Resource Manager harus memiliki beberapa informasi:

  • Layanan mana yang saat ini ada
  • Konsumsi sumber daya setiap layanan saat ini (atau default)
  • Kapasitas klaster yang tersisa
  • Kapasitas Node dalam klaster
  • Jumlah sumber daya yang dikonsumsi pada setiap Node

Konsumsi sumber daya layanan tertentu dapat berubah dari waktu ke waktu, dan layanan biasanya memperhatikan lebih dari satu jenis sumber daya. Di berbagai layanan, mungkin ada sumber daya fisik dan fisik nyata yang terukur. Layanan dapat melacak metrik fisik seperti memori dan konsumsi disk. Lebih umum, layanan mungkin peduli dengan metrik logis - hal-hal seperti "WorkQueueDepth" atau "TotalRequests". Metrik logis dan fisik dapat digunakan dalam klaster yang sama. Metrik dapat dibagikan di banyak layanan atau khusus untuk layanan tertentu.

Pertimbangan lain

Pemilik dan operator klaster dapat berbeda dari penulis layanan dan aplikasi, atau setidaknya adalah orang yang sama yang mengenakan topi yang berbeda. Ketika Anda mengembangkan aplikasi Anda, Anda tahu beberapa hal tentang apa yang diperlukan. Anda memiliki perkiraan sumber daya yang akan dikonsumsi dan bagaimana berbagai layanan harus disebarkan. Misalnya, tingkat web perlu berjalan pada Node yang terpapar ke Internet, sementara layanan database tidak boleh. Sebagai contoh lain, layanan web mungkin dibatasi oleh CPU dan jaringan, sementara layanan tingkat data lebih mementingkan memori dan konsumsi disk. Namun, orang yang menangani insiden situs langsung untuk layanan tersebut dalam produksi, atau yang mengelola peningkatan ke layanan memiliki pekerjaan yang berbeda untuk dilakukan, dan membutuhkan alat yang berbeda.

Baik klaster maupun layanan bersifat dinamis:

  • Jumlah Node dalam klaster dapat tumbuh dan menyusut
  • Node dengan berbagai ukuran dan jenis dapat datang dan pergi
  • Layanan dapat dibuat, dihapus, dan mengubah alokasi sumber daya dan aturan penempatan yang diinginkan
  • Peningkatan atau operasi manajemen lainnya dapat bergulir melalui klaster pada aplikasi pada tingkat infrastruktur
  • Kegagalan dapat terjadi kapan saja.

Komponen Cluster Resource Manager dan aliran data

The Cluster Resource Manager harus melacak persyaratan setiap layanan dan konsumsi sumber daya oleh setiap objek layanan dalam layanan tersebut. Cluster Resource Manager memiliki dua bagian konseptual: agen yang berjalan pada setiap Node dan layanan yang toleran terhadap kesalahan. Agen pada setiap Node melacak laporan beban dari layanan, menggabungkannya, dan secara berkala melaporkannya. Layanan Cluster Resource Manager menggabungkan semua informasi dari agen lokal dan bereaksi berdasarkan konfigurasinya saat ini.

Mari kita lihat diagram berikut ini:

Diagram yang menunjukkan layanan Cluster Resource Manager menggabungkan semua informasi dari agen lokal dan bereaksi berdasarkan konfigurasinya saat ini.

Selama runtime, ada banyak perubahan yang dapat terjadi. Misalnya, jumlah sumber daya beberapa layanan mengkonsumsi perubahan, beberapa layanan gagal, dan beberapa Node bergabung dan meninggalkan klaster. Semua perubahan pada Node diagregasikan dan secara berkala dikirim ke layanan Cluster Resource Manager (1,2) di mana mereka diagregasikan lagi, dianalisis, dan disimpan. Setiap beberapa detik layanan melihat perubahan dan menentukan apakah ada tindakan yang diperlukan (3). Misalnya, mungkin terlihat bahwa beberapa Node kosong telah ditambahkan ke klaster. Akibatnya, itu memutuskan untuk memindahkan beberapa layanan ke Node tersebut. Cluster Resource Manager juga dapat melihat bahwa Node tertentu kelebihan beban, atau bahwa layanan tertentu telah gagal atau telah dihapus, membebaskan sumber daya di tempat lain.

Mari kita lihat diagram berikut dan lihat apa yang terjadi selanjutnya. Katakanlah Cluster Resource Manager menentukan bahwa perubahan diperlukan. Ini berkoordinasi dengan layanan sistem lain (khususnya Pengelola Failover) untuk membuat perubahan yang diperlukan. Kemudian perintah yang diperlukan dikirim ke Node yang sesuai (4). Misalnya, Resource Manager memperhatikan bahwa Node5 kelebihan beban, dan memutuskan untuk memindahkan layanan B dari Node5 ke Node4. Di akhir konfigurasi ulang (5), klaster terlihat seperti ini:

Arsitektur Resource Balancer

Langkah berikutnya

  • Cluster Resource Manager memiliki banyak opsi untuk menjelaskan klaster. Untuk mengetahui lebih lanjut tentang mereka, lihat artikel ini tentang menjelaskan klaster Service Fabric
  • Tugas utama Cluster Resource Manager adalah menyeimbangkan kembali klaster dan menegakkan aturan penempatan. Untuk informasi lebih lanjut tentang mengonfigurasi perilaku ini, lihat menyeimbangkan klaster Service Fabric Anda