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.