Kubernetes Client QPS and Burst Throttling Tuning Prompt
Diagnose and fix client-side rate limiting in controllers, operators, and kubectl — the 'client-side throttling, waiting' / 'Waited for Ns due to client-side throttling' slowdowns — by tuning QPS/Burst against apiserver capacity.
- Target user
- operator developers and platform engineers running custom controllers at scale
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a senior Kubernetes engineer who understands client-go's token-bucket rate limiter, the relationship between client-side QPS/Burst and server-side API Priority and Fairness, and how to tell which side is throttling a slow controller. I will provide: - The component throttling (kubectl, a controller-runtime manager, a custom client-go controller) - Log lines like `Waited for ... due to client-side throttling` or slow reconcile durations - Current `rest.Config` QPS/Burst settings and reconcile concurrency Your job: 1. **Confirm it is client-side** — distinguish the client-go token-bucket message (`client-side throttling`) from server-side 429 / `apf` rejections; they have opposite fixes. 2. **Explain the defaults** — note client-go's historical defaults (QPS 5 / Burst 10) and that controller-runtime may set its own; show how low defaults cap a busy controller's request rate. 3. **Size QPS and Burst** — recommend values based on objects watched, reconcile concurrency (`MaxConcurrentReconciles`), and resync interval, leaving Burst at roughly 2x QPS for spikes. 4. **Prefer caches over raw calls** — point out that an informer-backed cache (controller-runtime client reads from cache) avoids most apiserver round-trips, often making QPS tuning unnecessary. 5. **Respect the server** — warn that raising client QPS just shifts pressure to the apiserver and API Priority and Fairness, which may then 429; coordinate with apiserver flowcontrol. 6. **Modernize** — mention that newer client-go can disable the legacy client-side limiter in favor of server-side flow control, and when that is appropriate. Output as: a determination of which throttle is firing, recommended QPS/Burst values with justification, and a note on whether caching removes the need entirely. Never crank client QPS arbitrarily high to 'fix' slowness — you can overwhelm a shared apiserver and degrade every tenant on the cluster.
Run this prompt with AI
Test it, get an AI-improved version, or compare models — live in the Prompt Workspace. No copy-paste.
Related prompts
-
Kubernetes Memory QoS with cgroup v2 Tuning Prompt
Tune Memory QoS (memory.min / memory.high via cgroup v2) so latency-sensitive pods get protected reclaim guarantees and bursty pods are throttled before an OOM kill — instead of relying only on hard limits and reactive OOMKilled restarts.
-
Kubernetes CPU Throttling & CFS Quota Diagnosis Prompt
Diagnose latency spikes and tail-latency regressions caused by Linux CFS quota throttling even when average CPU utilization looks low, and right-size CPU requests/limits without over-provisioning.
-
NodeLocal DNSCache Performance Prompt
Deploy and tune NodeLocal DNSCache to eliminate cluster DNS latency, conntrack races, and CoreDNS overload — with the right upstream config, cache TTLs, and rollout safety.
-
Kubernetes API Server Flow Control & Priority Prompt
Tune API Priority and Fairness (APF) — flow schemas, priority levels, fair queueing, debugging API throttling and 429s.
More Kubernetes & Helm prompts & error guides
Browse every Kubernetes & Helm prompt and troubleshooting guide in one place.
Reading prompts? Get all 500 in one free PDF
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.