Episode ini membedah peran Kata agent di dalam guest: mengelola container, exec, mount, dan signal. Kalian juga memahami dua strategi image pull — lewat snapshotter di host lalu di-mount ke guest, versus pull langsung di dalam guest — beserta trade-off masing-masing.

Di episode 2 kalian mengenal Kata agent sebagai proses pertama yang lahir di dalam guest. Episode 9 mengupas perannya secara mendalam: apa saja yang sebenarnya dia lakukan, bagaimana ia mengelola container di dalam microVM, dan bagaimana image sampai ke guest. Ini adalah episode yang menjelaskan mengapa Kata terasa seperti "container", padahal di belakangnya ada mesin virtual.
Pemahaman tentang Kata agent juga praktis: ketika kubectl exec berperilaku aneh atau image gagal ditemukan di guest, akar masalahnya biasanya ada di lapisan agent ini.
Saat microVM boot, guest kernel menjalankan proses pertama: Kata agent. Ia adalah analog containerd di dalam guest — satu-satunya proses yang diberi kewenangan mengelola container di dalam microVM. Semua permintaan dari host (lewat shim) masuk ke agent melalui vsock.
Tugas utama Kata agent:
exec (interactive shell ke container di guest).Ada dua gaya agent dalam mengelola container di guest:
Perbedaan ini penting untuk dipahami karena memengaruhi overhead: container di dalam guest yang dibuat oleh agent-native tidak menumpuk proses ekstra, sementara runc-in-guest menambah satu lapisan proses.
kubectl exec adalah alur yang menarik untuk dibedah. Perintah ini tidak langsung menyentuh proses guest — ia melewati beberapa lapisan:
kubectl exec dan meneruskan ke containerd.Konsekuensinya: kubectl exec di pod Kata sedikit lebih lambat daripada pod runc karena melewati jalur vsock. Untuk terminal interaktif, pastikan TTY diaktifkan:
kubectl exec -it kata-demo -- shkubectl exec -it kata-demo -- sh masuk ke shell container di dalam guest. Semua perintah yang dijalankan berjalan di guest, bukan di host — kalian bisa membuktikannya dengan melihat proses yang berjalan.
Strategi default: containerd menarik image di host, lalu Kata menyediakan rootfs image ke guest. Persis seperti yang kita bahas di episode 8 — rootfs menjadi virtio-blk device atau dibagikan via virtio-fs.
Keuntungan strategi ini:
Kekurangannya: rootfs perlu dipindahkan host → guest lewat virtio, dan ada biaya pemrosesan snapshotter tambahan. Untuk image besar, waktu ini terasa di startup pod.
Alternatifnya, guest menarik image langsung dari registry — melewati containerd host sepenuhnya. Kata agent melakukan pull di dalam guest dan menyimpan image di disk guest.
Keuntungannya: guest punya salinan image mandiri, dan rootfs tidak perlu dipindahkan. Kekurangannya: cache image host tidak dipakai, pull bisa lebih lambat (registry diakses guest), dan setiap pod menarik image sendiri jika tidak di-cache.
Kebanyakan deployment memakai strategi 1 karena memanfaatkan ekosistem containerd dan cache yang sudah ada. Strategi 2 relevan untuk environment dengan isolasi yang sangat ketat atau kebutuhan image tidak meninggalkan jejak di host.
Memeriksa image yang tersedia di node:
crictl imagescrictl images menampilkan image yang sudah ditarik containerd di host. Ini juga cara cepat memverifikasi bahwa image pod Kata benar-benar ada di host sebelum didiagnosis lebih lanjut.
Ketika pod Kata gagal karena image, urutan diagnosis yang biasa dilakukan:
kubectl describe pod — lihat event dan pesan error.crictl images — pastikan image sudah ditarik di host.crictl inspect <container-id> — periksa status container di sisi CRI./var/log/kata-containers/ — jika error di lapisan guest.Kita akan membahas debugging menyeluruh di episode 12, tapi satu prinsip penting sudah bisa dipetik sekarang: masalah image biasanya terlihat dulu di lapisan containerd sebelum menyentuh guest. Selalu mulai diagnosis dari sana.
Tip
Jika kalian memakai registry private dengan image yang sudah ditarik di host tapi pod Kata tetap gagal, curigai isolasi pull: pod Kata membutuhkan akses ke rootfs image di host. Pastikan snapshotter dan konfigurasi containerd untuk runtime Kata konsisten dengan runtime biasa.
Inti yang harus dibawa pulang:
crictl images memverifikasi image di host sebelum diagnosa lebih lanjut.kubectl exec melewati jalur shim → vsock → agent → guest.Di episode 10 selanjutnya kita akan membahas GPU & device passthrough — VFIO passthrough untuk workload AI/ML, peran NRI (Node Resource Interface), integrasi autoscaling KEDA, dan bagaimana resource limits diterapkan di dalam VM.