Bandwidth and Latency Optimization
Address Your Bandwidth Exhaustion Challenges
Kubernetes Networking Limitations
- Kubernetes does not provide any native traffic control capabilities.
- Traffic Rate-Limiting is essential to provide optimal resource consumption and to avoid bandwidth exhaustion.
- Kubernetes’ native Bandwidth Rate-Limiting is still experimental and has detrimental effects to latency.
- Additionally, users may have poor experience when connecting to external-facing Kubernetes clusters as most TCP congestion protocols are not designed to work well in today’s diverse networks
Cilium Bandwidth Management
- Cilium’s Bandwidth Manager can enforce rate-limiting per Pod with a single line of YAML.
- Bandwidth Manager provides a 4x reduction in latency compared to alternatives.
- Cilium is the first Cloud Native networking platform to support BBR (Bottleneck Bandwidth and Round-trip propagation time), a congestion control algorithm designed by Google.
- When Google tested BBR, they observed up to 2,700x improvement in throughput.
Optimal Bandwidth Management
- Unlike alternatives, Cilium’s rate limiting isn’t detrimental to performances and is designed for multi-queue and multi-core NICs.
- Cilium’s BBR provides exceptional improvements in throughput and latency for external-facing applications, offering consumers a fantastic user experience.
- Extremely simple to configure with a single line of configuration
1--- 2apiVersion: v1 3kind: Pod 4metadata: 5 annotations: 6 # Limits egress bandwidth to 10Mbit/s. 7 kubernetes.io/egress-bandwidth: "10M" 8 labels: 9 # This pod will act as server. 10 app.kubernetes.io/name: netperf-server 11 name: netperf-server 12spec: 13 containers: 14 - name: netperf 15 image: cilium/netperf 16 ports: 17 - containerPort: 12865
Intuitive and simple integration
A single line of YAML can enforce traffic limits on your Pod.
In this short video, Senior Technical Marketing Engineer Nico Vibert walks you through how to use Cilium Bandwidth Manager to rate-limit the traffic sent by your Kubernetes Pods. Great to address potential contention issues !
Better Bandwidth Management with eBPF
Kubernetes provides many knobs for managing common system resources such as vCPUs and memory limits per Pod, but often forgotten is the effect of unbounded network communication in a cluster. A large churn of packets from several services can starve bandwidth for other services.
In this KubeCon EU 2022 talk, Daniel Borkmann & Christopher M. Luciano explore how eBPF can be leveraged to dynamically insert logic for flexible, efficient and scalable rate limiting and bandwidth management on a per-Pod basis.
Want to learn more?
There is plenty more material available if you'd like to learn more.