Nomad
Nomad is a workload orchestrator to deploy and manage containers and non-containerized applications.
Installation
Known issues
NVIDIA not supported
NVIDIA support has been disabled due to there being no way to disable a non-existent driver being loaded. When compiled with NVIDIA support, the instance immediately crashes /usr/bin/nomad: undefined symbol: nvmlDeviceGetGraphicsRunningProcesses. The NVIDIA driver plugin will be externalised, see Github issue #8330.
Default plugin directory
The default plugin directory /var/lib/nomad/plugins has been changed to /usr/lib/nomad/plugins to reflect FHS.
Configuration
Nomad loads all configuration files in the /etc/nomad.d directory on startup.
Setup TLS encryption with Nomad.
Server
Create a configuration file at /etc/nomad.d/server.hcl:
bootstrap_expect value with the number of Nomad servers you are deploying; three or five is recommended./etc/nomad.d/server.hcl
server {
enabled = true
bootstrap_expect = 3
}
Client
Create a configuration file at /etc/nomad.d/client.hcl:
/etc/nomad.d/client.hcl
client {
enabled = true
}
Task drivers
Task drivers are used by Nomad clients to execute a task and provide resource isolation.
Nomad ships with support for the following task drivers out of the box:
- Docker (requires docker)
- Java (requires java-runtime[broken link: package not found] or java-runtime-headless[broken link: package not found])
- QEMU (requires qemu)
-
exec&raw_exec
containerd
/etc/nomad.d/containerd.hcl
plugin "containerd-driver" {
config {
# Arch Linux uses cgroups v2 by default
# For cgroups v1, use "io.containerd.runc.v1"
containerd_runtime = "io.containerd.runc.v2"
}
}