Affinity-aware allocation replacement in Nomad rolling updates
0 reputation · 18 Aug 2023, 10:37 UTC
Migrating a small type = service application across heterogeneous node groups using Nomad's rolling update mechanism requires preserving application-local state without triggering temporary downtime.
When dispatch = rolling replaces old allocations, the interaction between reschedule behavior, node affinity constraints, and min_healthy_percentage evaluation is not explicitly documented for all placement configurations, creating uncertainty about whether replacement tasks inherit the same logical node set as terminated allocations.
Does Nomad evaluate affinity before or after health check success when deciding to terminate old allocations? Can placement stanza expressions combined with soft/hard affinity directives guarantee that replacement allocations land on the same logical node set? What min_healthy_percentage value safely balances replacement pacing against affinity-preserving node selection for a three-node job with max_unscheduled = 1?