45 lines
2.2 KiB
Plaintext
45 lines
2.2 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: Autoscaling
|
|
sidebar_title: Autoscaling
|
|
description: |-
|
|
Overview of the Nomad Autoscaler that provides horizontal application and
|
|
cluster scaling.
|
|
---
|
|
|
|
# Nomad Autoscaler Overview
|
|
|
|
This section details the Nomad Autoscaler, a horizontal application and cluster
|
|
autoscaler for Nomad. The Nomad Autoscaler is built and released separately to
|
|
Nomad. The source code can be viewed on [GitHub][autoscaler_github] and releases
|
|
are available on the [HashiCorp releases page][autoscaler_releases] or via
|
|
[Docker Hub][autoscaler_dockerhub].
|
|
|
|
The Nomad Autoscaler repository includes a number of [demos][autoscaler_demo]
|
|
which provide guided learning on running the autoscaler.
|
|
|
|
## Horizontal Application Autoscaling
|
|
|
|
Horizontal application autoscaling is the process of automatically controlling the number of instances of an application
|
|
to have sufficient work throughput to meet service-level agreements (SLA). In
|
|
Nomad, horizontal application autoscaling can be achieved by modifying the number
|
|
of allocations in a task group based on the value of a relevant metric, such as
|
|
CPU and memory utilization or number of open connections. This is enabled by configuring
|
|
[autoscaling policies][autoscaling_policy] on individual Nomad jobs using the [`scaling` block][scaling_block].
|
|
|
|
## Horizontal Cluster Autoscaling
|
|
|
|
Horizontal cluster autoscaling is the process of adding or removing Nomad clients from a cluster to ensure there
|
|
is an appropriate amount of cluster resource for the scheduled applications.
|
|
This is achieved by interacting with remote providers to start or terminate new
|
|
Nomad clients based on metrics such as the remaining free schedulable CPU or memory.
|
|
Cluster scaling is enabled by configuring the [autoscaler agent](/docs/autoscaling/agent#dir)
|
|
with policies targeting the Nomad cluster.
|
|
|
|
[scaling_block]: /docs/job-specification/scaling
|
|
[autoscaling_policy]: /docs/autoscaling/policy
|
|
[autoscaler_github]: https://github.com/hashicorp/nomad-autoscaler
|
|
[autoscaler_releases]: https://releases.hashicorp.com/nomad-autoscaler/
|
|
[autoscaler_dockerhub]: https://hub.docker.com/r/hashicorp/nomad-autoscaler
|
|
[autoscaler_demo]: https://github.com/hashicorp/nomad-autoscaler/tree/master/demo
|