Kubernetes SRE guide
Kubernetes Multi-Region and Edge Architecture Guide
Choose regions, data boundaries, and traffic controls from application correctness and measured user experience, not geographic intuition alone.
On this page
Multi-region Kubernetes architecture can reduce exposure to a regional failure and bring some workloads nearer to users. It also introduces more state, coordination, routing, release, observability, and incident-response complexity. An edge layer can improve delivery decisions for suitable traffic, but it cannot make a strongly consistent write safe across regions or remove the latency of a centralized dependency.
Data design comes before traffic steering
Decide where authoritative writes live, how replicas lag or conflict, and what a user sees during a regional failure before sending the same session to more than one region.
Overview
Outcome and prerequisites
Outcome: Acme Shop can deliver public catalog reads close to EU and US customers while keeping checkout writes in their home authority and rehearsing a bounded, reversible US application failover. Prerequisites: two independently deployable clusters, documented data authority, a tested same-authority standby, regional capacity evidence, edge-to-origin authentication, and synthetic checkout telemetry.
Running scenario: Acme Shop protects checkout authority
Acme Shop serves public catalog pages from regional edge caches. EU customer accounts and checkout writes remain in the EU authority; US accounts and checkout writes remain in the US authority. Product catalog reads can use approved replicas with a disclosed freshness policy. During a US application-region outage, Acme can shift a small US checkout cohort only to a compatible US standby with payment, data, and capacity prerequisites. It does not route EU personal data or US payments to another authority simply because it is geographically close or healthy.
- EU and US shoppers
Requests enter the nearest approved edge.
- Regional edge
Public catalog reads may be served from a safe cache; private and write routes are explicit.
- Home authority
Account and checkout writes remain in their documented EU or US authority.
- Compatible standby
A same-authority standby receives only a progressive, approved failure shift.
- End-to-end evidence
Synthetic journeys and traces prove destination, correctness, latency, and capacity.
Figure 1. Edge proximity improves delivery for suitable traffic, while account and checkout authority remains an application and data invariant.
Classify data and choose a topology
Separate static public assets, cacheable public responses, personalized reads, authenticated writes, asynchronous jobs, and control-plane functions. For every store, document source of truth, replica topology, replication lag, conflict resolution, backup and restore, encryption and residency constraints, and behavior during partial failure. Include sessions, rate-limit counters, queues, secrets, certificates, feature flags, and identity dependencies; a service is not stateless merely because its pods are replaceable.
A single active region with tested recovery is often the simplest consistency model. Active-passive application regions can reduce startup time while preserving write ownership. Active-active systems require explicit partitioning, affinity, or a data system designed for the needed consistency. Running the same image in two regions does not make a system active-active if all meaningful writes depend on one database region.
Make Kubernetes placement explicit
Deploy each regional workload reproducibly and validate it under its intended failure role. The following Kubernetes topologySpreadConstraints example spreads checkout-api across zones within one Acme Shop regional cluster. It improves zone distribution; it does not substitute for cross-region data replication, capacity, or a failover policy.
apiVersion: apps/v1
kind: Deployment
metadata:
name: checkout-api
namespace: acme-shop-us
spec:
replicas: 6
selector:
matchLabels:
app: checkout-api
template:
metadata:
labels:
app: checkout-api
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: checkout-api
containers:
- name: checkout-api
image: registry.example.invalid/acme/checkout-api:2026.07.14
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
memory: 1Gi
Traffic steering can operate at DNS, an edge proxy, global load balancer, or application layer. Choose the control point for propagation behavior, protocol needs, session handling, observability, and rollback speed. DNS caches and client behavior can delay a change. Use health checks that represent the journey users need, but do not make them so deep that an optional slow dependency withdraws all capacity. Every policy needs a documented rollback and an access-controlled, audited manual override.
For a 50% planned shift of a 800 requests-per-second US checkout load with 30% headroom, the standby needs at least 800 x 0.5 x 1.3 = 520 requests per second of validated safe capacity. Validate database pools, payment-provider quota, TLS, WAF or rate policy, queue workers, and deployment parity at the same time.
trace_id=4bf92f7a route=POST /checkout client_region=US
selected_origin=us-east-authority authority=US steering=primary cache_status=BYPASS
journey_health=healthy deployment=2026.07.14 standby_capacity=520rps
eu_authority_requests_to_us=0 decision=hold_primaryRehearse failover and failback
Measure from the user or synthetic client through DNS, TLS, edge, ingress, application, data store, and critical external services. Segment by user region, route, selected origin, network, and release. Keep shifts progressive: start with a limited cohort or path, hold for a defined dwell period, and expand only while customer success, latency, data behavior, and regional saturation meet the approved criteria. A full immediate shift can turn an isolated incident into a global capacity event.
Validation
Validation, rollback, and failure behavior
In an approved exercise window, establish baseline US checkout success, p95 latency, payment behavior, queue age, and regional capacity. Make only the scoped US primary journey check fail, shift 10% of disposable synthetic checkout traffic to the compatible US standby, and hold for the dwell period. Verify EU requests never select US authority and each test order is recorded once. Restore primary health, wait for recovery hysteresis, and shift traffic back gradually. If duplicate, uncertain, or cross-authority behavior appears, halt the shift, restore the last reviewed route policy or primary destination, preserve evidence, and reconcile only through the documented payment and order process. Do not force global failover or bypass security controls to complete an exercise.
Troubleshooting
Troubleshooting
| Symptom | Likely cause | Safe check | Recovery |
|---|---|---|---|
| Traffic flaps between regions | Health check lacks recovery hysteresis or minimum dwell | Compare health history with routing events | Add consecutive-success and dwell requirements before repeating the exercise. |
| Standby receives traffic but checkout fails | Missing deployment, secret reference, dependency, or quota parity | Run an approved synthetic checkout and inspect dependency health | Halt the shift, restore primary routing, and repair the missing prerequisite. |
| EU request reaches a US service | Proximity rule overrode data-authority policy | Inspect sanitized trace attributes for route and authority | Disable the unsafe route rule, restore the reviewed policy, and assess exposure through the proper process. |
| Origin load spikes after regional shift | Cache is cold, cache key differs, or shield is bypassed | Compare hit ratio, cache keys, and origin concurrency | Pause further shift, restore cache consistency, and warm only public paths. |
| DNS change appears ineffective | Recursive resolvers retained the prior answer | Compare resolver responses with edge traffic distribution | Use the approved edge control for a confirmed outage and allow DNS caches to converge. |
Related guides
Authoritative references
- Kubernetes: Multi-Zone
- Kubernetes: Topology Aware Routing
- Google SRE: Data Integrity
- Google SRE: Disaster Recovery Planning
Evaluate the edge as part of a regional system
Talk to Optimi about measured edge and delivery architecture for multi-region applications, with correctness and origin capacity kept in scope.
Discuss multi-region delivery