Files
nomad/website/content/docs/job-specification/migrate.mdx
Aimee Ukasick 53b083b8c5 Docs: Nomad IA (#26063)
* Move commands from docs to its own root-level directory

* temporarily use modified dev-portal branch with nomad ia changes

* explicitly clone nomad ia exp branch

* retrigger build, fixed dev-portal broken build

* architecture, concepts and get started individual pages

* fix get started section destinations

* reference section

* update repo comment in website-build.sh to show branch

* docs nav file update capitalization

* update capitalization to force deploy

* remove nomad-vs-kubernetes dir; move content to what is nomad pg

* job section

* Nomad operations category, deploy section

* operations category, govern section

* operations - manage

* operations/scale; concepts scheduling fix

* networking

* monitor

* secure section

* remote auth-methods folder and move up pages to sso; linkcheck

* Fix install2deploy redirects

* fix architecture redirects

* Job section: Add missing section index pages

* Add section index pages so breadcrumbs build correctly

* concepts/index fix front matter indentation

* move task driver plugin config to new deploy section

* Finish adding full URL to tutorials links in nav

* change SSO to Authentication in nav and file system

* Docs NomadIA: Move tutorials into NomadIA branch (#26132)

* Move governance and policy from tutorials to docs

* Move tutorials content to job-declare section

* run jobs section

* stateful workloads

* advanced job scheduling

* deploy section

* manage section

* monitor section

* secure/acl and secure/authorization

* fix example that contains an unseal key in real format

* remove images from sso-vault

* secure/traffic

* secure/workload-identities

* vault-acl change unseal key and root token in command output sample

* remove lines from sample output

* fix front matter

* move nomad pack tutorials to tools

* search/replace /nomad/tutorials links

* update acl overview with content from deleted architecture/acl

* fix spelling mistake

* linkcheck - fix broken links

* fix link to Nomad variables tutorial

* fix link to Prometheus tutorial

* move who uses Nomad to use cases page; move spec/config shortcuts

add dividers

* Move Consul out of Integrations; move namespaces to govern

* move integrations/vault to secure/vault; delete integrations

* move ref arch to docs; rename Deploy Nomad back to Install Nomad

* address feedback

* linkcheck fixes

* Fixed raw_exec redirect

* add info from /nomad/tutorials/manage-jobs/jobs

* update page content with newer tutorial

* link updates for architecture sub-folders

* Add redirects for removed section index pages. Fix links.

* fix broken links from linkcheck

* Revert to use dev-portal main branch instead of nomadIA branch

* build workaround: add intro-nav-data.json with single entry

* fix content-check error

* add intro directory to get around Vercel build error

* workound for emtpry directory

* remove mdx from /intro/ to fix content-check and git snafu

* Add intro index.mdx so Vercel build should work

---------

Co-authored-by: Tu Nguyen <im2nguyen@gmail.com>
2025-07-08 19:24:52 -05:00

90 lines
3.5 KiB
Plaintext

---
layout: docs
page_title: migrate block in the job specification
description: |-
Define the group's allocation migration strategy in the `migrate` block of the Nomad job specification. The migration strategy is used to control the job's behavior when it is being migrated off
of a draining node.
---
# `migrate` block in the job specification
<Placement
groups={[
['job', 'migrate'],
['job', 'group', 'migrate'],
]}
/>
The `migrate` block specifies the group's strategy for migrating allocations from
[draining][drain] nodes. If omitted, a default migration strategy is applied.
If specified at the job level, the configuration will apply to all groups
within the job. Only service jobs with a count greater than 1 support migrate
blocks.
Migrating happens when a Nomad node is drained. When a node is lost, Nomad
[replaces][] the allocations instead and ignores the `migrate` block. When the
agent fails to set up the allocation or the tasks of an allocation more than
their [`restart`][] block allows, Nomad [reschedules][] the allocations instead
and ignores the `migrate` block.
```hcl
job "docs" {
migrate {
max_parallel = 1
health_check = "checks"
min_healthy_time = "10s"
healthy_deadline = "5m"
}
}
```
When one or more nodes are draining, only `max_parallel` allocations will be
stopped at a time. Node draining will not continue until replacement
allocations have been healthy for their `min_healthy_time` or
`healthy_deadline` is reached.
Note that a node's drain [deadline][deadline] will override the `migrate`
block for allocations on that node. The `migrate` block is for job authors to
define how their services should be migrated, while the node drain deadline is
for system operators to put hard limits on how long a drain may take.
See the [Workload Migration Guide](/nomad/docs/manage/migrate-workloads) for details
on node draining.
## Parameters
- `max_parallel` `(int: 1)` - Specifies the number of allocations that can be
migrated at the same time. This number must be less than the total
[`count`][count] for the group as `count - max_parallel` will be left running
during migrations.
- `health_check` `(string: "checks")` - Specifies the mechanism in which
allocations health is determined. The potential values are:
- "checks" - Specifies that the allocation should be considered healthy when
all of its tasks are running and their associated [checks][checks] are
healthy, and unhealthy if any of the tasks fail or not all checks become
healthy. This is a superset of "task_states" mode.
- "task_states" - Specifies that the allocation should be considered healthy when
all its tasks are running and unhealthy if tasks fail.
- `min_healthy_time` `(string: "10s")` - Specifies the minimum time the
allocation must be in the healthy state before it is marked as healthy and
unblocks further allocations from being migrated. This is specified using a
label suffix like "30s" or "15m".
- `healthy_deadline` `(string: "5m")` - Specifies the deadline in which the
allocation must be marked as healthy after which the allocation is
automatically transitioned to unhealthy. This is specified using a label
suffix like "2m" or "1h".
[checks]: /nomad/docs/job-specification/service#check
[count]: /nomad/docs/job-specification/group#count
[drain]: /nomad/commands/node/drain
[deadline]: /nomad/commands/node/drain#deadline
[replaces]: /nomad/docs/job-specification/disconnect#replace
[`restart`]: /nomad/docs/job-specification/restart
[reschedules]: /nomad/docs/job-specification/reschedule