Episode ini merangkum semua pelajaran sebelumnya menjadi blueprint production: perencanaan IPAM, kube-proxy replacement, encryption, observability dengan Hubble dan Prometheus, strategi upgrade, pipeline CI/CD dengan connectivity test, GitOps policy, sizing node, dan runbook incident.

Dua puluh episode membangun keterampilan dari nol. Episode 21 menempatkan semuanya dalam satu kerangka: bagaimana merancang arsitektur Cilium yang siap production. Bukan sekadar memasang Cilium, tapi merencanakan IPAM, kube-proxy replacement, encryption, observability, upgrade, dan operasional harian secara koheren.
Blueprint ini adalah hasil pengalaman menangani cluster riil. Setiap bagian — dari pilihan IPAM hingga runbook incident — punya alasan tersendiri dan saling berhubungan. Kalian tidak perlu menerapkan semuanya sekaligus, tetapi perlu tahu ke arah mana arsitektur harus tumbuh.
Satu prinsip yang berlaku untuk seluruh urutan di atas: dokumentasikan setiap keputusan beserta alasannya. Enam bulan kemudian, tim akan bertanya mengapa memilih direct routing alih-alih tunnel — dan jawabannya seharusnya bisa ditemukan di dokumentasi, bukan di ingatan. Keputusan arsitektur tanpa catatan adalah keputusan yang sulit dibatalkan.
Keputusan arsitektur paling baik dibuat sebelum workload masuk. Urutan yang disarankan:
cluster-pool atau Multi-Pool (episode 9).strict sejak awal (episode 8) untuk performa dan kesederhanaan.Contoh instalasi production yang menggabungkan keputusan tersebut:
helm upgrade cilium cilium/cilium \
--namespace kube-system \
--set kubeProxyReplacement=strict \
--set encryption.enabled=true \
--set encryption.type=wireguard \
--set ipam.mode=cluster-pool \
--set routing-mode=direct--set kubeProxyReplacement=strict dan opsi lain di atas adalah satu paket keputusan yang direplikasi di semua environment. Simpan nilai ini sebagai helm values file di repository GitOps (episode 18) agar konsisten antar cluster.
Production tanpa observability berarti berjalan buta. Dua lapis yang harus ada:
Aktifkan pengumpulan metrik Prometheus saat install:
helm upgrade cilium cilium/cilium \
--namespace kube-system \
--set prometheus.enabled=true \
--set operator.prometheus.enabled=trueprometheus.enabled=true membuat agent Cilium mengekspos metrik untuk di-scrape Prometheus. Metrik penting yang dipantau: jumlah endpoint, health agent, flow rate, dan paket ter-drop. Buat dashboard dan alert dari metrik ini — misalnya alert ketika persentase drop tiba-tiba naik.
Perubahan pada Cilium harus melewati gerbang kualitas yang sama seperti perubahan aplikasi. cilium connectivity test adalah gerbang utama:
steps:
- name: connectivity-test
run: |
cilium install --context staging --version 1.20.0
cilium connectivity test --context stagingcilium connectivity test --context staging menjalankan seluruh skenario koneksi terhadap cluster staging sebelum perubahan dibawa ke production. Pipeline ini mencegah konfigurasi yang rusak menyebar.
Sizing node juga masuk kategori operasional: cadangkan sumber daya untuk agent Cilium dan operator (biasanya beberapa persen dari node), dan pastikan kernel semua node memenuhi syarat eBPF sebelum bergabung ke cluster.
Selain connectivity test, sertakan juga validasi policy di pipeline: kubectl apply --dry-run=server untuk memastikan manifest policy valid sebelum diterapkan, dan pratinjau dengan kubectl diff untuk melihat perubahan yang akan terjadi. Ini mencegah kesalahan sintaks masuk ke cluster melalui jalur otomatis.
Upgrade rutin adalah bagian dari hidup. Pola yang disarankan:
cilium connectivity test sebelum production.Runbook incident minimal untuk Cilium:
hubble observe --verdict DROPPED (episode 19).cilium-dbg ipam list, tambah pool atau perluas mask.Salah satu keputusan yang paling sering ditunda adalah menghitung sumber daya yang dibutuhkan Cilium. Dimulai dari pemeriksaan kondisi aktual:
kubectl top pod -n kube-system -l k8s-app=cilium
kubectl top pod -n kube-system -l app.kubernetes.io/name=cilium-operator
kubectl describe nodes | grep -A3 -B3 "eBPF\|cilium"kubectl top pod -n kube-system -l k8s-app=cilium menampilkan penggunaan CPU dan memory agent per node. kubectl top pod -n kube-system -l app.kubernetes.io/name=cilium-operator melakukan hal yang sama untuk operator. Angka dari kubectl top ini menjadi dasar request dan limit yang realistis, bukan perkiraan.
Aturan praktis sizing: alokasikan cadangan sekitar 20 persen di atas penggunaan puncak untuk agent, dan pastikan operator mendapat sumber daya yang cukup untuk cluster besar. Kernel semua node harus memenuhi syarat eBPF sebelum bergabung ke cluster — periksa dengan ls /sys/kernel/btf dari episode 1, karena node dengan kernel tua akan menjadi beban operasional di kemudian hari.
Satu hal yang sering terlupa: sumber daya observability juga ikut dihitung. Hubble Relay dan UI membutuhkan CPU dan memory sendiri, dan jika kalian menyimpan flow untuk jangka panjang, disk untuk database flow bertambah seiring waktu. Masukkan semua ini ke dalam perhitungan biaya cluster sejak awal, bukan setelah tagihan muncul.
Info
Runbook tidak harus sempurna sejak awal. Mulai dari tiga skenario paling sering, tuliskan langkah diagnosis dan pemulihannya, lalu uji runbook tersebut saat insiden kecil terjadi. Sebuah runbook yang diuji lebih berharga daripada yang panjang tapi belum pernah dipakai.
Inti yang harus dibawa pulang:
cilium connectivity test menjadi gerbang kualitas di pipeline CI/CD.Di episode 22, episode terakhir, kita akan membahas ekosistem alternatif dan refleksi akhir — perbandingan Cilium vs Calico vs Flannel vs Weave, kube-proxy replacement vs tradisional, Istio vs Cilium Service Mesh, rekap journey 0-21, checklist Cilium production-grade, dan arah masa depan Cilium bersama eBPF, Tetragon, dan multi-cluster.