mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
The RPC handler for scaling a job passes flags to enforce the job modify index is unchanged when it makes the write to Raft. But its only checking against the existing job modify index at the time the RPC handler snapshots the state store, so it can only enforce consistency for its own validation. In clusters with automated scaling, it would be useful to expose the enforce index options to the API, so that cluster admins can enforce that scaling only happens when the job state is consistent with a state they've previously seen in other API calls. Add this option to the CLI and API and have the RPC handler check them if asked. Fixes: https://github.com/hashicorp/nomad/issues/23444
104 lines
4.0 KiB
Plaintext
104 lines
4.0 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: 'Commands: job scale'
|
|
description: |
|
|
The job scale command is used to change the count of a Nomad job group.
|
|
---
|
|
|
|
# Command: job scale
|
|
|
|
The `job scale` command is used to alter the number of running allocations within
|
|
a Nomad task group.
|
|
|
|
## Usage
|
|
|
|
```plaintext
|
|
nomad job scale [options] <job> <group> <count>
|
|
```
|
|
|
|
The `job scale` commands requires at least two arguments and potentially three
|
|
depending on the job specification. The first argument will be the job ID of the
|
|
job you wish to scale. If the job contains a single task group, you can omit
|
|
including the task group name as the second argument and the command will perform
|
|
the required lookup. The final argument is the count that you wish the job task
|
|
group to be changed to. The count is the absolute value that will be reflected in
|
|
the job specification.
|
|
|
|
Scale will issue a request to update the matched job and then invoke an interactive
|
|
monitor that exits automatically once the scheduler has processed the request.
|
|
It is safe to exit the monitor early using ctrl+c.
|
|
|
|
When ACLs are enabled, this command requires a token with the
|
|
`read-job-scaling` and either the `scale-job` or `submit-job` capabilities
|
|
for the job's namespace. The `list-jobs` capability is required to run the
|
|
command with a job prefix instead of the exact job ID. The `read-job`
|
|
capability is required to monitor the resulting evaluation when `-detach` is
|
|
not used.
|
|
|
|
## General Options
|
|
|
|
@include 'general_options.mdx'
|
|
|
|
## Scale Options
|
|
|
|
- `-check-index`: If set, the job is only scaled if the passed job modify index
|
|
matches the server side version. Ignored if value of zero is passed. If a
|
|
non-zero value is passed, it ensures that the job is being updated from a
|
|
known state.
|
|
|
|
- `-detach`: Return immediately instead of entering monitor mode. After the
|
|
scale command is submitted, a new evaluation ID is printed to the screen,
|
|
which can be used to examine the evaluation using the [eval status] command.
|
|
|
|
- `-verbose`: Show full information.
|
|
|
|
## Examples
|
|
|
|
Scale the job with ID "job1" which contains a single task group to a count of 8:
|
|
|
|
```shell-session
|
|
$ nomad job scale job1 8
|
|
==> Monitoring evaluation "529cc88e"
|
|
Evaluation triggered by job "job1"
|
|
Evaluation within deployment: "28a3378f"
|
|
Allocation "2a4df8ca" created: node "2f0a2f93", group "group1"
|
|
Allocation "b7eefe49" created: node "2f0a2f93", group "group1"
|
|
Allocation "bd54a83d" created: node "2f0a2f93", group "group1"
|
|
Allocation "fadeaea8" created: node "2f0a2f93", group "group1"
|
|
Allocation "4bd1397b" modified: node "2f0a2f93", group "group1"
|
|
Allocation "93684511" modified: node "2f0a2f93", group "group1"
|
|
Allocation "b409f0a2" modified: node "2f0a2f93", group "group1"
|
|
Allocation "18f50054" created: node "2f0a2f93", group "group1"
|
|
Evaluation status changed: "pending" -> "complete"
|
|
==> Evaluation "529cc88e" finished with status "complete"
|
|
```
|
|
|
|
Scale the job with ID "job1" which contains a single task group to a count of 8
|
|
and return immediately:
|
|
|
|
```shell-session
|
|
$ nomad job scale -detach job1 8
|
|
Evaluation ID: b754d6b3-8960-5652-60d8-d47df6eaed13
|
|
```
|
|
|
|
Scale the job with ID "job1" and the task group "group1" to a count of 8:
|
|
|
|
```shell-session
|
|
$ nomad job scale job1 group1 8
|
|
==> Monitoring evaluation "529cc88e"
|
|
Evaluation triggered by job "job1"
|
|
Evaluation within deployment: "28a3378f"
|
|
Allocation "2a4df8ca" created: node "2f0a2f93", group "group1"
|
|
Allocation "b7eefe49" created: node "2f0a2f93", group "group1"
|
|
Allocation "bd54a83d" created: node "2f0a2f93", group "group1"
|
|
Allocation "fadeaea8" created: node "2f0a2f93", group "group1"
|
|
Allocation "4bd1397b" modified: node "2f0a2f93", group "group1"
|
|
Allocation "93684511" modified: node "2f0a2f93", group "group1"
|
|
Allocation "b409f0a2" modified: node "2f0a2f93", group "group1"
|
|
Allocation "18f50054" created: node "2f0a2f93", group "group1"
|
|
Evaluation status changed: "pending" -> "complete"
|
|
==> Evaluation "529cc88e" finished with status "complete"
|
|
```
|
|
|
|
[eval status]: /nomad/docs/commands/eval/status
|