Nomad
Task Drivers
Task drivers are used by Nomad clients 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 drivers are pluggable. This gives users the flexibility to introduce their
own drivers without having to recompile Nomad. You can view the plugin block
documentation for examples on how to use the plugin
block in Nomad's client configuration.
Note that we have introduced new syntax when specifying driver options in the client
configuration (see docker for an example). Keep in mind that even though
all built-in drivers are now plugins, Nomad remains a single binary and maintains
backwards compatibility except with the lxc
driver.
The list of supported task drivers is provided on the left of this page. Each task driver documents the configuration available in a job specification, the environments it can be used in, and the resource isolation mechanisms available.
For details on authoring a task driver plugin, please refer to the plugin authoring guide.
Task driver resource isolation is intended to provide a degree of separation of Nomad client CPU / memory / storage between tasks. Resource isolation effectiveness is dependent 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. See the access control guide for more information on how to protect Nomad cluster operations.