Nomad
Task drivers
Nomad clients use task drivers to execute a task and provide resource isolation. By having extensible task drivers, Nomad has the flexibility to support a broad set of workloads across all major operating systems.
Task driver resource isolation provides a degree of separation of Nomad client CPU, memory, and storage between tasks. Resource isolation effectiveness depends upon individual task driver implementations and underlying client operating systems. Task drivers do include various security-related controls, but the Nomad client-to-task interface should not be considered a security boundary. Refer to the access control guide for more information on how to protect Nomad cluster operations.
Configuration
Refer to the plugin block documentation for examples on how to use the plugin block in Nomad's client configuration. Review the Docker driver's Client Requirements section for a detailed example.
Nomad task drivers
The Nomad binary contains several bundled task drivers. We also support additional task drivers that you may install separately.
Bundled with Nomad | Separate installation |
---|---|
Docker | Exec2 |
Isolated Fork/Exec | Podman |
Java | Virt |
QEMU | |
Raw Fork/Exec |
Each task driver page documents the configuration available in a job specification, the environments you can use the task driver in, and the resource isolation mechanisms available.
Community task drivers
You may also use community-supported task driver plugins.
Create task drivers
Nomad's task driver architecture is pluggable, which gives you the flexibility to create your own drivers without having to recompile Nomad. Refer to the plugin authoring guide for details.