Episode ini membedah Hubble sebagai lapisan observability Cilium: cara mengaktifkan relay dan UI, membaca flow logs dengan hubble observe, melacak koneksi yang diizinkan, memverifikasi policy, dan menemukan traffic yang ter-drop. Kalian juga belajar memakai Hubble UI sebagai dashboard visual.

Policy yang kita buat di episode 6 perlu dibuktikan, dan itulah alasan utama keberadaan Hubble. Hubble adalah lapisan observability Cilium yang membaca flow logs langsung dari dataplane eBPF. Setiap koneksi yang melalui Cilium menghasilkan sebuah flow: siapa sumbernya, ke mana tujuannya, protokol apa, dan apa keputusan dataplane — diizinkan atau di-drop.
Episode 7 membahas cara mengaktifkan Hubble, membaca flow dengan hubble observe, memakai Hubble UI, dan yang paling penting: menjadikan flow logs sebagai bukti untuk memverifikasi policy dan menemukan traffic yang ter-drop.
Hubble tidak aktif secara default saat instalasi Cilium. Aktifkan lewat Cilium CLI dengan UI sekaligus:
cilium hubble enable --uicilium hubble enable --ui menginstall komponen Hubble relay dan Hubble UI. Relay mengumpulkan flow dari semua agent dan menyediakan API untuk CLI maupun UI. Proses ini memakan waktu beberapa menit hingga pod hubble-relay siap.
Jika memakai Helm, konfigurasi yang setara adalah hubble.relay.enabled=true dan hubble.ui.enabled=true. Apapun metodenya, pastikan semuanya siap sebelum lanjut:
kubectl get pods -n kube-system -l k8s-app=hubble-relay
kubectl get pods -n kube-system -l k8s-app=hubble-uikubectl get pods -n kube-system -l k8s-app=hubble-relay harus menampilkan relay dengan status Running sebelum kita memakai hubble CLI.
Setelah Hubble aktif, periksa status koneksi CLI ke relay:
hubble statushubble status menampilkan versi relay dan jumlah flow yang sedang ditangani. Jika menampilkan error, periksa port-forward atau konfigurasi koneksi.
Untuk melihat flow secara langsung, gunakan hubble observe:
hubble observe --since 5mhubble observe --since 5m menampilkan flow 5 menit terakhir dengan format: waktu, sumber, tujuan, protokol, dan verdict. Jika belum ada traffic, jalankan kembali curl antar pod dari episode 4 atau episode 6 untuk menghasilkan flow baru.
Satu baris flow log berisi informasi penting yang perlu kalian biasakan membaca:
FORWARDED berarti diizinkan, DROPPED berarti ditolak policy.Policy denied.Untuk flow yang lebih detail, format JSON memberikan semua field termasuk label:
hubble observe --since 10m --output jsonhubble observe --output json menghasilkan output lengkap yang cocok untuk diproses dengan jq atau pipeline otomatis — pola yang akan dipakai lagi saat observability production di episode 21.
Hubble UI menyediakan dashboard visual berbasis browser. Setelah port-forward, buka di browser:
cilium hubble ui --opencilium hubble ui --open melakukan port-forward ke Hubble UI dan membukanya di browser. Di dashboard kalian bisa melihat peta cluster, memfilter flow berdasarkan namespace, service, atau identity, dan mengamati pola traffic secara visual. UI memakai data dari relay yang sama, jadi informasi yang tampil konsisten dengan hubble observe.
Fungsi paling berharga Hubble untuk pengelola policy: menemukan traffic yang ditolak. Filter verdict sangat membantu:
hubble observe --verdict DROPPED --since 30mhubble observe --verdict DROPPED menampilkan hanya flow yang di-drop oleh dataplane, lengkap dengan alasan penolakan. Ini cara tercepat untuk menjawab pertanyaan klasik: "kenapa aplikasi saya tidak bisa saling terhubung?" — biasanya jawabannya ada di sini, bukan di log aplikasi.
Kombinasikan filter untuk mempercepat diagnosis:
hubble observe --verdict DROPPED --namespace defaulthubble observe --verdict DROPPED --namespace default mempersempit pencarian ke satu namespace. Pola ini akan menjadi refleks pertama kalian saat troubleshoot policy di episode 19.
Info
Hubble tidak menambah biaya pengumpulan data yang signifikan karena flow dihasilkan langsung di dataplane eBPF. Namun di cluster besar, simpan flow secara selektif ke metric atau log exporter untuk menghindari kebanjiran data — episode 21 akan membahas strateginya.
Inti yang harus dibawa pulang:
cilium hubble enable --ui mengaktifkan relay dan dashboard.hubble observe menampilkan flow; hubble status mengecek koneksi relay.cilium hubble ui --open.hubble observe --verdict DROPPED adalah pintu utama troubleshooting policy.Di episode 8 selanjutnya kita akan membahas kube-proxy replacement dan dasar service mesh — bagaimana Cilium mereplikasi ClusterIP, NodePort, dan LoadBalancer lewat eBPF dengan socket load balancing, session affinity, dan DSR, serta konfigurasi kube-proxy-replacement: strict dan kompatibilitas dengan cloud load balancer. Ini mengubah cara Service bekerja di cluster kalian secara fundamental.