Nomad on Kubernetes
The Nomad on Kubernetes tutorial documents how to deploy Nomad on Kubernetes. The following diagram provides a high level overview of the Nomad on Kubernetes architecture.
The following components will be deployed to a Kubernetes cluster with minimal CPU and memory allocations to control cost:
Rationale
Nomad and Kubernetes have many differences in terms of managing applications but have also been found to complement each other. Nomad is workload agnostic and supports running non-containerized applications -- broadening the type of workloads you can run across your infrastructure. Other components of the Nomad stack such as Consul and Vault can be leveraged directly within Kubernetes. Consul can provide federated service discovery across multiple Kubernetes clusters and existing platforms such as virtual machines. Vault can provide robust secrets management to Kubernetes workloads including dynamic secret generation.
Kubernetes can ease the deployment and management of Nomad and related components by leveraging some of Kubernetes advanced features including:
- Advanced Scheduling: Affinity and Anti-affinity
- Dynamic Storage Provisioning
- Support for Stateful Applications
Tutorial
- Prerequisites
- Install Client Tools
- Provision The Kubernetes Infrastructure
- Provision The Nomad Infrastructure
- Provision The Consul Cluster
- Provision The Vault Cluster
- Provision The Nomad Cluster
- Provision The Nomad Worker Nodes
- Running Nomad Jobs
- The Consul UI
Clean up
Run the clean-up
bash script to remove all compute resources created by this tutorial:
bash clean-up