open-nomad/website/source/docs/drivers/lxc.html.md
Seth Vargo 4a1fa67f26
Separate agent configuration into its own pages
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.
2016-11-02 18:30:00 -04:00

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 to error. Must be one of trace, debug, info, warn, or error.

    config {
      log_level = "debug"
    }
    
  • verbosity - (Optional) Enables extra verbosity in the LXC library's logging. Defaults to quiet. Must be one of quiet or verbose.

    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 installed
  • lxc-templates to be installed

Client Configuration

  • lxc.enable - The lxc driver may be disabled on hosts by setting this [client configuration][/docs/agent/configuration/client.html##options-parameters] option to false (defaults to true).

Client Attributes

The lxc driver will set the following client attributes:

  • driver.lxc - Set to 1 if LXC is found and enabled on the host node.
  • driver.lxc.version - Version of lxc 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.