Episode ini membahas enkripsi traffic antar node dengan WireGuard native dan IPsec, tanpa mengubah workload sama sekali. Kalian juga belajar mengaktifkan enkripsi via Helm, memverifikasinya dengan hubble dan cilium encrypt status, serta memposisikannya sebagai bagian dari strategi zero trust.

Bayangkan sebuah cluster di mana traffic antar node mengalir polos di jaringan fisik — siapa pun yang bisa mengakses jaringan tersebut bisa membaca semua komunikasi antar pod. Episode 14 menutup celah ini dengan transparent encryption: Cilium mengenkripsi traffic antar node tanpa mengubah workload, image, atau kode aplikasi sama sekali.
Cilium mendukung dua implementasi: WireGuard — native dan modern, dan IPsec — pendekatan klasik yang lebih dikenal. Kita bahas cara mengaktifkan keduanya, cara memverifikasinya dengan Hubble dan cilium encrypt status, serta bagaimana ini melengkapi strategi zero trust yang dimulai dari identity di episode 5.
Pertanyaan yang paling sering muncul tentang enkripsi adalah soal performa: berapa overhead yang harus dibayar? Jawabannya bergantung pada implementasi dan perangkat keras, tapi umumnya jauh lebih kecil dari yang dikhawatirkan. Karena enkripsi dijalankan di kernel, overhead-nya bisa diukur secara langsung dengan membandingkan hasil cilium connectivity test sebelum dan sesudah diaktifkan.
WireGuard adalah protokol VPN modern yang diimplementasikan Cilium langsung sebagai bagian dari dataplane. WireGuard bekerja di level kernel dengan kecepatan tinggi dan kriptografi yang telah diaudit. "Native" berarti terintegrasi ke jalur data Cilium; "transparan" berarti pod tidak perlu tahu bahwa traffic-nya dienkripsi — aplikasi tetap berbicara dengan IP tujuan seperti biasa.
Aktifkan enkripsi WireGuard saat install atau upgrade:
helm upgrade cilium cilium/cilium \
--namespace kube-system \
--set encryption.enabled=true \
--set encryption.type=wireguard--set encryption.enabled=true mengaktifkan enkripsi dan encryption.type=wireguard memilih implementasinya. Setelah upgrade, Cilium secara otomatis membangun tunnel WireGuard antar node yang memuat program eBPF.
WireGuard di Cilium bekerja di level node-to-node: semua traffic antar node dienkripsi, termasuk traffic antar pod yang berada di node yang berbeda. Traffic di dalam node yang sama (pod ke pod di node yang sama) tidak melewati jaringan, sehingga tidak perlu dienkripsi. Inilah mengapa total traffic terenkripsi biasanya lebih kecil dari total traffic cluster — dan itu memang seharusnya begitu.
Perlu juga dipahami bahwa WireGuard Cilium bukan tunnel manual. Cilium mengelola interface WireGuard secara otomatis: membuat, mengonfigurasi, dan menghapus koneksi antar node tanpa campur tangan kalian. Kalian hanya perlu mengaktifkan fiturnya; operasional hariannya ditangani agent.
IPsec adalah alternatif yang lebih tua dan lebih dikenal luas. Cilium mendukung IPsec dengan ES (Encryption on the datapath) yang diimplementasikan di kernel. IPsec cocok untuk environment yang sudah terbiasa dengan protokol ini atau yang punya persyaratan compliance memakai IPsec.
Mengaktifkan IPsec serupa, hanya mengganti tipe:
helm upgrade cilium cilium/cilium \
--namespace kube-system \
--set encryption.enabled=true \
--set encryption.type=ipsecencryption.type=ipsec memilih jalur IPsec. Perlu dicatat bahwa IPsec umumnya menambah overhead yang sedikit lebih tinggi dibanding WireGuard karena alur kriptografinya yang lebih kompleks. Untuk performa dan kesederhanaan, WireGuard biasanya pilihan yang lebih baik.
Jika kalian memilih IPsec, perhatikan pengelolaan key. Cilium mengelola IPsec keys lewat secret Kubernetes, dan pergantian key (rotation) adalah bagian dari operasional rutin yang harus direncanakan. WireGuard, sebaliknya, tidak memerlukan pengelolaan key yang sama karena memakai kunci publik antar node yang dikelola secara otomatis oleh Cilium.
Yang membuat fitur ini begitu berharga: tidak ada perubahan di sisi workload. Pod tidak perlu sertifikat, tidak perlu konfigurasi TLS, tidak perlu restart dengan image baru. Enkripsi terjadi di level node: paket yang meninggalkan node asal sudah dienkripsi, dan didekripsi saat tiba di node tujuan. Dari sudut pandang pod, komunikasi tetap terlihat seperti traffic plaintext biasa.
Ini berbeda dari mTLS di service mesh (episode 15) yang bekerja di level aplikasi dan membutuhkan proxy. Enkripsi Cilium melindungi seluruh traffic antar node — termasuk traffic yang tidak melewati proxy — dengan harga overhead yang jauh lebih rendah.
Kejelasan lain yang perlu ditanamkan: enkripsi melindungi data dalam transit antar node, tapi tidak menggantikan TLS antar service. Traffic antara dua pod di node yang sama tidak dienkripsi oleh WireGuard, dan traffic yang masuk dari internet tetap harus diamankan dengan TLS biasa. Enkripsi Cilium adalah lapisan fondasi, sedangkan TLS aplikasi adalah lapisan di atasnya.
Untuk membuktikan enkripsi aktif, jalankan perintah status:
cilium encrypt statuscilium encrypt status menampilkan mode enkripsi yang aktif dan jumlah interface WireGuard (atau status IPsec). Jika menampilkan jumlah node yang terhubung, enkripsi antar node sudah berjalan.
Dari sisi observability, Hubble menandai traffic terenkripsi dengan flag khusus. Amati flow antar node:
hubble observe --type trace --since 10mhubble observe --type trace --since 10m menampilkan flow trace; baris yang dienkripsi akan menunjukkan flag encrypted pada bagian informasi. Untuk membandingkan dampak performa, jalankan cilium connectivity test sekali dengan dan sekali tanpa enkripsi — perbedaan throughput memberikan gambaran biaya enkripsi di cluster kalian.
Untuk memantau kesehatan enkripsi dalam jangka panjang, integrasikan output cilium encrypt status ke dalam monitoring. Jumlah interface WireGuard yang tidak sesuai dengan jumlah node adalah indikasi awal masalah — misalnya node baru yang belum membangun tunnel. Alert sederhana seperti ini bisa menyelamatkan kalian dari traffic yang diam-diam berjalan plaintext.
Keputusan antara WireGuard dan IPsec biasanya ditentukan oleh dua hal: kebutuhan compliance dan operasional tim. Mari kita bandingkan secara langsung:
| Aspek | WireGuard | IPsec |
|---|---|---|
| Gaya implementasi | Native, terintegrasi ke dataplane | ES di kernel, klasik |
| Pengelolaan key | Otomatis oleh Cilium | Secret Kubernetes, perlu rotasi |
| Overhead tipikal | Rendah | Sedikit lebih tinggi |
| Cocok untuk | Setup baru yang ingin sederhana | Environment dengan persyaratan IPsec |
Tabel di atas adalah titik awal, bukan keputusan final. Ukur sendiri di cluster kalian: aktifkan WireGuard, jalankan cilium connectivity test lalu catat throughput, lakukan hal yang sama untuk IPsec, dan bandingkan. Angka dari pengukuran sendiri selalu lebih berharga daripada perkiraan dari dokumen.
Untuk IPsec, pastikan secret key dikelola dengan benar:
kubectl get secret -n kube-system cilium-ipsec-keys
kubectl get secret -n kube-system cilium-ipsec-keys -o yaml | grep -c keyskubectl get secret -n kube-system cilium-ipsec-keys menampilkan secret yang dipakai Cilium untuk IPsec. Jika secret tidak ada atau tidak lengkap, enkripsi IPsec tidak akan berjalan meskipun konfigurasi encryption.type=ipsec sudah diset. Rotasi key dilakukan dengan memperbarui secret lalu me-restart agent — jadwalkan sebagai operasional rutin.
Catatan terakhir yang sering terlupa: ketika kalian menambah node baru ke cluster yang sudah mengenkripsi, node tersebut otomatis bergabung ke mesh WireGuard. Tidak ada langkah manual tambahan. Inilah alasan banyak tim memilih WireGuard untuk klaster yang terus bertambah — skalabilitas operasionalnya nyaris tanpa biaya tambahan.
Warning
Enkripsi antar node melindungi traffic saat transit, bukan saat idle di penyimpanan, dan tidak menggantikan kebutuhan TLS aplikasi untuk data dalam transit ke luar cluster. Pikirkan enkripsi Cilium sebagai satu lapis dari strategi zero trust, bukan satu-satunya.
Inti yang harus dibawa pulang:
encryption.enabled=true dan encryption.type dikonfigurasi via Helm.cilium encrypt status membuktikan enkripsi aktif.Di episode 15 selanjutnya kita akan membahas Cilium service mesh dan Gateway API — arsitektur sidecarless berbasis Envoy dan ztunnel, mTLS berbasis identity, routing L7, implementasi HTTPRoute dan TLSRoute, serta integrasinya dengan cluster yang sudah ada. Di sinilah networking, security, dan observability Cilium menyatu menjadi platform lengkap.