The Untapped Power of Services - L7 Load Balancing Without a Service Mesh
summary
Shows how Kubernetes Service and Endpoint objects implement layer‑7 load balancing without a mesh by using the kube API to build affinity and locality-aware schemes, including a consistent hashing with bounded loads algorithm from 2016. Demonstrates a Go reverse proxy prototype that watches Endpoints, uses per-request keys to pick endpoints, and calls back to decrement load. Reproduces the connection‑pooling surprise where 100 HTTP requests collapse to one pod, compares random, power‑of‑two, full‑scan and bounded‑hashing approaches, and reports tunable constants and practical tradeoffs.
AI-written summary · about
chapters (18)
- 0:00Intro
- 0:33What is this talk about?
- 1:22Kubernetes Service & Endpoints
- 3:18What happened?
- 5:12Load Balancing?
- 9:26An incomplete landscape of L7 algorithms
- 11:55Sidecar proxy
- 14:03Client-side load balancing
- 15:08Look-aside load balancing
- 18:11Bounded loads
- 20:18The affinity scale
- 21:37Endpoint Subsets
- 23:05Abstract load balancing algorithms
- 24:15Reverse proxy with consistent hashing
- 24:44Circuit breaking
- 27:18Takeaways
- 29:15Demo code!
- 29:46References
related talks
27mMicroservices: Awareness and Discovery Pattern on K8s
37mBuilding the Multi-Cluster L7 Load Balancer
35mIntelligent Load Balancing in Kubernetes
24mReliability Is Not Just About Balancing Loads
39mDo you need a Service Mesh?
36mThe Service Mesh: Past, Present, and Future [B]
35mMake Load-Balancing Great Again with !
15mSimplify Kubernetes Connectivity
