Belajar Kata Containers - Instalasi & Setup
Episode 3 of 23

Belajar Kata Containers - Instalasi & Setup

Episode ini memandu instalasi Kata Containers dengan tiga cara: release tarball, kata-deploy via Helm chart, dan build dari source. Kalian juga memverifikasi instalasi dengan kata-runtime check serta kata-runtime kata-check untuk memastikan KVM dan hypervisor siap digunakan.

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

Pendahuluan

Ini saatnya aksi nyata pertama: menginstall Kata Containers. Di episode 3 kita akan menempuh tiga jalur instalasi — release tarball untuk node tunggal, kata-deploy untuk seluruh cluster Kubernetes, dan build dari source untuk kalian yang ingin memahami dalamnya. Lalu kita memverifikasi instalasi dengan kata-runtime check dan kata-runtime kata-check.

Episode 2 sudah memberi kalian peta arsitektur. Sekarang kita meletakkan komponen-komponennya ke node. Pastikan prasyarat episode 0 sudah terpenuhi — terutama /dev/kvm — karena tanpa akselerasi hardware, semua jalur instalasi akan berakhir di hypervisor yang tidak bisa boot.

Jalur 1: Release Tarball

Cara paling langsung untuk node tunggal adalah mengunduh release tarball dari halaman rilis resmi GitHub. Tarball berisi binary kata-runtime, containerd-shim-kata-v2, hypervisor, guest kernel, dan konfigurasi. Ambil versi stabil terbaru:

Unduh dan ekstrak release tarball
wget https://github.com/kata-containers/kata-containers/releases/download/4.0.0/kata-static-4.0.0-x86_64.tar.xz
tar -xvf kata-static-4.0.0-x86_64.tar.xz -C /

tar -xvf ... -C / mengekstrak seluruh komponen ke lokasi standar /usr/local/bin, /usr/share, dan /etc/kata-containers. Sesuaikan nama file dengan arsitektur kalian — x86_64, aarch64, ppc64le, atau s390x.

Perlu dicatat bahwa tarball mengekstrak ke direktori root — pastikan kalian memahami apa yang diinstall sebelum menjalankannya di node production. Untuk environment container, ekstrak ke direktori tersendiri lalu tambahkan ke PATH:

Ekstrak ke direktori khusus
mkdir -p /opt/kata
tar -xvf kata-static-4.0.0-x86_64.tar.xz -C /opt/kata
export PATH=/opt/kata/usr/local/bin:$PATH

Jalur 2: kata-deploy dengan Helm Chart

Untuk cluster Kubernetes dengan banyak node, instalasi manual tidak praktis. kata-deploy menyelesaikan masalah ini: ia menjalankan instalasi di setiap node secara otomatis, termasuk memasukkan konfigurasi ke containerd dan membuat RuntimeClass.

Cara modern memakainya adalah lewat Helm chart dari OCI registry resmi:

Install kata-deploy via Helm
helm install kata-deploy oci://ghcr.io/kata-containers/kata-deploy-charts/kata-deploy \
  --namespace kube-system \
  --set defaultRuntimes=kata

helm install kata-deploy oci://ghcr.io/kata-containers/kata-deploy-charts/kata-deploy menarik chart dari registry OCI resmi Kata dan men-deploy DaemonSet ke semua node. Opsi defaultRuntimes=kata mengatur runtime default yang dipakai cluster.

kata-deploy juga bisa dijalankan sebagai DaemonSet langsung dari manifest GitHub jika kalian tidak memakai Helm:

Install kata-deploy sebagai DaemonSet
kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml
kubectl -n kube-system get ds kata-deploy --wait

kubectl -n kube-system get ds kata-deploy --wait memblokir sampai semua node selesai menginstall Kata. Untuk menghapus kata-deploy nanti, gunakan kubectl delete ds kata-deploy — binary Kata di node tetap ada setelah DaemonSet dihapus.

Jalur 3: Build dari Source

Untuk memahami dalam-dalam atau menguji perubahan, build dari source. Kata memakai Yocto/Buildroot untuk membangun guest image, dan build system sendiri untuk runtime. Persyaratan umumnya: Go (untuk runtime klasik), Rust toolchain (untuk runtime-rs), dan dependency build:

Clone repository dan build
git clone https://github.com/kata-containers/kata-containers.git
cd kata-containers/src/runtime-rs
make
make install

make && make install di direktori src/runtime-rs membangun runtime Rust dan memasangnya ke sistem. Build dari source memakan waktu dan menuntut toolchain lengkap — untuk produksi, jalur 1 dan 2 jauh lebih praktis. Gunakan build dari source hanya jika kalian berkontribusi atau mengejar versi eksperimental.

Note

Tiga jalur instalasi melayani kebutuhan berbeda: tarball untuk node tunggal dan kontrol manual, kata-deploy untuk seluruh cluster, dan source build untuk pengembangan. Di produksi, kata-deploy (atau image node yang sudah berisi Kata) adalah pilihan paling umum.

Verifikasi Instalasi

Setelah menginstall, verifikasi bahwa seluruh komponen terpasang dengan benar. Perintah pertama yang harus dikuasai:

Cek runtime Kata Containers
kata-runtime version
kata-runtime check

kata-runtime version menampilkan versi runtime dan komponen build. kata-runtime check adalah perintah verifikasi menyeluruh: ia mengecek binary yang dibutuhkan, modul kernel, akselerasi hardware, dan kesiapan lingkungan. Output sehat akan menampilkan System is capable of running Kata Containers.

Perintah terkait yang lebih spesifik:

Cek capability hypervisor dan kernel
kata-runtime kata-check

kata-runtime kata-check mengecek apakah kernel host mendukung semua requirement Kata — termasuk fitur virtualisasi, modul, dan /dev/kvm. Jika ada komponen yang tidak lolos, outputnya menunjuk langsung ke item yang bermasalah, misalnya kernel host yang tidak mendukung fitur tertentu.

Konfigurasi Runtime Container

Agar Kubernetes bisa memakai Kata, containerd harus tahu bahwa ada runtime bernama Kata. Buka /etc/containerd/config.toml dan tambahkan blok runtimes untuk shim Kata:

Linux/etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata]
  runtime_type = "io.containerd.kata.v2"
  privileged_without_host_devices = true
  pod_annotations = ["io.katacontainers.*"]
 
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc]
  runtime_type = "io.containerd.runc.v2"

runtime_type = "io.containerd.kata.v2" memberitahu containerd bahwa runtime kata di-handle oleh containerd-shim-kata-v2. Setelah mengubah file ini, restart containerd: systemctl restart containerd. Kata-deploy melakukan konfigurasi ini otomatis saat berjalan.

Memverifikasi RuntimeClass

Setelah containerd mengenal runtime Kata, kita siapkan RuntimeClass di cluster. Perhatikan bahwa kata-deploy membuat RuntimeClass ini secara otomatis. Untuk setup manual:

RuntimeClass untuk Kata
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: kata
handler: kata

handler: kata harus cocok dengan nama runtime di konfigurasi containerd. RuntimeClass ini akan dipakai di episode 4 untuk menjalankan pod pertama kalian. Nama-nama RuntimeClass lain — kata-clh, kata-fc, kata-qemu-coco-dev — akan dibahas sesuai topik masing-masing.

Warning

Setelah mengubah /etc/containerd/config.toml, containerd harus di-restart agar konfigurasi baru terbaca. Jika kalian lupa restart, pod dengan RuntimeClass Kata akan gagal dengan error handler tidak dikenal.

Penutup

Inti yang harus dibawa pulang:

  • Release tarball untuk node tunggal; kata-deploy Helm chart untuk cluster penuh.
  • Helm chart resmi: oci://ghcr.io/kata-containers/kata-deploy-charts/kata-deploy.
  • Build dari source hanya untuk pengembangan, bukan produksi.
  • kata-runtime check dan kata-runtime kata-check memverifikasi kesiapan KVM dan hypervisor.
  • containerd perlu dikonfigurasi untuk mengenal runtime Kata lewat shim v2.
  • RuntimeClass kata menghubungkan pod dengan runtime Kata.

Di episode 4 selanjutnya kita akan menjalankan workload pertama di Kubernetes — memahami RuntimeClass Kata secara utuh (kata, kata-clh, kata-fc, kata-qemu-coco-dev), membuat pod dengan spec.runtimeClassName, dan memverifikasi bahwa proses aplikasi benar-benar berjalan di dalam microVM, bukan di host.