2015-09-12 00:01:02 +00:00
|
|
|
---
|
2020-02-06 23:45:31 +00:00
|
|
|
layout: docs
|
|
|
|
page_title: Task Drivers
|
|
|
|
description: Task Drivers are used to integrate with the host OS to run tasks in Nomad.
|
2015-09-12 00:01:02 +00:00
|
|
|
---
|
|
|
|
|
2015-09-20 22:31:33 +00:00
|
|
|
# Task Drivers
|
2015-09-12 00:01:02 +00:00
|
|
|
|
2015-09-20 22:31:33 +00:00
|
|
|
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.
|
2015-09-12 00:01:02 +00:00
|
|
|
|
2019-01-29 20:53:05 +00:00
|
|
|
Starting with Nomad 0.9, task drivers are now pluggable. This gives users the
|
|
|
|
flexibility to introduce their own drivers without having to recompile Nomad.
|
2023-01-30 14:48:43 +00:00
|
|
|
You can view the [plugin block][plugin] documentation for examples on how to
|
|
|
|
use the `plugin` block in Nomad's client configuration. Note that we have
|
2019-01-29 20:53:05 +00:00
|
|
|
introduced new syntax when specifying driver options in the client configuration
|
|
|
|
(see [docker][docker_plugin] for an example). Keep in mind that even though all
|
|
|
|
built-in drivers are now plugins, Nomad remains a single binary and maintains
|
2020-02-06 23:45:31 +00:00
|
|
|
backwards compatibility except with the `lxc` driver.
|
2019-01-29 20:53:05 +00:00
|
|
|
|
|
|
|
The list of supported task drivers is provided on the left of this page. Each
|
|
|
|
task driver documents the configuration available in a [job
|
2023-01-25 17:31:14 +00:00
|
|
|
specification](/nomad/docs/job-specification), the environments it can be
|
2019-01-29 20:53:05 +00:00
|
|
|
used in, and the resource isolation mechanisms available.
|
2015-09-12 00:01:02 +00:00
|
|
|
|
2019-05-07 17:40:22 +00:00
|
|
|
For details on authoring a task driver plugin, please refer to the [plugin
|
|
|
|
authoring guide][plugin_guide].
|
2019-01-29 20:53:05 +00:00
|
|
|
|
2019-09-03 22:19:46 +00:00
|
|
|
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
|
2019-09-04 00:38:32 +00:00
|
|
|
underlying client operating systems. Task drivers do include various
|
|
|
|
security-related controls, but the Nomad client to task interface should not be
|
2019-09-03 22:19:46 +00:00
|
|
|
considered a security boundary. See the [access control guide][acl_guide] for
|
|
|
|
more information on how to protect Nomad cluster operations.
|
|
|
|
|
2023-01-25 17:31:14 +00:00
|
|
|
[plugin]: /nomad/docs/configuration/plugin
|
|
|
|
[docker_plugin]: /nomad/docs/drivers/docker#client-requirements
|
|
|
|
[plugin_guide]: /nomad/docs/concepts/plugins
|
|
|
|
[acl_guide]: /nomad/tutorials/access-control
|