SRE & Production Incident Response›Fleet-scale scenarios · Cheat sheet & self-check
Learning Hub / Observability & Reliability / SRE & Production Incident Response

Fleet-scale scenarios · wrap-up

Cheat sheet & self-check

Every command from this section on one page.

04 · Partial rollouts

Detect

count by (cluster, image) (kube_pod_container_info{container="api"})Which image versions run where
kubectl rollout status deploy/api --timeout=10mDid this rollout finish?
GitOps per-cluster sync status + revisionWhich clusters are behind
kubectl get ds -A (DESIRED vs UP-TO-DATE vs AVAILABLE)DaemonSets stuck on some nodes

Design for mixed versions

Expand → migrate → contractSchema/API changes in compatible steps
N and N-1 must interoperateEvery change assumes mixed versions
Feature flags decoupled from deploysTurn on only when rollout is complete

05 · Automation blast radius

Guard rails

Never act on more than X% of the fleet per intervalPercentage/rate limit
Dry run + diff reviewed before applySee the blast radius first
Canary scope first (1 cluster / 1 node / 1 namespace)Small, then wider
Stop if more than N targets fail or health dropsAutomatic halt
Kill switch (feature flag / pause annotation)Stop everything quickly

Built into Kubernetes

PodDisruptionBudgetLimits voluntary evictions (drains, autoscalers)
kube-controller-manager --node-eviction-rate / --unhealthy-zone-thresholdSlows evictions when many nodes look unhealthy
Deployment maxUnavailable / maxSurgeRollout speed
Karpenter NodePool disruption budgetsLimits node consolidation/replacement

06 · Cold-start dependency loops

Common loops

Registry runs in the cluster that needs it to pull imagesImages can't be pulled to start the registry
Identity provider hosted on the platform you log intoNobody can log in to fix it
GitOps pulls from a Git server hosted in the same clusterNothing to sync from
Secrets manager needs unsealing by a service that needs secretsDeadlock

Recovery tools

rabbitmqctl force_boot (on a stopped node)Let a RabbitMQ node start without waiting for peers (after checking which node is most recent)
podManagementPolicy: Parallel (StatefulSet)Start all members together when they must find each other
Break-glass accounts + local credentialsAccess that doesn't depend on SSO

07 · Symptom-based monitoring

Page on symptoms

SLO burn rate (errors, latency) at the user edgeUsers are being hurt at a rate that matters
Synthetic journey failuresUsers can't complete a key flow
Absence: no data / no traffic when there should beSilent failures

Ticket or dashboard for causes

High CPU, memory, disk growth, pod restartsInvestigate during work hours unless they threaten an SLO soon
Capacity forecasts (disk full in < 3 days)Predictive ticket, not a page
Alert quality: % actionable, pages/week, time to acknowledgeMeasure the alerts themselves