Calico ist eine weit verbreitete Netzwerk-Lösung für Kubernetes, die Pods über das BGP-Routing-Protokoll direkt miteinander verbindet. Statt eines Tunnels werden die IP-Adressen der Pods als Routen im Netz verteilt — das spart Overhead und ermöglicht sehr hohe Durchsatzraten.

Wie funktioniert Calico?

Calico besteht aus mehreren Komponenten, die zusammenarbeiten:

  • Felix ist der Agent auf jeder Node. Er programmiert die Routen und Firewall-Regeln direkt im Linux-Kernel (klassisch über iptables, modern über eBPF) und setzt damit die Netzwerk-Policies durch.
  • BIRD ist der BGP-Daemon. Er verteilt die Pod-CIDR-Routen zwischen den Nodes und kann sie auch an externe Router oder einen Route Reflector weitergeben.
  • Typha ist ein Fan-out-Proxy, der die Verbindungen vieler Nodes zum Kubernetes-API-Server bündelt und so bei großen Clustern Last reduziert.

Calico unterstützt neben dem reinen BGP-Datenpfad auch VXLAN-Overlays und WireGuard-Verschlüsselung, wenn das Netzwerk keine direkte Layer-3-Erreichbarkeit bietet oder verschlüsselt werden soll.

Network Policies

Ein besonderes Stärke von Calico ist die vollständige Umsetzung von Kubernetes-NetworkPolicies. Statt nur auf IP-Adressen zu schauen, arbeitet Calico identitätsbasiert mit Pod-Labels — so bleiben Regeln stabil, auch wenn Pods neu gestartet werden und neue IPs erhalten.

Verwandte Grundlagen: CNI, Kubernetes-Node, kube-proxy, Flannel, Cilium.