Skip to content

Scale to Minimal Replicas

Use scale to minimal to autoscale most components to zero while leaving the cluster available for API calls and the UI. This feature provides extra cost savings by reducing resources used for idle workloads, while still allowing API interactions and scaling up when needed. This setting is off by default.

Enable or disable scale to minimal⚓︎

To enable scale to minimal, add scale_min: true to the spec section of the Hydrolix configuration.

To return to typical cluster operation, set scale_min: false. The cluster then scales its components back up to the values in its scale profile.

===Enable Scale to Minimal

spec:
  scale_min: true

===Restore typical cluster operation

spec:
  scale_min: false

Active services when scaled to minimal⚓︎

These pods remain active when scale_min: true is set:

  • traefik
  • acme
  • ui
  • turbine-api
  • turbine-api-worker
  • zookeeper
  • keycloak
  • prometheus
  • validator
  • version
  • scheduler
  • descheduler

All other pods scale to zero.

Override resources and replica counts⚓︎

Scale overrides became available for scale to minimal in Hydrolix version 6.1.

When scaling to minimal, per-component resource values set in spec.scale take precedence over the built-ins. For example, set replicas to keep more than the single default replica of an active service while the rest of the cluster scales to zero. Overrides apply only to the services that stay active.

A cluster that runs Grafana with scale_min: true serves users continuously, so the services on the path to Grafana need more than one replica.

This example runs two Traefik replicas, so users can reach Grafana while one replica restarts:

Override Traefik Replicas
1
2
3
4
5
spec:
  scale_min: true
  scale:
    traefik:
      replicas: 2

Overrides work the same way for resource settings such as cpu and memory. See Scale by Component for the available settings.

Disable the Grafana Hydrolix data source⚓︎

This tunable was introduced in Hydrolix version 6.1.

In-cluster Grafana provisions a data source named Hydrolix - Local that reaches the cluster through http-proxy. No query components run when scale_min: true is set, so this data source can't return results. Set grafana_config.datasources.hydrolix_enabled to false to skip provisioning it:

Disable the Hydrolix Data Source
1
2
3
4
5
spec:
  scale_min: true
  grafana_config:
    datasources:
      hydrolix_enabled: false

Hydrolix provisions exactly one Hydrolix data source, named Hydrolix - Local. Setting this tunable to false removes that data source when the operator rolls out the configuration change, and leaves any data sources added by hand in place. Grafana can still query those and the in-cluster Prometheus, which the separate grafana_config.datasources.prometheus_enabled tunable controls.

Cluster logs when scaled to minimal⚓︎

This behavior changed in Hydrolix version 6.1.

Vector collects cluster logs and sends them to a local sink at logs_sink_local_url, which lands them in the hydro.logs table. Setting scale_min: true stops both halves of this. Vector doesn't run, because enable_vector defaults to off whenever a cluster is scaled off or scaled to minimal. The operator also omits the local sink, because the intake components that receive those logs scale to zero.

To collect cluster logs while scaled to minimal, run Vector explicitly and send the logs to a remote sink:

Collect Logs While Scaled to Minimal
1
2
3
4
spec:
  scale_min: true
  enable_vector: true
  logs_sink_remote_url: "https://hostname.hydrolix.live/ingest/event"

See Logging Configuration for the full set of log destination settings.