Skip to content

Memulai dengan Cockpit ​

Cockpit berfungsi sebagai gateway manajemen terpusat untuk platform virtualisasi Vapor. Panduan ini menguraikan arsitektur sistem, alur komunikasi, dan persyaratan sistem yang diperlukan untuk menerapkan Cockpit.


Terminologi Teknis ​

Administrasi virtualisasi melibatkan beberapa komponen infrastruktur inti berikut:

Referensi Terminologi

  • Hypervisor: Server host fisik yang menjalankan kernel virtualisasi (KVM/QEMU) yang dikelola oleh agen lokal (Vapor).
  • REST API: Antarmuka representational state transfer yang digunakan oleh klien untuk mengeksekusi perintah administratif dan mengambil status konfigurasi melalui HTTP.
  • WebSocket: Protokol koneksi dua arah yang persisten (full-duplex) untuk mengirimkan pembaruan peristiwa dan telemetri secara real-time dari server ke klien dengan overhead minimal.
  • PostgreSQL Advisory Lock: Penguncian database yang didefinisikan oleh aplikasi untuk mengoordinasikan manajemen host dan mencegah konflik split-brain pada penerapan multi-instance.
  • pg_notify: Saluran pemberitahuan asinkron dalam PostgreSQL yang digunakan untuk menyiarkan peristiwa ke seluruh instance Cockpit yang aktif.

Arsitektur Komunikasi ​

Cockpit bertindak sebagai gateway pusat antara administrator dan hypervisor Vapor fisik. Platform ini menerapkan model komunikasi dua arah:

  1. Downstream (Cockpit ke Vapor): Cockpit membangun koneksi aman ke agen host Vapor lokal pada port 7770. Saluran komunikasi ini digunakan untuk meminta properti perangkat keras, mengambil konfigurasi VM, dan mengalirkan peristiwa secara real-time.
  2. Upstream (Klien ke Cockpit): Klien terhubung ke Cockpit API Gateway pada port 7771 melalui HTTPS dan WebSocket. API Gateway mengautentikasi pengguna, memverifikasi hak akses peran, dan menyajikan konsol Web UI yang terintegrasi.
                  ┌────────────────────────────────┐
                  │          Cockpit Web UI        │
                  │       (Browser Web Klien)      │
                  └──────────────┬─────────────────┘
                                 │
                                 ▼ HTTPS / WebSockets (Koneksi Upstream)
                  ┌────────────────────────────────┐
                  │      Cockpit API Gateway       │
                  │   (Central Brain / Coordinator)│
                  └──────────────┬─────────────────┘
                                 │
         ┌───────────────────────┼───────────────────────┐
         ▼                       ▼                       ▼
 ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
 │   Vapor Host 1  │     │   Vapor Host 2  │     │   Vapor Host 3  │
 │  (TCP Port 7770)│     │  (TCP Port 7770)│     │  (TCP Port 7770)│
 └─────────────────┘     └─────────────────┘     └─────────────────┘

Komponen Inti Arsitektur ​

Arsitektur Cockpit terdiri dari beberapa layanan backend khusus:

  • Collector Service: Pekerja latar belakang (background daemon) yang memelihara koneksi persisten ke semua agen host Vapor yang terdaftar. Layanan ini mencocokkan status host, memproses sampel telemetri, dan memperbarui database bersama.
  • Database PostgreSQL: Penyimpanan konfigurasi bersama. Database ini menyimpan definisi pengguna, pemetaan peran, metadata registrasi host, dan metrik sistem.
  • PostgreSQL Advisory Locks: Digunakan dalam pengaturan multi-instance untuk memastikan saling pengecualian (mutual exclusion). Setiap host Vapor dikunci oleh satu instance collector; jika instance aktif gagal, instance standby akan mengambil alih kunci dan mengelola host tersebut.
  • WebSocket Event Hub: Broker pesan real-time. Layanan ini menerima peristiwa dari Collector Service dan menyiarkannya ke browser yang terhubung. Penerapan multi-instance menggunakan pg_notify PostgreSQL untuk merutekan pesan antar-instance.

Persyaratan Sistem ​

Pastikan host penerapan memenuhi persyaratan perangkat keras dan perangkat lunak berikut sebelum menginstal Cockpit:

KomponenSpesifikasi MinimumSpesifikasi yang DirekomendasikanAlasan Kebutuhan
Inti CPU2 vCPU4+ vCPUDiperlukan untuk memproses permintaan API secara bersamaan dan mengurai data telemetri.
RAM Sistem4 GB8+ GBDiperlukan untuk mengelola buffer koneksi WebSocket aktif dan proses concurrent.
Penyimpanan20 GB (SSD)50+ GBMenyimpan catatan database, riwayat audit, dan data kinerja historis.
DatabasePostgreSQL 15 atau lebih baruClustered PostgreSQL (Patroni)Digunakan untuk penyimpanan status terpusat dan sinkronisasi transaksi.
Jaringan1 Gbps10 GbpsDiperlukan untuk sinkronisasi antar-instance dan pengiriman metrik kinerja.
Node VaporVapor 1.0.0 atau lebih baruVapor dengan konfigurasi TLSHypervisor target yang dikelola oleh pengontrol Cockpit.