3e4a3ff8eb
* docs: restructure autoscaling plugins menu * docs: add autoscaling threshold strategy (#10535)
80 lines
3.4 KiB
Plaintext
80 lines
3.4 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: Autoscaling Plugins
|
|
description: Plugins are used to architect the Nomad Autoscaler into distinct areas.
|
|
---
|
|
|
|
# Nomad Autoscaler Plugins
|
|
|
|
Plugins are an essential part of the Nomad Autoscaler architecture. The Autoscaler
|
|
uses the [go-plugin][go_plugin_github] library to implement an ecosystem of
|
|
different types of plugins. Each plugin type is responsible for a specific task:
|
|
APM plugins retrieve metrics about the workloads being monitored; strategy
|
|
plugins decide the scaling action to satisfy the scaling policy; and target
|
|
plugins perform the scaling action. The flexibility of plugins allows the Nomad
|
|
Autoscaler to be extended to meet specific business requirements or technology
|
|
use cases.
|
|
|
|
The Nomad Autoscaler currently ships with a number of built-in plugins to ease
|
|
the learning curve. Details of these can be found in the side menu, under the
|
|
specific plugin type sections. The autoscaler also supports external plugins; see
|
|
this list of [community-supported plugins][community_plugins].
|
|
|
|
# General Options
|
|
|
|
All plugins which require Nomad API connectivity support the parameters detailed
|
|
below. These plugins include Nomad APM, Nomad Target and all cluster scaling
|
|
targets.
|
|
|
|
- `nomad_config_inherit` `(bool: true)` - A boolean flag which indicates whether
|
|
the plugin should inherit the agents Nomad configuration parameters. Plugins
|
|
can override individual parameters and have their Nomad configuration merged
|
|
with that of the agent.
|
|
|
|
- `nomad_address` `(string: "")` - The address of the Nomad server in the form
|
|
of `protocol://addr:port`.
|
|
|
|
- `nomad_region` `(string: "")` - The region of the Nomad servers to connect with.
|
|
|
|
- `nomad_namespace` `(string: "")` - The target namespace for queries and actions
|
|
bound to a namespace.
|
|
|
|
- `nomad_token` `(string: "")` - The SecretID of an ACL token to use to authenticate
|
|
API requests with.
|
|
|
|
- `nomad_http-auth` `(string: "")` - The authentication information to use when
|
|
connecting to a Nomad API which is using HTTP authentication.
|
|
|
|
- `nomad_ca-cert` `(string: "")` - Path to a PEM encoded CA cert file to use to
|
|
verify the Nomad server SSL certificate.
|
|
|
|
- `nomad_ca-path` `(string: "")` - Path to a directory of PEM encoded CA cert
|
|
files to verify the Nomad server SSL certificate.
|
|
|
|
- `nomad_client-cert` `(string: "")` - Path to a PEM encoded client certificate
|
|
for TLS authentication to the Nomad server.
|
|
|
|
- `nomad-client-key` `(string: "")` - Path to an unencrypted PEM encoded private
|
|
key matching the client certificate.
|
|
|
|
- `nomad_tls-server-name` `(string: "")` - The server name to use as the SNI
|
|
host when connecting via TLS.
|
|
|
|
- `nomad_skip-verify` `(string: "")` - Do not verify TLS certificates. This is
|
|
strongly discouraged.
|
|
|
|
# Loading External Plugins
|
|
|
|
In order to utilise external plugins, the plugin binary must be downloaded to a
|
|
directory on the same host that the Nomad Autoscaler will run. This directory
|
|
should be referenced by the [plugin_dir][plugin_dir_config] config parameter along
|
|
with an appropriate [APM][apm], [Strategy][strategy] or [Target][target] block
|
|
entry.
|
|
|
|
[go_plugin_github]: https://github.com/hashicorp/go-plugin
|
|
[community_plugins]: /docs/autoscaling/plugins/external
|
|
[plugin_dir_config]: /docs/autoscaling/agent#plugin_dir
|
|
[apm]: /docs/autoscaling/agent/apm#apm-block
|
|
[strategy]: /docs/autoscaling/agent/strategy#strategy-block
|
|
[target]: /docs/autoscaling/agent/target#target-block
|