Belajar Calico - Production-Ready Architecture
Episode 21 of 23

Belajar Calico - Production-Ready Architecture

Episode ini menyusun arsitektur Calico production-grade: perencanaan IPAM, topologi BGP dengan route reflector, keputusan eBPF versus iptables, desain policy tiers, strategi upgrade, pipeline GitOps, observability, sizing node, dan runbook insiden.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Semua episode sebelumnya adalah bahan bangunan. Episode 21 merangkainya menjadi satu kesatuan: arsitektur Calico yang siap produksi. Ini bukan soal satu perintah, melainkan keputusan yang saling terkait — IPAM, BGP, dataplane, policy, upgrade, observability, dan operasional — yang harus dirancang bersama.

Kalian akan keluar dari episode ini dengan daftar keputusan yang bisa ditandai satu per satu, plus runbook untuk menjawab insiden tanpa panik. Ini babak terakhir sebelum kita melihat peta besar ekosistem di episode 22.

Perencanaan Jaringan

IPAM dan CIDR

Keputusan pertama adalah ruang alamat. Pilih CIDR yang unik per klaster (penting untuk multi-cluster, episode 16), dengan headroom untuk pertumbuhan. Contoh perencanaan:

Perencanaan CIDR
pod CIDR       192.168.0.0/16   (65 ribu alamat)
blockSize      26               (64 alamat per node)
service CIDR   10.96.0.0/12
kubernetes CIDR 172.16.0.0/16

Aturan praktis: blockSize yang lebih besar memberi node lebih banyak alamat lokal tapi membuang alamat yang tidak terpakai. Sesuaikan dengan kepadatan pod per node.

Topologi BGP

Untuk klaster di atas sekitar 50 node, rancang route reflector (episode 8) alih-alih full-mesh. Putuskan juga apakah akan peering ke router eksternal untuk routing langsung (episode 9) atau tetap memakai encapsulation.

Verifikasi topologi BGP
calicoctl node status
calicoctl get bgppeer -o wide
calicoctl get bgpconfiguration default -o yaml | grep -E "mesh|asNumber"

Dataplane dan Encapsulation

Matriks Keputusan

Pilih kombinasi berdasarkan infrastruktur:

  • On-prem + BGP tersedia: direct routing, Never/Never, WireGuard opsional.
  • Cloud tanpa routing pod: VXLAN CrossSubnet, atau IPIP Always.
  • Kinerja ekstrem + kernel modern: eBPF (episode 17), DSR, tanpa kube-proxy.
  • Kerahasiaan traffic antar node: tambahkan WireGuard (episode 15).

Dokumentasikan keputusan ini beserta alasannya di repositori — insiden jarang terjadi karena salah pilih, tapi sering karena tidak ada catatan.

Desain Policy dan Keamanan

Struktur Tiers

Tiga tier standar produksi:

Struktur tiers produksi
security  (order 100)  - default deny global, break-glass, blocklist
platform  (order 200)  - DNS, monitoring, node, ekspor bersama
application (order 300) - policy per tim dan per aplikasi

Baseline di tier security dibuat tim platform dan tidak bisa ditimpa. Tier application diserahkan ke tim aplikasi dengan panduan penulisan policy.

Checklist Keamanan

Sebelum produksi, pastikan: default deny global aktif, host endpoint untuk port manajemen (episode 14), WireGuard bila perlu (episode 15), dan egress terkontrol (episode 10). Verifikasi:

Audit checklist keamanan
calicoctl get globalnetworkpolicy -o wide
calicoctl get hostendpoint -o wide
kubectl get felixconfiguration default -o yaml | grep -i wireguard
calicoctl get egressgatewaypolicy -A -o wide

Upgrade, CI/CD, dan Observability

Strategi Upgrade

Rencana upgrade setahun sekali dengan jendela maintenance: backup resource (calicoctl get --export), upgrade operator, pantau tigerastatus, lalu verifikasi smoke test. Ikuti release notes untuk lompatan versi besar (episode 20).

Pipeline GitOps

Semua konfigurasi Calico — Installation, IPPool, BGPPeer, policy — dikelola lewat repositori (episode 18). Pipeline memvalidasi YAML, menerapkan ke staging, lalu ke produksi setelah review.

Observability dan Sizing

Pantau metrik kunci: calico_felix_* untuk kesehatan dataplane, typha untuk beban API, dan CPU/memory calico-node. Untuk sizing, beri request CPU yang cukup pada DaemonSet calico-node dan jangan overcommit pada node dengan banyak workload.

Cek resource calico-node
kubectl top pods -n calico-system -l k8s-app=calico-node
kubectl get pods -n calico-system -o wide

kubectl top pods menunjukkan pemakaian nyata — dasar untuk menyesuaikan request dan limit.

Runbook Insiden

Prosedur Satu Halaman

Untuk tiap insiden, ikuti urutan tetap:

Runbook insiden Calico
1. kumpulkan status: calicoctl node status + tigerastatus
2. persempit lapisan: endpoint? route? policy? BGP? IPAM?
3. periksa log Felix dan typha
4. terapkan perbaikan terkecil dulu
5. verifikasi dengan smoke test
6. tulis post-mortem

Latih runbook ini dalam game day bersama tim, sehingga saat insiden nyata, refleks sudah terlatih.

Penutup

Episode 21 merangkai seluruh series menjadi arsitektur produksi: perencanaan CIDR dan BGP, keputusan dataplane yang terdokumentasi, desain tiers dan checklist keamanan, strategi upgrade, GitOps, observability, serta runbook yang terlatih.

Inti yang harus dibawa pulang:

  • Pilih CIDR unik per klaster dan sesuaikan blockSize dengan kepadatan pod.
  • Route reflector wajib untuk klaster besar; dokumentasikan topologi BGP.
  • Dataplane dipilih dari matriks: on-prem, cloud, eBPF, dan WireGuard.
  • Tiers security-platform-application memisahkan kewenangan dan dampak.
  • Upgrade tahunan dengan backup, jendela maintenance, dan smoke test.
  • Runbook yang terlatih mengubah panik menjadi prosedur.

Di episode 22 terakhir kita akan melihat ekosistem alternatif dan refleksi akhir — perbandingan Calico versus Cilium, Flannel, dan Weave, kapan memilih masing-masing, rekap perjalanan episode 0-21, checklist produksi, dan masa depan Calico di era eBPF dan standardisasi policy.