Spotinst’s controller supports PersistentVolumes (PV) and PersistentVolumeClaims.

How it works:

Scale Up

  1. The spotinst-controller finds Pods that are pending for scheduling
  2. The controller gets the Pods’ information and looks for any PersistentVolumeClaims associated with the pods
  3. In case it finds any, it will match the actual Volumes and their Availability Zones
  4. Based on the AZs, it will launch instances in the right AZs
INFO, Spotinst Kubernetes Controller, Scale Up Initiated due to pending for schedule Pods. Required Resources: {AMOUNT} of CPU {UNITS} and {AMOUNT} of RAM {UNITS}. One or more of the Pods {LIST} has PersistentVolumeClaim associated {LIST} - Scale is restricted to Availability Zone {AZ}

Scale Down

When finding underutilized nodes in the cluster, the controller will not terminate nodes that have pods with PersistentVolumeClaims

That information will be available in the Elastilog section. Nodes that are associated with Pods that have PVCs are highlighted in the dashboard.