Nomad
Overview
HashiCorp Nomad is a simple, flexible, and lightweight workload orchestrator capable of managing containerized applications (Docker), native binaries, and system tasks.
In this homelab setup, Nomad operates alongside Consul for service discovery and Vault for secret management, deployed across virtualized environments on Proxmox VE.
Known Issues & Troubleshooting
Dynamic CPU Allocation Issues (Proxmox LXC)
Symptom & Error
When running tasks on Nomad inside a Proxmox LXC container backed by Docker, the following error may appear in the Nomad logs:
Requested CPUs are not available - requested 1, available: 4
Cause
This stems from a cpuset cgroup desynchronization between Proxmox LXC and the Docker/Nomad daemon. When CPU cores are modified dynamically via the Proxmox GUI or API, the LXC container does not properly propagate these cgroup limit updates to Nomad.
Solution
The fix requires explicitly pinning the allocated CPU cores directly inside the LXC container configuration file on the Proxmox host:
cores: 1
lxc.cgroup2.cpuset.cpus: 1
Remember to restart the LXC container after applying this modification for the changes to take effect in Nomad.