← Load balancing: traffic and resilience
06 / 6 · 40 MIN

Draining, releases, and operations

Validate actual traffic and coordinate request completion during changes.

Concept and mechanism

Retiring a target requires knowing the semantics of its state. In HAProxy 3.2, DRAIN can still accept persistence-associated connections; it means neither zero connections nor session replication. In Kubernetes, a terminating endpoint can remain in EndpointSlice with ready=false while the application finishes existing requests. The grace period is finite and can end in forced shutdown. In AWS ALB, deregistration delay helps in-flight requests finish, but the target must retain necessary connections. If the application stops first, the delay does not execute its work. Define criteria and observe the actual transition.

Guided application

For release validation, identify backend, version, and attempts alongside the final client status. Success after retry can hide a failing instance; a global mean can conceal tail latency. Affinity can also send every operator sample to the old version. Use a controlled path observing the changed component with representative data and authorization. At RUN handover, record owners, health, capacity, retirement, recovery criteria, and validation evidence. Course examples are fictional and no labs or load tests were executed. Check documentation, version, and edition before applying options because capabilities and defaults change across releases.

IN PRACTICE

DRAIN is a state to interpret; session completion is an outcome to observe.

Common pitfalls

A state as zero traffic; delay as backend execution; ignored test cookies; global mean as complete diagnosis.

Related topics: Routing and TLS boundaries · Algorithms, affinity, and state · Health checks and readiness

Take this idea with you

Accept change using evidence from the actual target and operational completion.

Create account

Reference: HAProxy 3.2 configuration manual · DR load balancing 2026-09; selected NGINX, HAProxy 3.2, Kubernetes and AWS ALB behavior