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:
- 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. - Upstream (Klien ke Cockpit): Klien terhubung ke Cockpit API Gateway pada port
7771melalui 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_notifyPostgreSQL untuk merutekan pesan antar-instance.
Persyaratan Sistem
Pastikan host penerapan memenuhi persyaratan perangkat keras dan perangkat lunak berikut sebelum menginstal Cockpit:
| Komponen | Spesifikasi Minimum | Spesifikasi yang Direkomendasikan | Alasan Kebutuhan |
|---|---|---|---|
| Inti CPU | 2 vCPU | 4+ vCPU | Diperlukan untuk memproses permintaan API secara bersamaan dan mengurai data telemetri. |
| RAM Sistem | 4 GB | 8+ GB | Diperlukan untuk mengelola buffer koneksi WebSocket aktif dan proses concurrent. |
| Penyimpanan | 20 GB (SSD) | 50+ GB | Menyimpan catatan database, riwayat audit, dan data kinerja historis. |
| Database | PostgreSQL 15 atau lebih baru | Clustered PostgreSQL (Patroni) | Digunakan untuk penyimpanan status terpusat dan sinkronisasi transaksi. |
| Jaringan | 1 Gbps | 10 Gbps | Diperlukan untuk sinkronisasi antar-instance dan pengiriman metrik kinerja. |
| Node Vapor | Vapor 1.0.0 atau lebih baru | Vapor dengan konfigurasi TLS | Hypervisor target yang dikelola oleh pengontrol Cockpit. |