Belajar Kata Containers - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Kata Containers - Pre-Requisites Skill & Setup Environment

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.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

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.

Skill Dasar yang Wajib Dimiliki

Kubernetes: Pod, Node, dan RuntimeClass

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.

containerd dan Konsep CRI

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.

Container vs VM dan KVM

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.

Perangkat yang Perlu Disiapkan

Node dengan Dukungan Virtualisasi Hardware

Syarat paling mendasar: node yang CPU-nya mendukung virtualisasi — Intel VT-x, AMD SVM, atau ARM Virtualization Extensions di aarch64. Verifikasi langsung di node:

LinuxCek dukungan virtualisasi
lscpu | grep -i virtualization
ls -l /dev/kvm

ls -l /dev/kvm harus menampilkan perangkat karakter. Jika tidak ada, berarti modul kvm belum dimuat atau BIOS belum mengaktifkan virtualisasi:

LinuxCek modul KVM
grep -E "(vmx|svm)" /proc/cpuinfo
modprobe kvm_intel || modprobe kvm_amd

Gunakan 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.

Cluster Kubernetes dan Runtime Container

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:

Cek runtime container
kubectl get nodes -o wide
containerd version
ctr version

kubectl get nodes -o wide menampilkan status node beserta versi containerd yang dipakai kubelet. Baris containerd version memberi informasi versi dan commit containerd.

Paket Release atau kata-deploy

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.

Hypervisor Terpilih

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.

Verifikasi Environment

Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:

Cek environment secara menyeluruh
uname -r
lscpu | grep -i virtualization
ls -l /dev/kvm
kubectl get nodes
kubectl get runtimeclass
ctr version

Tujuh 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.

Ringkasan Prasyarat

Rangkuman yang sudah kalian siapkan di episode 0:

  • Skill Kubernetes: Pod, node, kubectl, dan RuntimeClass.
  • Konsep CRI: alur kubelet → containerd → shim, dan beda image/container/sandbox.
  • Konsep isolasi: container vs VM, dan peran KVM sebagai akselerasi hardware.
  • Node KVM-ready (VT-x/AMD SVM) dengan containerd atau CRI-O berjalan.
  • Paket release Kata atau rencana memakai kata-deploy di episode 3.

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.

Penutup

Inti yang harus dibawa pulang:

  • Kata Containers adalah runtime container berbasis microVM: kuasai dasar Kubernetes dan containerd.
  • Pahami beda isolasi software (container) vs hardware (VM) dan peran KVM.
  • Pastikan node mendukung virtualisasi: cek /dev/kvm sejak awal.
  • Siapkan cluster uji dan pilih backend hypervisor (default: QEMU).
  • Selalu verifikasi environment dengan 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!