Sebelum menyentuh Kata Containers, kalian perlu menguasai dasar Kubernetes (Pod, node, RuntimeClass), containerd, dan konsep isolasi container versus VM. Di episode ini kalian menyiapkan node dengan dukungan KVM, menginstall tooling Kata, serta memverifikasi bahwa seluruh environment siap untuk mengikuti series ini.

Selamat datang di series Belajar Kata Containers! Series ini akan membawa kalian menguasai Kata Containers — container runtime berbasis microVM yang memberikan "the speed of containers, the security of VMs" di Kubernetes. Total ada 23 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.
Sebelum menjalankan perintah kata-runtime pertama kalian, ada beberapa skill dasar dan perangkat keras yang wajib disiapkan. Mengapa ini penting? Kata Containers berbeda dari runc: setiap pod yang berjalan di atasnya bukan sekadar proses yang diisolasi namespace, melainkan sebuah virtual machine kecil yang harus didukung oleh hypervisor di node. Tanpa KVM, tanpa containerd yang terkonfigurasi benar, dan tanpa pemahaman RuntimeClass, semua episode berikutnya akan terasa seperti memegang alat tanpa tahu cara menggunakannya.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan node dengan dukungan KVM, menginstall tooling Kata, dan memverifikasi environment untuk pertama kali.
Kalian wajib memahami objek dasar Kubernetes: Pod sebagai unit terkecil yang membungkus container, Node sebagai mesin tempat pod dijadwalkan, dan kubectl sebagai alat kontrol utama. Yang paling penting untuk series ini adalah RuntimeClass — objek Kubernetes yang menghubungkan sebuah pod dengan runtime tertentu. Di episode 4 kita akan memakai RuntimeClass untuk menyuruh Kubernetes menjalankan pod dengan Kata, bukan runc biasa.
Kata Containers terintegrasi lewat Container Runtime Interface (CRI) yang diimplementasikan oleh containerd maupun CRI-O. Pahami alur dasarnya: kubelet memanggil CRI, containerd menangani container, dan untuk pod Kata, containerd menyerahkan pembuatan sandbox kepada shim Kata. Kalian juga harus memahami perbedaan antara image, container, dan pod sandbox — konsep ini menjadi dasar arsitektur di episode 2.
Ini konsep yang paling krusial. Container berbagi kernel host dan diisolasi dengan namespace serta cgroups — ringan tapi batas isolasinya software. Virtual machine menjalankan kernel sendiri di atas hypervisor dan diisolasi di level hardware — lebih berat tapi batasnya tegas. Kata Containers menggabungkan keduanya: API container, tapi eksekusi berupa VM.
KVM (Kernel-based Virtual Machine) adalah modul kernel Linux yang memungkinkan hypervisor memanfaatkan ekstensi virtualisasi hardware. Kata memerlukan ini karena tanpa akselerasi hardware, microVM tidak bisa boot dalam hitungan ratusan milidetik.
Syarat paling mendasar: node yang CPU-nya mendukung virtualisasi — Intel VT-x, AMD SVM, atau ARM Virtualization Extensions di aarch64. Verifikasi langsung di node:
lscpu | grep -i virtualization
ls -l /dev/kvmls -l /dev/kvm harus menampilkan perangkat karakter. Jika tidak ada, berarti modul kvm belum dimuat atau BIOS belum mengaktifkan virtualisasi:
grep -E "(vmx|svm)" /proc/cpuinfo
modprobe kvm_intel || modprobe kvm_amdGunakan kvm-ok dari paket cpu-checker di Ubuntu, atau kvm-ok dari libvirt di distro lain. Untuk cluster cloud, pastikan tipe instance mendukung nested virtualization — tidak semua penyedia mengaktifkannya secara default.
Gunakan cluster Kubernetes lokal seperti k3s, kind, atau minikube untuk uji coba, atau node bare-metal dengan Kubernetes penuh. Pastikan containerd (atau CRI-O) terinstall dan CRI berjalan normal:
kubectl get nodes -o wide
containerd version
ctr versionkubectl get nodes -o wide menampilkan status node beserta versi containerd yang dipakai kubelet. Baris containerd version memberi informasi versi dan commit containerd.
Ada dua cara utama menyiapkan Kata di node. Yang pertama: unduh release tarball dari halaman rilis resmi yang berisi binary kata-runtime, containerd-shim-kata-v2, serta hypervisor dan guest kernel. Yang kedua: pakai kata-deploy — DaemonSet atau Helm chart yang mengotomatiskan instalasi ke semua node cluster sekaligus. Keduanya akan dibahas mendalam di episode 3.
Kata mendukung beberapa backend VMM: QEMU (default, kompatibilitas terluas), Cloud Hypervisor, Firecracker, dan Dragonball (built-in Rust). Untuk memulai, QEMU adalah pilihan paling aman. Episode 6 akan membahas kapan memilih masing-masing.
Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
uname -r
lscpu | grep -i virtualization
ls -l /dev/kvm
kubectl get nodes
kubectl get runtimeclass
ctr versionTujuh perintah di atas harus berhasil tanpa error. kubectl get runtimeclass akan kosong di awal — itu normal, karena RuntimeClass Kata akan dibuat di episode 4. Yang penting sekarang: node Ready, KVM terdeteksi, dan containerd merespons.
Warning
Kata Containers membutuhkan node dengan dukungan virtualisasi hardware yang aktif. VM di cloud murah atau node tanpa nested virtualization sering gagal dengan error "KVM is not available". Selalu verifikasi /dev/kvm sebelum melanjutkan ke episode berikutnya.
Rangkuman yang sudah kalian siapkan di episode 0:
Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 22 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
/dev/kvm sejak awal.kubectl, ctr, dan pemeriksaan KVM.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan Kata Containers — dari penggabungan Intel Clear Containers dan Hyper.sh runV pada Desember 2017, statusnya sebagai proyek OpenInfra, hingga masalah nyata yang diselesaikannya: kontainer yang berbagi kernel tidak cukup aman untuk workload untrusted. Pastikan node kalian sudah KVM-ready, karena perjalanan Belajar Kata Containers baru saja dimulai!