Pengaturan Layanan
Tab Settings layanan berisi cara layanan dibangun dan dijalankan. Save menyimpan perubahan; perubahan berlaku pada deploy berikutnya, jadi klik Redeploy saat Anda siap. Variabel punya tab sendiri (Variabel Lingkungan), begitu pula domain dan port (Networking).
Nama, hostname, dan ID
- Service Name ditampilkan di konsol. Mengganti nama tidak mengubah apa pun yang berjalan.
- Private hostname adalah nama yang dipakai layanan lain di proyek untuk menjangkaunya,
<hostname>.zenavo.internal(Jaringan Privat). Huruf kecil, angka, dan tanda hubung, diawali huruf. Perubahan berlaku pada deploy berikutnya; perbarui apa pun yang memakai alamat lama. - Service ID bersifat permanen dan tidak pernah dipakai ulang: volume, log, dan rute API memakainya. Salin dari sini untuk API atau CLI.
File konfigurasi
Configs → Open Config Editor memasang file ke dalam kontainer, seperti konfigurasi Nginx atau file pengaturan JSON, tanpa mengubah image. Untuk setiap file, atur:
- Mount path, path lengkap file di kontainer, misalnya
/etc/nginx/conf.d/default.conf. - Mode, izin file dalam oktal (
0644secara bawaan). - Isinya.
- Replace
${VARIABLE}references with the service's variables, untuk mengisi nilai dari Variabel Lingkungan saat layanan di-deploy, sehingga rahasia tetap berada di Variables.
File konfigurasi disimpan terenkripsi, seperti variabel, dan ditulis ke server sebagai Secret Kubernetes. Di dalam kontainer file ini read-only: untuk file yang diubah aplikasi dan harus dipertahankan, gunakan volume.
Sumber dan build
Untuk layanan yang dibangun Zenavo, bagian Source dan Build berisi repositori dan branch, Root directory, Dockerfile, Auto deploy, Watch paths, Build arguments, dan zbpack options. Lihat GitHub, Rencana Build, dan Direktori Lokal. Layanan yang menjalankan image Docker menampilkan image-nya dan tidak punya apa pun untuk dibangun.
Perintah start
Timpa apa yang dijalankan kontainer, tanpa mengubah image:
| Field | Menimpa | Contoh |
|---|---|---|
| Startup Command (ENTRYPOINT) | ENTRYPOINT image | docker-entrypoint.sh |
| Arguments (CMD) | CMD image, diteruskan ke entrypoint | npm run start:prod |
Kosongkan field untuk memakai bawaan image. Nilai dijalankan langsung, tidak lewat shell: beri tanda kutip pada bagian yang berisi spasi, dan untuk &&, |, atau $VARIABLES tulis sh -c "…", misalnya sh -c "npx prisma migrate deploy && node server.js".
Health check dan batas crash
Health Check menentukan kapan instance baru siap menerima trafik; lihat Health Check.
Automatic Restart After Crashes Attempts adalah batas crash: berapa kali satu instance boleh restart sebelum layanan ditangguhkan. -1 (bawaan) restart tanpa henti; 0 menangguhkan setelah crash pertama. Layanan yang ditangguhkan mengirim notifikasi Service suspended.
Batas sumber daya
Secara bawaan, layanan boleh memakai seluruh CPU dan memori server. Agar satu layanan tidak menghabiskan sumber daya layanan lain di server yang sama, atur batas per instance:
- CPU (m): millicore;
1000adalah satu core,500setengah core. Layanan yang mencapai batasnya diperlambat, tidak dihentikan. - Memory (Mi): mebibyte. Layanan yang melampauinya dihentikan dan di-restart (kehabisan memori), yang dihitung dalam batas crash-nya.
Kosongkan field untuk tanpa batas. Atur memori dengan selisih yang cukup di atas pemakaian normal layanan: tab Usage layanan menampilkannya (Metrik).
Replika
Replicas menjalankan beberapa instance sebuah layanan, hingga 20, di server proyek. Trafik dibagi ke instance yang siap, dan deployment menggantinya satu per satu, sehingga layanan tetap melayani bila satu instance crash atau diganti.
- Replika berjalan di server yang sama, jadi melindungi dari proses yang crash, bukan dari server yang mati.
- Layanan dengan volume tidak bisa memakai lebih dari satu replika, karena volume tidak bisa dibagi antar-instance.
- Setiap replika punya batas sumber daya di atas, dan memorinya sendiri: simpan sesi, unggahan, dan cache di database, Redis, atau object storage, bukan di dalam proses.
Tangguhkan dan hapus
Di Danger Zone:
- Suspend Service menghentikannya; layanan tidak bisa dijangkau sampai Anda Resume Service. Konfigurasi, domain, dan volume tetap ada. Lihat Rollback & Penangguhan.
- Delete Service menghapusnya dari proyek setelah Anda mengetik namanya. Layanan berhenti pada deploy berikutnya (Deploy all di Settings proyek). Volume-nya tetap di server sampai proyek dihapus. Layanan yang bergantung padanya tidak lagi menunggunya mulai.
Di manifest
Pengaturan yang sama adalah field layanan di manifest proyek (Settings → Advanced → Edit JSON, atau API):
{
"name": "web",
"hostname": "web",
"entrypoint": ["docker-entrypoint.sh"],
"command": ["npm", "run", "start:prod"],
"configs": [{ "path": "/app/config.json", "content": "{\"apiUrl\": \"${API_URL}\"}", "mode": 420, "envsubst": true }],
"crash_limit": 5,
"cpus": 0.5,
"memory_mb": 512,
"replicas": 2
}mode dalam JSON berupa desimal (420 adalah 0644); cpus dalam satuan core.