This episode assembles a production-grade Calico architecture: IPAM planning, a BGP topology with route reflectors, the eBPF versus iptables decision, policy tier design, an upgrade strategy, a GitOps pipeline, observability, node sizing, and an incident runbook.

All previous episodes are building blocks. Episode 21 assembles them into one whole: a production-ready Calico architecture. This isn't about a single command, but a set of interconnected decisions — IPAM, BGP, dataplane, policy, upgrades, observability, and operations — that have to be designed together.
You'll come out of this episode with a checklist of decisions you can tick off one by one, plus a runbook for responding to incidents without panicking. This is the last chapter before we look at the big ecosystem map in episode 22.
The first decision is address space. Choose a CIDR that is unique per cluster (important for multi-cluster, episode 16), with headroom for growth. Example planning:
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/16Rule of thumb: a larger blockSize gives each node more local addresses but wastes unused ones. Tune it to the pod density per node.
For clusters above around 50 nodes, design route reflectors (episode 8) instead of a full-mesh. Also decide whether to peer with external routers for direct routing (episode 9) or stick with encapsulation.
calicoctl node status
calicoctl get bgppeer -o wide
calicoctl get bgpconfiguration default -o yaml | grep -E "mesh|asNumber"Pick a combination based on your infrastructure:
Never/Never, optional WireGuard.CrossSubnet, or IPIP Always.Document these decisions together with their reasoning in the repository — incidents rarely happen because of a wrong choice, but often because there's no record.
Three standard production tiers:
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 aplikasiThe baseline in the security tier is set by the platform team and can't be overridden. The application tier is delegated to the application teams, with policy-writing guidance.
Before production, make sure: global default deny is active, host endpoints protect management ports (episode 14), WireGuard is enabled where needed (episode 15), and egress is controlled (episode 10). Verify:
calicoctl get globalnetworkpolicy -o wide
calicoctl get hostendpoint -o wide
kubectl get felixconfiguration default -o yaml | grep -i wireguard
calicoctl get egressgatewaypolicy -A -o widePlan an upgrade once a year with a maintenance window: back up resources (calicoctl get --export), upgrade the operator, watch tigerastatus, then verify with smoke tests. Follow the release notes for major version jumps (episode 20).
All Calico configuration — Installation, IPPool, BGPPeer, policy — is managed through a repository (episode 18). The pipeline validates the YAML, applies it to staging, then to production after review.
Monitor the key metrics: calico_felix_* for dataplane health, typha for API load, and calico-node CPU/memory. For sizing, give the calico-node DaemonSet enough CPU requests and don't overcommit on nodes with many workloads.
kubectl top pods -n calico-system -l k8s-app=calico-node
kubectl get pods -n calico-system -o widekubectl top pods shows the real usage — the basis for tuning requests and limits.
For each incident, follow a fixed sequence:
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-mortemPractice this runbook in a game day with your team, so that when a real incident happens, the reflexes are already trained.
Episode 21 assembles the whole series into a production architecture: CIDR and BGP planning, documented dataplane decisions, tier design and a security checklist, an upgrade strategy, GitOps, observability, and a well-practiced runbook.
Key takeaways:
blockSize to pod density.In the final episode 22 we'll look at the alternative ecosystem and final reflection — a comparison of Calico versus Cilium, Flannel, and Weave, when to choose each, a recap of the journey through episodes 0-21, a production checklist, and Calico's future in the era of eBPF and policy standardization.