github.com/anuvu/nomad@v0.8.7-atom1/website/source/docs/commands/node/drain.html.md.erb (about) 1 --- 2 layout: "docs" 3 page_title: "Commands: node drain" 4 sidebar_current: "docs-commands-node-drain" 5 description: > 6 The node drain command is used to configure a node's drain strategy. 7 --- 8 9 # Command: node drain 10 11 The `node drain` command is used to toggle drain mode on a given node. Drain 12 mode prevents any new tasks from being allocated to the node, and begins 13 migrating all existing allocations away. Allocations will be migrated according 14 to their [`migrate`][migrate] stanza until the drain's deadline is reached. 15 16 By default the `node drain` command blocks until a node is done draining and 17 all allocations have terminated. Canceling the `node drain` command *will not* 18 cancel the drain. Drains may be canceled by using the `-disable` parameter 19 below. 20 21 When draining more than one node at a time, it is recommended you first disable 22 [scheduling eligibility][eligibility] on all nodes that will be drained. For 23 example if you are decommissioning an entire class of nodes, first run `node 24 eligibility -disable` on all of their node IDs, and then run `node drain 25 -enable`. This will ensure allocations drained from the first node are not 26 placed on another node about to be drained. 27 28 The [node status](/docs/commands/node/status.html) command compliments this 29 nicely by providing the current drain status of a given node. 30 31 See the [Decommissioning Nodes guide](/guides/node-draining.html) for detailed 32 examples of node draining. 33 34 ## Usage 35 36 ``` 37 nomad node drain [options] <node> 38 ``` 39 40 A `-self` flag can be used to drain the local node. If this is not supplied, a 41 node ID or prefix must be provided. If there is an exact match, the drain mode 42 will be adjusted for that node. Otherwise, a list of matching nodes and 43 information will be displayed. 44 45 It is also required to pass one of `-enable` or `-disable`, depending on which 46 operation is desired. 47 48 ## General Options 49 50 <%= partial "docs/commands/_general_options" %> 51 52 ## Drain Options 53 54 * `-enable`: Enable node drain mode. 55 * `-disable`: Disable node drain mode. 56 * `-deadline`: Set the deadline by which all allocations must be moved off the 57 node. Remaining allocations after the deadline are force removed from the 58 node. Defaults to 1 hour. 59 * `-detach`: Return immediately instead of entering monitor mode. 60 * `-monitor`: Enter monitor mode directly without modifying the drain status. 61 * `-force`: Force remove allocations off the node immediately. 62 * `-no-deadline`: No deadline allows the allocations to drain off the node 63 without being force stopped after a certain deadline. 64 * `-ignore-system`: Ignore system allows the drain to complete without stopping 65 system job allocations. By default system jobs are stopped last. 66 * `-keep-ineligible`: Keep ineligible will maintain the node's scheduling 67 ineligibility even if the drain is being disabled. This is useful when an 68 existing drain is being cancelled but additional scheduling on the node is not 69 desired. 70 * `-self`: Drain the local node. 71 * `-yes`: Automatic yes to prompts. 72 73 ## Examples 74 75 Enable drain mode on node with ID prefix "4d2ba53b": 76 77 ``` 78 $ nomad node drain -enable f4e8a9e5 79 Are you sure you want to enable drain mode for node "f4e8a9e5-30d8-3536-1e6f-cda5c869c35e"? [y/N] y 80 2018-03-30T23:13:16Z: Ctrl-C to stop monitoring: will not cancel the node drain 81 2018-03-30T23:13:16Z: Node "f4e8a9e5-30d8-3536-1e6f-cda5c869c35e" drain strategy set 82 2018-03-30T23:13:17Z: Alloc "1877230b-64d3-a7dd-9c31-dc5ad3c93e9a" marked for migration 83 2018-03-30T23:13:17Z: Alloc "1877230b-64d3-a7dd-9c31-dc5ad3c93e9a" draining 84 2018-03-30T23:13:17Z: Alloc "1877230b-64d3-a7dd-9c31-dc5ad3c93e9a" status running -> complete 85 2018-03-30T23:13:29Z: Alloc "3fce5308-818c-369e-0bb7-f61f0a1be9ed" marked for migration 86 2018-03-30T23:13:29Z: Alloc "3fce5308-818c-369e-0bb7-f61f0a1be9ed" draining 87 2018-03-30T23:13:30Z: Alloc "3fce5308-818c-369e-0bb7-f61f0a1be9ed" status running -> complete 88 2018-03-30T23:13:41Z: Alloc "9a98c5aa-a719-2f34-ecfc-0e6268b5d537" marked for migration 89 2018-03-30T23:13:41Z: Alloc "9a98c5aa-a719-2f34-ecfc-0e6268b5d537" draining 90 2018-03-30T23:13:41Z: Node "f4e8a9e5-30d8-3536-1e6f-cda5c869c35e" has marked all allocations for migration 91 2018-03-30T23:13:42Z: Alloc "9a98c5aa-a719-2f34-ecfc-0e6268b5d537" status running -> complete 92 2018-03-30T23:13:42Z: All allocations on node "f4e8a9e5-30d8-3536-1e6f-cda5c869c35e" have stopped. 93 ``` 94 95 Enable drain mode on the local node: 96 97 ``` 98 $ nomad node drain -enable -self 99 ... 100 ``` 101 102 Enable drain mode but do not stop system jobs: 103 104 ``` 105 $ nomad node drain -enable -ignore-system 4d2ba53b 106 ... 107 ``` 108 109 Disable drain mode but keep the node ineligible for scheduling. Useful for 110 inspecting the current state of a misbehaving node without Nomad trying to 111 start or migrate allocations: 112 113 ``` 114 $ nomad node drain -disable -keep-ineligible 4d2ba53b 115 ... 116 ``` 117 118 Enable drain mode and detach from monitoring, then reattach later: 119 120 ``` 121 $ nomad node drain -enable -detach -self 122 ... 123 $ nomad node drain -self -monitor 124 ... 125 ``` 126 127 [eligibility]: /docs/commands/node/eligibility.html 128 [migrate]: /docs/job-specification/migrate.html