Episode ini menelusuri asal-usul Calico dari Metaswitch Networks, misi wire-rate routing tanpa overlay, masalah yang diselesaikannya, serta posisinya sebagai salah satu CNI paling banyak diadopsi di ekosistem Kubernetes hingga v3.32.x.

Di episode 0 kalian sudah punya cluster uji dengan Calico berjalan. Sekarang saatnya memahami kenapa Calico ada dan masalah apa yang dia selesaikan. Sebuah teknologi baru akan terasa asing sampai kalian tahu sejarah yang membentuk desainnya.
Episode 1 membahas perjalanan Calico dari proyek kecil di Metaswitch Networks tahun 2014, keputusan desain besar berupa wire-rate routing alih-alih overlay, masalah networking yang dia pecahkan, dan bagaimana dia dibandingkan dengan CNI lain. Tanpa pemahaman ini, keputusan memakai IPIP, VXLAN, atau eBPF di episode-episode berikutnya akan terasa membingungkan.
Calico lahir tahun 2014 di Metaswitch Networks, perusahaan telekomunikasi asal Inggris, sebagai solusi networking untuk container. Tahun 2015 proyek ini dirilis sebagai open source, dan tim yang mengembangkannya kemudian berdiri sebagai perusahaan Tigera yang hingga kini menjadi sponsor utama Project Calico.
Keputusan desain paling fundamental sejak awal: Calico tidak membangun overlay. Alih-alih meng-encapsulate packet ke dalam tunnel seperti VXLAN, Calico memanfaatkan routing Linux langsung dan BGP untuk menyebarkan rute pod antar node. Pendekatan ini disebut wire-rate routing karena packet diproses pada kecepatan wire tanpa overhead tunnel tambahan.
Sepuluh tahun kemudian, Calico adalah salah satu CNI paling banyak diadopsi di Kubernetes. Per penulisan series ini, versi stabil adalah v3.32.x dengan rilis v3.32.1 di pertengahan 2026. Verifikasi versi kalian:
calicoctl version
kubectl get pods -n calico-systemcalicoctl version menampilkan versi client dan datastore. Pastikan klaster kalian sudah berada di jalur v3.32.x agar sesuai dengan contoh di series ini.
Masalah pertama adalah skalabilitas networking pod. Pendekatan overlay tradisional butuh tunnel dan NAT di setiap hop, yang menambah overhead CPU dan kompleksitas. Dengan routing langsung, packet pod berpindah antar node seperti packet host biasa: lewat ip route. Rute pod disebarkan otomatis dengan BGP ke semua node, sehingga konektivitas pod-to-pod berjalan di kecepatan line rate.
Masalah kedua adalah network policy. NetworkPolicy bawaan Kubernetes sudah bagus, tapi banyak kasus butuh lebih: policy cluster-scope, policy berbasis tier, kontrol untuk host itu sendiri, hingga policy berbasis FQDN dan L7. Calico menyediakan NetworkPolicy, GlobalNetworkPolicy, ClusterNetworkPolicy, dan HostEndpoint yang menutup semua celah itu. Contoh resource policy yang akan sering kalian pakai:
apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
name: allow-nginx-ingress
namespace: default
spec:
selector: app == 'nginx'
types:
- Ingress
ingress:
- action: Allow
protocol: TCP
destination:
ports:
- 80Perhatikan bahwa resource ini memakai apiVersion projectcalico.org/v3 — bukan networking.k8s.io/v1. API Calico yang diperkaya ini dibahas mulai episode 5.
Masalah ketiga adalah kontrol IP dan koneksi ke dunia luar. Calico punya IPAM sendiri dengan IPPool yang bisa kalian atur ukuran bloknya, dan karena dia berbicara BGP, dia bisa peering langsung dengan router di data center, memungkinkan pod CIDR di-advertise ke jaringan luar tanpa NAT. Ini yang menjadi dasar integrasi dengan MetalLB dan pengaturan egress di episode 8 dan 10.
Untuk memposisikan Calico, bandingkan pendekatan desainnya dengan CNI lain:
Perbandingan mendalam termasuk rekomendasi kapan memilih masing-masing ada di episode 22. Untuk sekarang, yang perlu diingat: Calico unggul di routing langsung, kebebasan BGP, dan model policy yang lengkap tanpa wajib eBPF.
Calico banyak dipakai oleh penyedia platform dan perusahaan besar karena alasan praktis: mudah diotomatisasi, berbasis CRD, dan tidak menuntut kernel tertentu di mode default. Beberapa distribusi Kubernetes mengadopsi Calico sebagai CNI bawaan, dan banyak tim memakainya sebagai jembatan sebelum bermigrasi ke dataplane eBPF penuh.
Calico paling cocok saat kebutuhan kalian adalah routing yang dapat dikontrol penuh, integrasi BGP dengan jaringan luar, dan policy keamanan yang kuat tanpa membangun infrastruktur eBPF dari nol. Sebaliknya, jika kebutuhan utama kalian adalah observability L7 native dan kalian siap hidup di kernel eBPF saja, Cilium bisa menjadi pertimbangan — kita bahas di episode 22.
Alasan paling kuat memakai Calico untuk klaster produksi:
Cek cepat fitur yang sudah aktif di klaster kalian:
kubectl get felixconfiguration default -o yaml | grep -i dataplane
calicoctl get ipamconfig default -o yamlEpisode 1 menempatkan Calico dalam konteks: lahir dari kebutuhan routing container yang cepat, dikembangkan Tigera sejak 2014, dan kini menjadi standar de facto untuk networking plus policy di Kubernetes.
Inti yang harus dibawa pulang:
projectcalico.org/v3 memberikan NetworkPolicy, GlobalNetworkPolicy, dan lainnya.Di episode 2 selanjutnya kita akan membedah konsep dasar dan arsitektur utama Calico — tugas calico/node, Felix sebagai dataplane program, BIRD sebagai daemon BGP, Typha yang menskalakan komunikasi Felix ke API server, kube-controllers, dan alur paket pod-to-pod di balik layar. Ini fondasi untuk semua episode teknis berikutnya.