Skip to content

Scaling Limits

Scaling limits define the safe operating range for an application. Both V1 and V2 honor these limits.

  • The minimum prevents ICC from scaling below the required baseline capacity.
  • The maximum prevents ICC from scaling beyond the capacity allowed for the application or cluster.

The default range is 1–10 application instances. Configure different global defaults with PLT_SCALER_MIN_PODS_DEFAULT and PLT_SCALER_MAX_PODS_DEFAULT.

Configure an application with Kubernetes labels

Section titled “Configure an application with Kubernetes labels”

Add the following labels to the Kubernetes Deployment or StatefulSet managed by ICC:

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-application
labels:
icc.platformatic.dev/scaler-min: "2"
icc.platformatic.dev/scaler-max: "20"
spec:
replicas: 2
# ...

ICC periodically reads the controller labels and stores the resulting application scale configuration. The default synchronization interval is 60 seconds.

You can set either label independently. A missing value retains the existing value or uses the configured label default. Values must be integers greater than or equal to 1, and the minimum cannot exceed the maximum. ICC ignores an invalid update and logs a warning.

The label names can be customized:

Terminal window
PLT_SCALER_POD_MIN_LABEL=custom.example.com/min-replicas
PLT_SCALER_POD_MAX_LABEL=custom.example.com/max-replicas

ICC also stores per-application limits through its UI and Scaler API. Saving a new range immediately brings a running controller into that range:

  • If the current replica count is below the new minimum, ICC scales it up to the minimum.
  • If it is above the new maximum, ICC scales it down to the maximum.

The stored application configuration takes precedence over the global defaults.

Application limits are hard limits. The Enterprise Planner can add a temporary soft minimum for a scheduled window.

ICC combines them as follows:

  • A scheduled minimum is clamped to the application’s hard range.
  • The scheduled value acts as a floor, not a fixed replica count.
  • The live V2 scaler can scale above the scheduled floor up to the hard maximum.
  • When the scheduled window ends, ICC removes the soft minimum and normal scaling resumes.

For example, with a hard range of 2–20 instances and a scheduled minimum of 8, ICC keeps at least 8 instances during the window but can scale as high as 20.

PLT_SCALER_SCALING_DISABLED=true disables replica changes globally. With V2, ICC continues processing signals and producing dashboard snapshots, but it does not apply scaling actions.