Guides

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.

Published
Updated
Reading time
15 min read
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.

Acme Shop regional authority and failover
  1. EU and US shoppers

    Requests enter the nearest approved edge.

  2. Regional edge

    Public catalog reads may be served from a safe cache; private and write routes are explicit.

  3. Home authority

    Account and checkout writes remain in their documented EU or US authority.

  4. Compatible standby

    A same-authority standby receives only a progressive, approved failure shift.

  5. 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.

Representative output: Acme Shop US checkout routing decision
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_primary

Rehearse 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

SymptomLikely causeSafe checkRecovery
Traffic flaps between regionsHealth check lacks recovery hysteresis or minimum dwellCompare health history with routing eventsAdd consecutive-success and dwell requirements before repeating the exercise.
Standby receives traffic but checkout failsMissing deployment, secret reference, dependency, or quota parityRun an approved synthetic checkout and inspect dependency healthHalt the shift, restore primary routing, and repair the missing prerequisite.
EU request reaches a US serviceProximity rule overrode data-authority policyInspect sanitized trace attributes for route and authorityDisable the unsafe route rule, restore the reviewed policy, and assess exposure through the proper process.
Origin load spikes after regional shiftCache is cold, cache key differs, or shield is bypassedCompare hit ratio, cache keys, and origin concurrencyPause further shift, restore cache consistency, and warm only public paths.
DNS change appears ineffectiveRecursive resolvers retained the prior answerCompare resolver responses with edge traffic distributionUse the approved edge control for a confirmed outage and allow DNS caches to converge.

Authoritative references

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