Glossary
This glossary provides definitions and explanations for important terms andconcepts used in Nomad.
Allocation
An Allocation is a mapping between a task group in a job and a client node. Asingle job may have hundreds or thousands of task groups, meaning anequivalent number of allocations must exist to map the work to clientmachines. Allocations are created by the Nomad servers as part of schedulingdecisions made during an evaluation.
Authoritative and Non-Authoritative Regions
The authoritative region is the region in a federated multi-region cluster thatholds the source of true for entities replicated across regions, such as ACLtokens, policies, and roles, namespaces, and node pools.
All other regions are considered non-authoritative regions and replicate theseentities by pulling them from the authoritative region.
Bin Packing
Bin Packing is the process of filling bins with items in a way that maximizesthe utilization of bins. This extends to Nomad, where the clients are "bins"and the items are task groups. Nomad optimizes resources by efficiently binpacking tasks onto client machines.
Client
A Nomad client is an agent configured to run and manage tasks using availablecompute resources on a machine. The agent is responsible for registering withthe servers, watching for any work to be assigned and executing tasks. TheNomad agent is a long lived process which interfaces with the servers.
Datacenters
Nomad models a datacenter as an abstract grouping of clients within aregion. Nomad clients are not required to be in the same datacenter as theservers they are joined with, but do need to be in the sameregion. Datacenters provide a way to express fault tolerance among jobs aswell as isolation of infrastructure.
Deployment
Deployments are the mechanism by which Nomad rolls out changes to cluster statein a step-by-step fashion. Deployments are only available for Jobs with the typeservice. When an Evaluation is processed, the scheduler creates only thenumber of Allocations permitted by theupdate block and the current stateof the cluster. The Deployment is used to monitor the health of thoseAllocations and emit a new Evaluation for the next step of the update.
Driver
A Driver represents the basic means of executing yourTasks. ExampleDrivers include Docker, QEMU, Java, and static binaries.
Evaluation
Evaluations are the mechanism by which Nomad makes scheduling decisions. Wheneither thedesired state (jobs) oractual state (clients) changes, Nomadcreates a new evaluation to determine if any actions must be taken. Anevaluation may result in changes to allocations if necessary.
Job
A Job is a specification provided by users that declares a workload forNomad. A Job is a form ofdesired state; the user is expressing that thejob should be running, but not where it should be run. The responsibility ofNomad is to make sure theactual state matches the user desired state. AJob is composed of one or more task groups.
Node
A more generic term used to refer to machines running Nomad agents in clientmode. Despite being different concepts, you may findnode being usedinterchangeably withclient in some materials and informalcontent.
Node Pool
Node pools are used to groupnodes and can be used to restrict whichjobs are able to placeallocations in a given set ofnodes. Example use cases for node pools include segmenting nodes by environment(development, staging, production), by department (engineering, finance,support), or by functionality (databases, ingress proxy, applications).
Regions
Nomad models infrastructure as regions and datacenters. A region will containone or more datacenters. A set of servers joined together will represent asingle region. Servers federate across regions to make Nomad globally aware.
In federated clusters one of the regions must be defined as theauthoritativeregion.
Server
Nomad servers are the brains of the cluster. There is a cluster of servers perregion and they manage all jobs and clients, run evaluations, and create taskallocations. The servers replicate data between each other and perform leaderelection to ensure high availability. More information about latencyrequirements for servers can be found inNetworkTopology.
Task
A Task is the smallest unit of work in Nomad. Tasks are executed by drivers,which allow Nomad to be flexible in the types of tasks it supports. Tasksspecify their driver, configuration for the driver, constraints, and resourcesrequired.
Task Group
A Task Group is a set of tasks that must be run together. For example, a webserver may require that a log shipping co-process is always running as well. Atask group is the unit of scheduling, meaning the entire group must run on thesame client node and cannot be split.