Keynote: Announcing Nomad 0.12
Jun 22, 2020
Learn about all the new features of Nomad 0.12, including multi-cluster deployment, CNI, advanced scheduling, and more.
- Armon DadgarCo-founder and CTO, HashiCorp
The HashiCorp Nomad team has been aggressively rounding out the core orchestration capabilities and also introduces our breakthrough Multi-Cluster Deployment feature for federation. Some highlight are:
- CNI and networking enhancement
- Enable advanced scheduling capabilities
- Spread-based ranking
- Multi-cluster deployment
This keynote session covers where Nomad has been but also where it is going today with the release of Nomad 0.12.
Nomad uses a bin packing algorithm to rank nodes and facilitate optimal placement for scheduled jobs. Bin packing optimizes for resource utilization and application density, and generally seeks to minimize the number of nodes used.
However, there are use cases that would benefit from a spreading strategy that ranks nodes based on those that are least utilized in order to keep utilization even across nodes, optimize for performance, reduce hot spots, and minimize the impact of node failure.
This is why spread-based ranking was delivered in Nomad 0.11.2 and solidified in Nomad 0.12. The new spread-based ranking algorithm prioritizes jobs for placement based on those that are least utilized.
Just add a
SchedulerAlgorithm option to the operator SchedulerConfiguration knob to enable this feature. The flag controls the cluster/region level, so it's controlled by operators, rather than job submitters. Since the ranking algorithm affects overall cluster performance and management rather than individual jobs, its operators can maintain control over the jobs.
Preemption capabilities for service and batch jobs were included in Nomad Enterprise during the 0.9.2 release. They are now available for Nomad open source users as well.
Here is the HashiCorp Learn track for preemption.
A Different Approach than Kubernetes
Nomad focuses on the out-of-box ease of use path for scheduling / workload orchestration. Unlike Kubernetes, Nomad avoids having a myriad of plugins that become hard to track and maintain, instead it has a fast time-to-value setup and will continue to be the leaner, less complex alternative to Kubernetes
One area where Nomad also distinguishes itself from Kubernetes is federation.
Federation has become a critical requirement for enterprises that operate across not just multiple clouds, but also distinct geographies. We believe that Nomad is the first and only scheduler to deliver complete and fully-support Federation capabilities, and that Kubernetes and Mesos fall short in this area.
Nomad Multi-Cluster, Multi-Cloud Federation
Prior to 0.12, Nomad’s federation allows users to join Nomad clusters together into a single UI/CLI interface, enabling multi-cluster visibility and single-cluster deployments. Developers can target their applications and deploy to one specific datacenter/cluster by specifying the region in their jobspec. Operators can utilize this same interface to monitor each cluster.
To achieve multi-cluster deployments today, users make duplicates of each job file and deploy them separately to each federated cluster. This adds strain onto developers and operators with the need to track and maintain not only the original jobspec, but all its other duplicates in the wild.
In this release, Nomad allows developers to deploy applications seamlessly to federated Nomad clusters with configurable rollout and rollback strategies.
Customized CNI Configuration
In Nomad 0.10 we introduced a new networking model that allows tasks of an allocation to share an isolated networking stack. With this we provided a bridge networking model that bridges networking with the host to allow NATed egress and ingress through port mapping. This allows secure task communication to happen over the loopback interface and enables new deployment patterns such as sidecar applications.
However, some users would prefer to provide a customized CNI configuration for their allocations. By enabling custom CNI configurations, Nomad can also integrate with many new and popular software-defined networking (SDN) solutions such as Calico, Cilium, and WeaveNet.
In Nomad 0.12 we've extended the functionality to support operator controlled CNI configuration.
Nomad 0.11 introducted Autoscaling capabilities. Autoscaling allows you to dynamically scale up and down application instances based on real-time load or business SLAs without manual intervention. The Cluster Autoscaler is also coming soon. Learn more about this milestone feature in the introduction article.