I apologize in advance for the rather long PR, but unfortunately there is not an easy way to break this up into smaller chunks. This separates the agent configuration into smaller, more consumable pieces just like the job specification.
2.5 KiB
layout | page_title | sidebar_current | description |
---|---|---|---|
docs | Drivers: LXC | docs-drivers-lxc | The LXC task driver is used to run application containers using LXC. |
LXC Driver
Name: lxc
The lxc
driver provides an interface for using LXC for running application
containers.
!> Experimental! Currently, the LXC driver supports launching containers via templates but only supports host networking. If both an LXC image and the host it is run on use upstart or systemd, shutdown signals may be passed from the container to the host.
~> LXC is only enabled in the special linux_amd64_lxc
build of Nomad because
it links to the liblxc
system library. Use the lxc
build tag if compiling
Nomad yourself.
Task Configuration
task "busybox" {
driver = "lxc"
config {
log_level = "trace"
verbosity = "verbose"
template = "/usr/share/lxc/templates/lxc-busybox"
}
}
The lxc
driver supports the following configuration in the job spec:
-
template
- The LXC template to run.config { template = "/usr/share/lxc/templates/lxc-alpine" }
-
log_level
- (Optional) LXC library's logging level. Defaults toerror
. Must be one oftrace
,debug
,info
,warn
, orerror
.config { log_level = "debug" }
-
verbosity
- (Optional) Enables extra verbosity in the LXC library's logging. Defaults toquiet
. Must be one ofquiet
orverbose
.config { verbosity = "quiet" }
Networking
Currently the lxc
driver only supports host networking. See the none
networking type in the lxc.container.conf
manual for more
information.
Client Requirements
The lxc
driver requires the following:
- 64bit Linux host
- The
linux_amd64_lxc
Nomad binary liblxc
to be installedlxc-templates
to be installed
Client Configuration
lxc.enable
- Thelxc
driver may be disabled on hosts by setting this [client configuration][/docs/agent/configuration/client.html##options-parameters] option tofalse
(defaults totrue
).
Client Attributes
The lxc
driver will set the following client attributes:
driver.lxc
- Set to1
if LXC is found and enabled on the host node.driver.lxc.version
- Version oflxc
eg:1.1.0
.
Resource Isolation
This driver supports CPU and memory isolation via the lxc
library. Network
isolation is not supported as of now.