Spine-Leaf Architecture Integration

Spine-Leaf Architecture Integration An architecture diagram generated by Archify. Spine 1 · Spine 2 · 10.0.0.1 · 10.0.0.2 · Spine Layer (AS 65000) · AS 65000 · redundant pair Spine 1 · Spine 2 10.0.0.1 · 10.0.0.2 AS 65000 · redundant pair Leaf 1 · 10.0.1.1 · Rack 1 · Leaf Layer (per-rack AS) · AS 65001 Leaf 1 10.0.1.1 · Rack 1 AS 65001 Leaf 2 · 10.0.2.1 · Rack 2 · Leaf Layer (per-rack AS) · AS 65002 Leaf 2 10.0.2.1 · Rack 2 AS 65002 Leaf 3 · 10.0.3.1 · Rack 3 · Leaf Layer (per-rack AS) · AS 65003 Leaf 3 10.0.3.1 · Rack 3 AS 65003 K8s Node 1, 2 · AS 64512 · Kubernetes cluster (AS 64512) · rack1 K8s Node 1, 2 AS 64512 rack1 K8s Node 3, 4 · AS 64512 · Kubernetes cluster (AS 64512) · rack2 K8s Node 3, 4 AS 64512 rack2 K8s Node 5, 6 · AS 64512 · Kubernetes cluster (AS 64512) · rack3 K8s Node 5, 6 AS 64512 rack3 eBGP × 2 eBGP × 2 (to Spine 1 and Spine 2) eBGP × 2 eBGP eBGP · Pod CIDR advertisement eBGP Spine Layer (AS 65000) Leaf Layer (per-rack AS) Kubernetes cluster (AS 64512) Legend Kubernetes node Leaf switch Spine switch

Spine Layer

  • • Two spines (10.0.0.1, 10.0.0.2) peer with all three leaves over eBGP (6 sessions)
  • • If one spine fails, traffic takes the other spine path (redundancy)

Leaf Layer (ToR)

  • • Each rack has its own AS: 65001 / 65002 / 65003
  • • Forwards Pod CIDRs learned from its rack's nodes up to the spines

Calico BGPPeer (per rack)

  • • nodeToNodeMeshEnabled: false in BGPConfiguration, asNumber 64512
  • • nodeSelector: topology.kubernetes.io/zone == 'rack1' selects only that rack's nodes
  • • peerIP = that rack's leaf, asNumber = the leaf's AS