Penyedia Kubernetes
Penyedia Kubernetes memungkinkan Anda membuat klaster Kubernetes yang siap pakai dari Cockpit hanya dalam beberapa langkah terpandu. Cockpit membangun mesin virtual, memasang distribusi Kubernetes yang ringan dan sepenuhnya kompatibel (k3s), menyiapkan jaringan dan penyimpanan, lalu menyerahkan klaster yang bisa langsung Anda hubungkan menggunakan alat standar kubectl.
Anda tidak perlu menyiapkan server, menjalankan installer, atau menyalin perintah join secara manual. Anda cukup menentukan seberapa besar klaster yang diinginkan dan di mana ia berjalan, selebihnya Cockpit yang mengerjakan di latar belakang sementara Anda tetap bisa bekerja.
Untuk siapa panduan ini
Panduan ini ditujukan bagi mereka yang ingin menjalankan klaster Kubernetes — tim aplikasi, operator platform, dan administrator. Fokusnya pada apa yang Anda lakukan di antarmuka Cockpit dan cara memakai klaster setelahnya.
Sebelum memulai
Dua hal harus tersedia sebelum klaster pertama Anda. Jika administrator sudah menyiapkan lingkungannya, Anda bisa langsung ke Membuat klaster.
- Templat klaster. Cockpit mengkloning setiap node dari citra templat Ubuntu yang sudah disiapkan. Biasanya ini sudah disediakan untuk Anda dan muncul otomatis sebagai pilihan di wizard.
- Jaringan yang sesuai. Setiap node dalam klaster harus dapat menjangkau node lain dan menjangkau internet (untuk mengunduh komponen Kubernetes saat boot pertama). Lihat Memilih jaringan untuk cara memilih yang tepat.
Membuat klaster
- Pada pohon inventaris di sebelah kiri, klik kanan Cluster Anda.
- Pilih Kubernetes → New Cluster.
- Wizard Penyediaan Kubernetes akan terbuka dengan lima langkah singkat.
Setelah wizard selesai, Cockpit mulai membangun klaster di latar belakang. Anda boleh menutup wizard dan memantau kemajuannya di panel Tasks. Klaster muncul di inventaris dan berpindah dari provisioning ke active saat siap digunakan.
Langkah 1 — Identitas & Versi
| Kolom | Fungsinya |
|---|---|
| Nama Klaster | Nama yang mudah dikenali untuk klaster. Dipakai di inventaris dan pada berkas konfigurasi yang diunduh. |
| Deskripsi | Catatan opsional untuk referensi Anda sendiri. |
| Jaringan | Jaringan virtual tempat node terhubung. Lihat Memilih jaringan. |
| Versi Kubernetes | Versi k3s yang akan dipasang. Daftar selalu diperbarui untuk Anda; pilih yang terbaru kecuali ada alasan lain. |
| Plugin Jaringan (CNI) | Cara pod saling berkomunikasi. Lihat Plugin jaringan. Biarkan pada Flannel jika ragu. |
Langkah 2 — Control Plane
Control plane adalah "otak" klaster. Pilih seberapa tangguh ia harus dibuat:
- Tunggal (1 node) — Paling sederhana dan ringan. Cocok untuk pengembangan dan pengujian. Jika node satu-satunya ini hilang, klaster tidak tersedia hingga pulih.
- Ketersediaan Tinggi / High Availability (3 node) — Direkomendasikan untuk produksi. Klaster tetap berjalan meski salah satu node control plane gagal.
Anda juga mengatur CPU, Memori, Datastore, dan Ukuran Disk untuk setiap node control plane, serta pilihan Penempatan (Placement):
- Auto-Distribute (direkomendasikan) — Cockpit menyebar ketiga node HA ke tiga host fisik berbeda secara otomatis, sehingga kegagalan satu host tidak menjatuhkan seluruh control plane.
- Manual — Anda memilih sendiri host mana yang menjalankan tiap node.
Langkah 3 — Node Pekerja (Worker)
Worker menjalankan aplikasi Anda yang sebenarnya. Tentukan berapa jumlah awalnya serta CPU, Memori, Datastore, dan Ukuran Disk untuk masing-masing. Jumlah worker bisa Anda ubah kapan saja nanti — lihat Menskalakan klaster.
Penempatan bekerja sama seperti control plane: Auto-Distribute menyeimbangkan worker antar-host, atau gunakan Manual untuk menyematkan worker ke host tertentu (berguna bila host tertentu punya perangkat keras khusus seperti GPU).
Langkah 4 — Akses & Penyimpanan
- Kunci Publik SSH — Opsional. Tempelkan kunci publik di sini bila Anda ingin akses SSH langsung ke VM node untuk pemecahan masalah. Ini tidak wajib untuk memakai klaster.
- Tingkat Penyimpanan (CSI) — Pilih cara aplikasi memperoleh penyimpanan permanen. Anda boleh mengaktifkan lebih dari satu. Lihat Penyimpanan untuk aplikasi Anda.
Langkah 5 — Tinjau & Buat
Tinjau ringkasannya — ukuran klaster, sumber daya yang dipakai, dan host mana yang akan menjalankan tiap node. Klik Provision untuk memulai. Wizard menutup dan sebuah tugas dimulai.
Memilih jaringan
Jaringan yang Anda pilih pada Langkah 1 paling menentukan keberhasilan pembentukan klaster, jadi perlu dipertimbangkan sejenak.
Setiap node harus berada pada jaringan yang sama dan terjangkau, mendapat alamat IP secara otomatis (DHCP), dan menjangkau internet selama proses penyiapan. Dua situasi umum:
- Jaringan bersama/routed yang menjangkau semua host — Node bisa tersebar di beberapa host fisik dan tetap saling berbicara. Ini pilihan tepat untuk klaster High Availability yang harus bertahan dari kegagalan host.
- Jaringan NAT lokal-host — Jaringan jenis ini hanya berada di satu host. Saat Anda memilihnya, Cockpit otomatis menjaga semua node klaster tetap di host tersebut agar bisa berkomunikasi. Ini sepenuhnya wajar untuk pengembangan atau klaster mandiri, tetapi berarti nasib klaster mengikuti host itu.
WARNING
Hindari jaringan terisolasi yang hanya menghubungkan VM pada host yang sama tanpa pengalamatan bersama antar-host, serta jaringan tanpa akses internet. Node pada jaringan seperti itu tidak dapat menemukan satu sama lain atau mengunduh komponen Kubernetes, dan klaster tidak akan selesai disediakan.
Jika Anda ragu jaringan mana yang harus dipakai, tanyakan kepada administrator jaringan mana yang diperuntukkan bagi Kubernetes.
Plugin jaringan (CNI)
Plugin jaringan mengatur cara pod berkomunikasi dan apakah Anda dapat menerapkan kebijakan keamanan jaringan. Anda memilihnya sekali, di Langkah 1.
| Plugin | Paling cocok untuk | Catatan |
|---|---|---|
| Flannel (bawaan) | Sebagian besar klaster, pengembangan, penyiapan sederhana | Ringan dan andal. Tanpa kebijakan jaringan. |
| Calico | Produksi dengan isolasi antar-tenant | Menambahkan dukungan NetworkPolicy Kubernetes untuk mengontrol lalu lintas antar-pod. |
| Cilium | Jaringan berperforma tinggi dan canggih | Berbasis eBPF, dengan kebijakan L3–L7 yang kaya serta visibilitas lalu lintas. |
Jika tidak ada kebutuhan khusus, Flannel adalah pilihan aman.
Penyimpanan untuk aplikasi Anda
Aplikasi yang perlu menyimpan data (basis data, unggahan berkas, dan sebagainya) meminta penyimpanan melalui tingkat penyimpanan (storage tier). Aktifkan tingkat yang Anda butuhkan di Langkah 4; Anda boleh menyalakan lebih dari satu dan memilih per aplikasi mana yang dipakai.
| Tingkat | Yang Anda dapatkan | Kapan digunakan |
|---|---|---|
| Local Path (aktif secara bawaan) | Penyimpanan cepat pada node tempat pod berjalan | Penyimpanan sederhana dan berkecepatan tinggi. Data tetap di satu node, jadi tidak tersedia bila pod berpindah ke node lain. |
| Bersama (NFS) | Penyimpanan yang bisa dipakai banyak pod sekaligus, tersedia lintas node | Saat pod perlu berbagi berkas, atau tetap menyimpan datanya ketika berpindah antar-node. |
| Replikasi (Longhorn) | Penyimpanan blok dengan ketersediaan tinggi, disalin antar-node | Beban kerja stateful seperti basis data yang harus bertahan dari kegagalan node. |
Untuk Bersama (NFS), Anda bisa menunjuk datastore NFS yang sudah terdaftar di Cockpit atau memasukkan alamat server NFS eksternal. Cockpit memeriksa lebih dulu bahwa server dapat dijangkau sebelum memulai, sehingga salah ketik ketahuan sejak awal, bukan di tengah proses penyediaan.
Menghubungi klaster Anda
Setelah status klaster menjadi active, Anda dapat terhubung dengan kubectl, alat baris perintah standar Kubernetes.
Buka halaman detail klaster dan klik Download Kubeconfig. Cockpit memberikan berkas siap pakai dengan alamat server yang sudah terisi dengan benar.
Simpan lalu arahkan
kubectlkepadanya:bashmkdir -p ~/.kube mv ~/Downloads/kubeconfig-klaster-saya.yaml ~/.kube/config-klaster-saya chmod 600 ~/.kube/config-klaster-saya export KUBECONFIG=~/.kube/config-klaster-sayaPastikan berfungsi:
bashkubectl get nodesAnda akan melihat node control plane dan worker tercantum sebagai Ready.
TIP
Agar tidak perlu mengatur KUBECONFIG setiap kali, tambahkan baris export ke profil shell Anda (~/.bashrc atau ~/.zshrc).
Menskalakan klaster
Anda dapat menambah atau mengurangi jumlah node worker kapan saja, tanpa membangun ulang klaster.
- Buka klaster dan cari pool node worker.
- Tetapkan jumlah worker yang diinginkan yang baru lalu konfirmasi.
Menambah (scale up) akan membuat VM worker baru dan otomatis menggabungkannya ke klaster. Saat node baru menampilkan status Ready, ia mulai menerima beban kerja.
Mengurangi (scale down) dilakukan secara halus: sebelum sebuah node dihapus, Cockpit melakukan drain — memindahkan beban kerja yang sedang berjalan ke node yang tersisa — sehingga aplikasi tetap berjalan. Baru setelah itu VM dihapus dan sumber dayanya dibebaskan.
Bila sebuah node gagal ditambahkan
Jika worker baru tidak dapat dibuat (misalnya host yang dipilih sedang kehabisan kapasitas), Cockpit membersihkan node yang belum selesai secara otomatis dan menyesuaikan pool ke jumlah yang benar-benar tercapai. Cukup jalankan scale up lagi untuk mencoba kembali — Anda tidak akan ditinggali node setengah jadi.
Memutakhirkan klaster
Cockpit melakukan pemutakhiran bergulir (rolling upgrade), memindahkan klaster ke versi Kubernetes yang lebih baru satu node pada satu waktu agar aplikasi Anda tetap tersedia.
- Buka klaster dan pilih Upgrade.
- Pilih versi tujuan dari daftar.
- Konfirmasi. Cockpit memutakhirkan control plane lebih dulu, lalu worker, satu node pada satu waktu.
Selama pemutakhiran, tiap node di-drain, diperbarui, dan dikembalikan bertugas sebelum node berikutnya dimulai. Anda dapat mengikuti kemajuannya di panel Tasks.
Memantau kesehatan klaster
Setelah klaster menjadi active, Cockpit terus mengawasinya dan menampilkan status kesehatan pada halaman klaster:
- Healthy (Sehat) — Semua node ada dan Ready.
- Degraded (Menurun) — Satu atau lebih node tidak Ready (misalnya node dihentikan atau kehilangan jaringan). Klaster masih berjalan tetapi kapasitas atau ketangguhannya berkurang.
Status kesehatan diperbarui otomatis saat node pulih atau gagal, sehingga Anda bisa langsung tahu apakah perlu perhatian.
Pemecahan masalah
Klaster macet di "provisioning" dan tak pernah menjadi active. Penyebab tersering adalah jaringan. Pastikan jaringan yang Anda pilih memberi setiap node alamat IP secara otomatis dan memiliki akses internet. Jika node tersebar di beberapa host, pastikan jaringannya benar-benar menjangkau host-host tersebut. Lihat Memilih jaringan.
Sebuah node berstatus "NotReady" atau klaster "Degraded". Periksa apakah VM node tersebut sedang berjalan (mungkin dihentikan, atau host-nya mati). Setelah VM kembali menyala dan tersambung ke jaringan, node bergabung kembali dan status kesehatan pulih ke Healthy dengan sendirinya.
kubectl tidak bisa terhubung setelah kubeconfig diunduh. Pastikan KUBECONFIG mengarah ke berkas yang diunduh dan mesin Anda dapat menjangkau alamat node control plane di jaringan. Unduh ulang kubeconfig jika alamat klaster berubah.
Aplikasi kehilangan datanya setelah pod berpindah ke node lain. Ini terjadi pada tingkat penyimpanan Local Path, yang menyimpan data di satu node saja. Untuk data yang harus mengikuti aplikasi, gunakan tingkat Bersama (NFS) atau Replikasi (Longhorn). Lihat Penyimpanan untuk aplikasi Anda.
Topik terkait
- Distributed Resource Scheduler (DRS) & Ketersediaan Tinggi — cara Cockpit menempatkan dan menyeimbangkan VM node antar-host.
- Jaringan Virtual — jaringan tempat node klaster Anda terhubung.
- Penyimpanan & Datastore — datastore bersama yang memungkinkan klaster berjalan lintas host.